1. 문제 제기 (Introduction & Problem Statement)관찰 현상 및 배경:현대적인 웹 서비스는 대부분 JSON/REST 방식을 표준으로 사용하지만, 금융권 코어 뱅킹(Core Banking)이나 대외계 시스템(FEP)은 여전히 TCP 소켓 기반의 고정 길이 전문(Fixed-Length Packet)을 표준으로 채택하고 있다.이 환경에서는 다음과 같은 기술적 난관이 존재한다.데이터 표현의 이질성: Java의 String은 가변 길이지만, 전문은 EUC-KR 인코딩 기반의 고정된 바이트(Byte) 길이를 엄격히 준수해야 한다.반복적인 Boilerplate Code: 필드가 100개 이상 되는 전문을 수동으로 바이트 슬라이싱(Slicing)하고 매핑하는 코드는 유지보수가 어렵고 휴먼 에..
1. 문제 제기 (Introduction & Problem Statement)관찰 현상 또는 질문:현대적인 웹 서비스는 대부분 JSON/REST 방식을 사용하지만, 금융권 코어 뱅킹이나 대외계 시스템(FEP)은 여전히 TCP 소켓 통신 기반의 고정 길이 전문(Fixed-Length Packet)을 표준으로 사용한다. 이 환경에서는 다음과 같은 기술적 제약과 요구사항이 발생한다.데이터 표현의 차이: Java의 String은 UTF-16 기반이나, 전문은 EUC-KR 인코딩과 바이트(Byte) 단위 길이를 엄격히 준수해야 한다.데이터 무결성(Integrity): 금전적인 트랜잭션을 다루는 객체(DTO)가 생성 후 변경 가능(Mutable)할 경우, 로직 중간에 의도치 않은 데이터 변조 위험이 있다.탐구 목표..
1. 문제 제기 (Introduction & Problem Statement)관찰 현상 또는 질문:모놀리식에서 마이크로서비스로 넘어오면서 인프라 레이어의 개념들이 혼재되기 시작한다. *"Nginx가 로드밸런싱을 해주는데 왜 Eureka라는 별도의 서버가 필요한가?", *"API Gateway가 있는데 Nginx는 또 왜 앞단에 두는가?" 와 같은 질문들은 '정적 인프라'와 '동적 클라우드 환경'의 차이를 명확히 이해하지 못했기 때문에 발생한다. 또한, *"Flux와 Mono는 단순한 리스트 포장지(Wrapper)가 아닌가?"* 라는 의문은 리액티브 스트림의 본질인 '비동기 파이프라인'을 이해해야 해소된다.탐구 목표:본 아티클에서는 리액티브 프로그래밍의 데이터 흐름(Flux/Mono)을 시작으로, 프록시(..
1. 문제 제기 (Introduction & Problem Statement)관찰 현상 또는 질문:애플리케이션을 개발하다 보면 단순한 상수 관리에 대해 *"그냥 static final로 선언하면 되는 것을 왜 굳이 @ConfigurationProperties로 복잡하게 빈(Bean)으로 등록해야 하는가?"* 라는 의문이 든다. 또한, 시스템이 커짐에 따라 REST API를 넘어 메시지 큐(RabbitMQ, Kafka)를 도입하고, 더 나아가 WebFlux와 같은 리액티브 스택으로 전환하게 되는데, 이 과정에서 *"도대체 왜 이 복잡한 기술들이 필요한가?"* 에 대한 근본적인 당위성을 찾기 어렵다.탐구 목표:본 아티클에서는 1) 구성 정보 관리의 제어 역전(IoC), 2) 메시징 시스템의 물리적/논리적 채..
1. 문제 제기 (Introduction & Problem Statement)관찰 현상 또는 질문:Spring Security를 학습하다 보면 *"로그인한 사용자 정보를 어떻게 컨트롤러의 인자(@AuthenticationPrincipal)로 바로 받아오는 것일까?"* 하는 의문이 든다. 또한, 보안 설정이 적용되는 위치가 Servlet Filter인지, AOP인지 혼동하기 쉽다. 특히 *"URL 보안 검사는 헤더 검사와 무엇이 다른가?", *"ThreadLocal은 메모리 어디에 위치하는가?" 와 같은 근본적인 동작 원리에 대한 이해가 부족하면, 문제가 발생했을 때 디버깅하기 어렵다.탐구 목표:본 아티클에서는 HTTP 요청이 서버에 도달하여 컨트롤러에 도착하기까지의 흐름을 분석하고, Servlet Fil..
1. 문제 제기 (Introduction & Problem Statement)관찰 현상 또는 질문:데이터베이스 접근 기술을 학습하면서 *"왜 JPA 엔티티에는 기본 생성자(@NoArgsConstructor)가 반드시 필요한가?", *"편리한 Lombok의 @Data를 왜 엔티티에서는 지양해야 하는가?" 와 같은 의문이 생긴다. 또한, 실무에서 JdbcTemplate, MyBatis, JPA 중 어떤 기술을 선택해야 하는지, 그 기준이 단순히 '최신 기술' 여부인지에 대한 고찰이 필요하다.탐구 목표:본 아티클에서는 Serializable과 Optional 같은 자바 기본 개념부터 시작하여, JdbcTemplate과 Spring Data JDBC의 차이점을 분석한다. 특히 JPA의 핵심인 리플렉션(Refle..