전체 글
-
[GIT] Git Rebase란?카테고리 없음 2023. 1. 6. 19:06
Git Rebase란 말그대로 다시 베이스를 재설정한다는 의미 브랜치를 합치는 가장 쉬운 방법은 merge입니다. 그렇다면 두개는 무슨 차이가 있고 rebase를 썼을 때 장단점은 무엇이 있을까요? Merge 아래처럼 master, experiment 브랜치를 2개 새로 만들고 C3, C4 커밋을 했다고 가정해봅시다. master에 experiment의 내용을 합치고 싶다고 할 때 단순히 브랜치 포인터를 최신 커밋으로 옮기는게 아니라 별도의 커밋으로(C5) 만들고, master 브랜치가 그 커밋(C5)을 가리키도록 이동합니다. 이 방법이 가장 간단하고 안전하기 때문에 보통은 merge를 사용합니다. Rebase experiment를 리베이스한다고 해봅시다. Rebase는 위에서 언급한 것 처럼 다시 베이..
-
[Spring/Spring Boot] request timeout error / Fill pool skipped, pool is at sufficient level.Java/Trouble Shooting 2022. 7. 28. 10:40
오류내용 org.springframework.dao.DataAccessResourceFailureException: could not extract ResultSet; nested exception is org.hibernate.exception.JDBCConnectionException: could not extract ResultSet at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:275) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(..
-
[Spring/Java] JDBC? DataSource? HikariDataSource? HikariCP?Java/Spring 2022. 6. 15. 16:18
JDBC란 JDBC(Java Database Connectivity)는 Java에서 DB에 접근할 수 있도록 하는 Java API다. JDBC는 DB에서 데이터를 읽어오거나 업데이트 하는 방법을 제공한다. Connection conn = null; try{ Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost/test"; conn = DriverManager.getConnection(url, "username", "password"); }catch(Exception e){ ... }finally{ conn.close(); } JDBC Driver란 JDBC Driver는 Java 응용 프로그램이 DB와 상호 작용할 수 있..
-
RxJava란?Java/RxJava 2022. 5. 25. 10:17
Rx : Reactive Extention RxJava는 자바와 안드로이드를 위한 리액티브 프로그래밍 구현체로서 함수형 프로그래밍의 영향을 받았다. 리액티브 익스텐션(일반적으로는 Rx, 구체적으로는 RxJava)이 함수형 프로그래밍의 영향을 받았다고 해서 '함수형 리액트 프로그래밍'은 아님 '리액티브 프로그래밍'이란 데이터나 이벤트 변화의 반응에 초점을 맞춘 프로그래밍을 뜻하는 일반적인 용어 리액티브 함수형 프로그래밍이란 프로그래밍에 대한 하나의 접근 방식, 즉 명령형 시스템상의 추상화임 동시성과 병렬성을 해결한다 쉽게 말하자면? 콜백지옥에서 벗어나는 것 언제 리액티브 프로그래밍이 필요한가 마우스 움직임이나 클릭, 키보드 타이핑, GPS 신호, 자이로스코프 신호, 터치 이벤트 등을 처리할 때 (요청이 시..
-
[C# / .NET] Java와 다른 문법카테고리 없음 2022. 4. 7. 22:04
Java와 다른 것 위주로 기술 로컬함수 로컬함수는 메소드 안에서 선언되고, 선언된 메소드 안에서만 사용되는 특별한 함수 클래스의 멤버가 아니기 때문에 메소드가 아니라 함수라고 부름 class SomeClass { public void SomeMethod() { int count = 0; SomeLocalFunction(1,2); //로컬 함수 호출 void SomeLocalFunction(int a, int b) //로컬 함수 선언 { //Do Some Work Console.WriteLine($"count : {++count}"); //로컬 함수는 자신이 속한 메소드의 지역 변수를 사용할 수 있음 } } } 선택적 인수 메소드의 기본변수는 기본값을 가질 수 있음 void MyMethod(int a, ..
-
[C# / .NET] CLR이란?.NET 2022. 4. 6. 11:03
C#으로 만든 프로그램은 CLR(Common Language Runtime) 위에서 실행되며, 자바 가상 머신과 비슷한 역할을 합니다. 그림처럼 CLR은 .NET 라이브러리와 함께 OS 위에 설치됩니다. 네이티브 코드로 작성된 프로그램들은 운영체제가 직접 실행할 수 있지만, C# 컴파일러가 만들어낸 실행 파일은 하드웨어가 이해할 수 없는 코드로 구성되어 있기 때문에 실행할 수 없습니다. C# 컴파일러는 C# 소스 코드를 컴파일해서 IL(Intermediate Language)이라는 중간 언어로 작성된 실행 파일을 만들어 냅니다. 사용자가 이 파일을 실행시키면 CLR이 중간 코드를 읽어 들여 다시 하드웨어가 이해할 수 있는 네이티브 코드로 컴파일한 후 실행시킵니다. 이것을 JIT(Just In Time) ..
-
[JavaScript] var, let, const 차이점Web/Java Script 2021. 10. 12. 09:31
ECMAScript 6부터 추가된 키워드 2개 let, const ECMAScript 5까지는 '식별자에 값을 넣어 활용하기 위한 기능'이 오직 'var 키워드를 사용한 변수' 밖에 없었다. var variableA = 52; let variableB = 273; const constC = 100; 키워드 구분 선언위치 재선언 var 변수 전역 스코프 가능 let 변수 해당 스코프 불가능 const 상수 해당 스코프 불가능 * 변수 : 변할 수 있는 값 * 상수 : 변하지 않는 값 또한, 상수를 선언할 때는 선언할 때 값을 넣어야 오류가 나지 않는다. const constC = 100; constC = 10000; //불가능 const constD; constD = 90; //오류 Q. let과 ..
-
[Spring Batch] 에러처리(레코드 건너뛰기, 잘못된 레코드 로그 남기기, 입력이 없을 때의 처리)Java/Spring Batch 2021. 8. 10. 08:13
스프링 배치 애플리케이션에서 시작할 때와 처리 중에 또는 결과를 기록할 때 문제가 발생할 수 있다. 배치 처리 중에 발생하는 여러 가지 에러를 다루는 방법을 살펴보자. 레코드 건너뛰기 입력에서 레코드를 읽는 중에 에러가 발생했을 때는 몇 가지 다른 선택지가 존재한다. 먼저 예외를 던져 처리를 멈추는 것이다. 얼마나 많은 레코드를 처리해야 하는가와 에러가 발생한 레코드 한 개를 처리하지 않았을 때의 영향도에 따라 에러를 던져 처리를 멈추는 것은 극단적인 방버일 수 있다. 스프랭 배치는 그 대신 특정 예외가 발생했을 때 레코드를 건너뛰는 skip 기능을 제공한다. 레코드를 건너뛸지 여부를 결정할 때 고려해야 할 두 가지 요소가 있다. 먼저 어떤 조건에서 레코드를 건너뛸 것인가, 특히 어떤 예외를 무시할 것인..