Spring 애플리케이션에서 예외를 설계하는 방법 Notes 예외를 어떻게 봐야 하는가 예외는 “실패” 그 자체라기보다 “정상 흐름에서 벗어난 상황”을 표현하는 장치다. 여기서 중요한 것은 모든 실패를 예외로 취급하지 않는 것이다. 예를 들어 사용자가 로그인 화면에서 비밀번호를 틀리는 일은 충분히 예상 가능한 입력 실패다. 반면, 의도하지 않은 상태 값 변조나 시스템 계약을 깨는 요청은 예외에 가깝다. 즉... 2024/09/07 Notes, Spring
Spring 예외 처리 전략 정리 Notes 예외 처리는 왜 전략이 필요한가 예외는 단순히 잡아서 메시지를 내려주는 문제가 아니다. 어떤 예외를 기록할지, 어떤 예외를 외부에 노출할지, 어떤 상태 코드로 매핑할지가 모두 운영 정책과 연결된다. 실무에서는 다음이 중요하다. 클라이언트가 이해할 수 있는 응답 포맷 서버가 추적할 수 있는 로그 도메인 규칙과 시스템 장애의 구분 C... 2024/09/07 Notes, Spring
Spring Data JPA에서 동적 쿼리를 다루는 방법 Notes 동적 쿼리가 필요한 이유 검색 조건이 고정되어 있으면 메서드 이름 기반 쿼리나 정적 JPQL로도 충분하다. 하지만 실무에서는 보통 다음처럼 조건이 유동적이다. 키워드는 있을 수도 없을 수도 있다. 상태 값은 여러 개를 동시에 받을 수 있다. 날짜 범위는 시작만 올 수도 있고 끝만 올 수도 있다. 정렬 기준이 상황마다 달라진다. ... 2024/09/07 Notes, Spring
@ControllerAdvice와 @RestControllerAdvice 정리 Notes 왜 필요한가 컨트롤러마다 예외를 직접 잡아서 응답을 만들기 시작하면 다음 문제가 생긴다. 응답 포맷이 제각각이다. 상태 코드 기준이 컨트롤러마다 다르다. 예외 로깅 정책이 흩어진다. @ControllerAdvice는 이런 공통 처리 규칙을 한곳에 모으기 위한 장치다. @ControllerAdvice와 @RestControllerA... 2024/09/07 Notes, Spring
Spring AOP 핵심 정리 Notes Spring AOP란 Spring AOP는 공통 관심사를 비즈니스 로직과 분리해서 다루기 위한 도구다. 로깅, 트랜잭션, 보안, 성능 측정처럼 여러 계층에 반복되는 코드를 핵심 로직 밖으로 꺼내고 싶을 때 주로 사용한다. 핵심은 “원래 객체를 직접 호출하는 것처럼 보이지만, 실제로는 프록시가 앞단에서 끼어들어 부가 작업을 수행한다”는 점이다. 왜... 2024/09/07 Notes, Spring
Thread Local Notes Thread Local What is ThreadLocal? ThreadLocal은 JDK 1.2 부터 제공된 클래스이며, 이를 활용하면 스레드 단위로 로컬 변수를 사용할 수 있다. 즉, 일반적인 로컬 변수의 수명은 특정 코드 블록의 범위에 한정하여 유효하지만, ThreadLocal은 특정 스레드가 실행하는 모든 코드에서 사용 가능하다. Threa... 2024/09/07
Synchronous Asynchronous Bloking Non Blocking Notes Synchronous, Asynchronous, Bloking, Non-Blocking 자바는 기본적으로 Sync/Block이고, 자바스크립트는 Async/NonBlock이다. 제어권의 반환과 결과값의 전달의 관점으로 실행흐름을 따라 Block과 Non-Block을 설명할 수 있다. function caller(){ functionA(); ... 2024/09/07
Serialization Notes Serialization and Deserialization https://www.codementor.io/java/tutorial/serialization-and-deserialization-in-java 2024/09/07
Pure Function Notes Pure Function 컴퓨터 프로그래밍에서 순수함수(pure function)이란, 다음과 같은 속성을 갖는다. 함수가 같은 어규먼트(입력)에 대해서 항상 같은 리턴값(결과)를 낸다. 함수의 평가는 사이드 이팩트가 없다. References https://en.wikipedia.org/wiki/Pure_function h... 2024/09/07
Programming Paradigms Notes Programming Paradigm 패러다임(paradigm)은 어떤 한 시대 사람들의 견해나 사고를 근본적으로 규정하고 있는 테두리로서의 인식의 체계, 또는 사물에 대한 이론적인 틀이나 체계를 의미한다. - From.wikipedia - 프로그래밍 패러다임은 어떤 프로그래밍 언어를 사용하여 문제를 해결하기위한 접근법이다. 혹은 우리들로 하여금... 2024/09/07