성장 경험/회사 업무 기록
[회사 업무 기록] 회사 19주차 - 인터페이스 정의서, 테스트, 리펙토링
Tarake
2025. 6. 13. 21:27
이번 주 업무 요약
- 인터페이스 정의서 수정
- Postman을 이용한 백엔드 서버 테스트
- 프론트엔드와 API 명세 조율 및 테스트
- 코드 리펙토링
주요 작업
응답 Json 구조 변경
- 기존 : "msg" : "success" 와 같은 메시지 기반 구조
- 변경 : "status" : true/false 로 응답 구조 통일
ResponseDTO 도입
- 기존 : ResponseEntity<Map<String, Object>> 혹은 ResponseEntity<Object> 등의 형식으로 반환
- 변경 : ResponseDTO<T> 클래스를 생성하여 메시지 및 데이터 구조를 통일
응답 DTO 처리 위치 변경
- 기존 : 컨트롤러 계층에서 DTO 매핑
- 변경 : 서비스 계층으로 응답 DTO 매핑 책임을 이전 → 코드 가독성과 책임 분리 향상
API 반환 구조 검증
- Postman 환경에서 JSON 응답 구조 검토 및 테스트 수행
예외 처리
- 기존 : Exception 하나로 모든 에러에 대한 예외 처리
- 변경 : 각 기능에서 발생할 수 있는 예외 DataAccessException 등 으로 변경
트러블 슈팅
문제 상황
- RequestDTO에서 isDetected 필드 null 일 경우 역직렬화 시도 중 오류 발생
원인 분석
- session.getIsDetected() 가 null인 경우에도 readValue() 실행 → NullPointerException 또는 JsonProcessingException 발생 가능
해결 방법
if (session.getIsDetected() != null) {
this.isDetected = objectMapper.readValue(
session.getIsDetected(),
new TypeReference<Map<String, Boolean>>() {}
);
} else {
this.isDetected = null;
}
배운 점
- Json 역직렬화는 항상 null 체크와 예외 처리를 동반해야 안정적인 코드 작성 가능
다음 주 목표
- 서비스 계층 리팩토링 마무리
- 프론트엔드와 협업하여 실제 사용 시나리오 기반 API 테스트 진행