본문 바로가기
반응형

Language13

[I/O 이해하기-1] 동기와 비동기 VS Blocking과 Non Blocking [I/O 이해하기-1] 동기와 비동기 VS Blocking과 Non Blocking[I/O 이해하기-2] Stream vs Channel[I/O 이해하기-3] 톰캣의 요청 수신 방식 동기와 비동기는 요청 작업의 완료여부를 체크하고 작업을 순차적으로 처리하느냐의 차이로 구분할 수 있고,Blocking과 NonBlocking은 제어권을 누가 갖는지에 따른 작업 차단(block) 유무로 구분할 수 있다. 동기와 비동기는 순서에 관한 것이고, Blocking과 NonBlocking은 작업 차단 유무에 관한 것이다.동기와 비동기  동기는 요청 작업의 완료여부를 체크하고 작업을 순차적으로 진행한다.특정 함수를 호출하면 완료 응답을 받고 다음 작업을 진행한다.통신 환경이라면 사용자의 요청에 응답을 제공한 이후 다음 .. 2024. 5. 5.
코틀린 querydsl, mapstruct 생성자에 따른 동작 방식 코틀린, 스프링, jpa, querydsl 환경에서 불변객체를 만드는 방법에 대해 알아보겠다. 자바 위주의 스프링, querydsl, mapstruct 개념이나 사용법을 그대로 받아들이려고 하면 코틀린에서 객체의 불변성이 깨지거나 디폴트값 선언으로 비즈니스 규칙을 깨트리는 생성자들이 생겨날 수 있다. 나의 경우도 그러하였는데 코틀린, 스프링, querydsl, mapstruct 환경에서 객체 불변성을 지키며 디폴트값을 제거하는 방법에 대해 공유하겠다.Querydsl을 통해 매핑받는 객체 디폴트 값 없애기projection.bean, projection.fieldsprojection.bean 방식은 자바 빈 객체 형태만 받을 수 있다. 허나 세터 메서드가 없어도 리플렉션을 통해 매핑이 가능하다고 한다.세터.. 2024. 3. 16.
자바 예외의 종류와 처리방식 Error와 Exception자바에서 프로그램이 비정상적인 동작을 일으키는 경우 Error 또는 Exception이 발생하게 된다. ErrorExceptionChecked ExceptionUnChecked Exception복구 여부복구 불가복구 가능예외 종류컴파일 타임- 문법 오류- 타입 체크IOException 런타임- StackOverFlowError- OutOfMemoryError Runtime Exception 하위예외 처리처리불가 컴파일러에 의해 예외 처리 강제예외 처리 강제화 되지 않음 예외 상속관계 Error와 Exception은 모두 Throwable 클래스를 상속 받는다Throwable 클래스는 message와 stackTrace를 담고 있다.message는 Error와 Exception.. 2024. 2. 19.
컴파일 타임 의존성과 런타임 의존성 객체지향 프로그래밍에서는 객체간의 의존성이 빈번하게 발생한다.의존이란 상위 모듈(호출자)이 기능 수행을 위해 하위 모듈(피호출자)의 자원을 사용하는 것을 말한다.(하위 모듈의 변경사항이 상위 모듈에 영향을 끼침)이러한 의존관계의 설정은 컴파일 타임에 결정되기도 하고 런타임에 결정되기도 한다.컴파일 타임 의존성과 런타임 의존성은 말그대로 어느 시점에 의존성이 결정되느냐의 차이이다. 자바 프로그램이 실행될 때, 자바 파일이 컴파일러에 의해 컴파일 되고이후 jvm의 런타임 영역에 클래스 요소들이 적재된다.컴파일 타임은 컴파일러에 의해 컴파일이 이루어지는 시점을 의미하고,런타임은 클래스파일이 jvm의 런타임 영역에 적재된 이후의 시점을 의미한다.따라서 컴파일 타임 의존성과 런타임 의존성은 아래와 같이 구분할 수.. 2024. 2. 11.
반응형