[커널아카데미] 백엔드 12기 27주차 - 파이널 프로젝트

jh5959·2025년 9월 27일

파이널 프로젝트

트러블 슈팅

문제 (Problem)

시스템 상태 조회 API를 호출했을 때, 서버에서 NullPointerException이 발생하여 Swagger에서 정상적인 응답을 받지 못했다.

원인 (Cause)

Lombok의 @RequiredArgsConstructor는 final 키워드가 붙은 필드를 대상으로 생성자를 만든다. Controller의 SystemHealthService 필드에 final이 누락되어 생성자가 자동으로 만들어지지 않았고, 이로 인해 의존성 주입(DI)이 실패하여 systemHealthService 객체가 null 상태였다.

해결 (Solution)

의존성 주입이 필요한 private SystemHealthService systemHealthService 필드를 private final SystemHealthService systemHealthService로 수정했다. final 키워드를 추가하자 @RequiredArgsConstructor가 해당 필드를 포함하는 생성자를 정상적으로 생성하여 문제가 해결되었다.

회고

좋았던 것

  • 코드를 작성하더라도 데이터의 흐름과 맥락을 먼저 이해하는 것이 개발의 핵심임을 깨달았던 점이 좋았다. 기능만 구현하는 것이 아니라 데이터의 흐름을 이해하고 접근하자 전체적인 맥락을 이해할 수 있어 좋았다

배웠던 것

  • 맡은 기능을 구현하는 과정에서 특정 데이터가 DB와 API를 거쳐 사용자에게 어떻게 전달되는지 전체적인 데이터의 흐름을 파악할 수 있었다.

부족했던 것

  • 초기 단계에서 설계를 꼼꼼하게 하지 못해 아쉬웠다. 샘플 데이터를 미리 DB에 구성하고 테스트했다면 예외 상황 예측이나 데이터 구조의 문제점을 더 빨리 발견해 개발 호율이 높았을 것 같다

바라는 것

  • 앞으로는 개발하기 전에 체계적으로 설계를 하고 테스트 데이터 구성을 먼저 완료하는 습관을 들여야겠고 느꼈다.

0개의 댓글