목록2025/06 (6)
코딩 이래요래

Q. 컨테이너 기술과 Docker를 명확히 구분하여 설명하세요. 컨테이너 기술이 Docker 이전에도 존재했던 개념임을 언급하고, Docker가 컨테이너 기술을 구현한 하나의 도구라는 관점에서 설명해주세요. 또한, Docker 외에 컨테이너 기술을 구현한 다른 도구의 예시를 들어보세요. Container의 사전적 의미는 그릇, 용기를 뜻하는 것 처럼 애플리케이션과 그 실행에 필요한 모든 환경(라이브러리, 종속성 등)을 하나로 묶어, 호스트 OS 상에서 격리된 프로세스를 실행할 수 있도록 해주는 기술이다.이는 가상 머신(Virtual Machine)과 달리 별도의 OS를 포함하지 않고, 호스트 커널을 공유하기 때문에 훨씬 가볍고 빠르게 실행된다.호스트 OS란 실제 컴퓨터의 운영체제를 말한다.호스트 OS에 ..

단일 테스트는 통과, 전체 테스트는 실패... 타임존의 늪에 빠지다오늘은 테스트 코드를 작성하던 중 예상치 못한 Time-zone 이슈를 마주했다.분명히 PostgreSQL에선 잘 작동하던 로직인데, H2로 테스트하면 실패하는 상황이다. 이건 단순한 코드 실수가 아니라고 생각했다.한줄 한줄 의심하며 로그를 까보던 내 하루를 이곳에 기록해보려 한다. 테스트 시나리오@BeforeEach로 조회용 메세지 3개를 Thread.sleep을 이용하여 시간차를 두고 저장한다.각 메세지에는 @CreatedDate Instant createdAt이 자동으로 생성된다.그 중 가장 최근 메세지의 createdAt을 커서로 지정하고,createdAt List result = messageRepository .findBy..
Q. 애플리케이션의 각 계층에서 수행되는 입력값 검증의 범위와 책임을 어떻게 나눌 것인지에 대해 설명해주세요. 특히 중복 검증을 피하면서도 안정성을 확보하는 방안과, 이와 관련된 트레이드오프에 대해 설명해주세요. 1. Controller형식적(Validational) 검증ex: @Valid, @Pattern, @NotNull, @Min, @Size 등클라이언트의 입력이 형식적으로 유효한지 확인 (JSON Body, Query Param 등)2. Service비즈니스 규칙 검증ex: 부서 인원 수가 50명을 넘을 수 없음, 입사일이 오늘 이후일 수 없음 등도메인 제약이나 로직 상의 규칙을 보장함3. Persistence (Repository / DB)데이터 정합성을 위한 최종 방어선ex: DB 제약조건 (..

1. 프로메테우스(Prometheus)?시간의 흐름에 따라 변동 되는 데이터를 메트릭(Metric)이라고 한다.SpringBoot는 Actuator가 metric 수집을 담당하고 있다.문제는, 메트릭은 시간이 흐를수록 대량의 데이터가 쌓이는데 Application의 메모리만으로 metric의 데이터를 모두 감당할 수 없다.이때, 시계열 데이터베이스(Time Series Database)인 프로메테우스를 사용하여 데이터를 저장한다.SpringBoot에서는 Actuator 엔드포인트의 접근 권한을 설정할 수 있어, 일반 사용자와 Prometheus와 같은 외부 시스템의 접근 경로를 분리할 수 있다.예를 들어 /actuator/health, /actuator/info는 공개하고, /actuator/promet..