Spring Boot 협업(3)

제이 용·2025년 11월 26일

트러블 슈팅과 새로 배운 점 (2025-11-26)

오늘 하루는 전날 머지 이후 계속되는 리팩터링과 기능 추가로 꽤 긴 코딩 시간을 보냈다. 약 13시간 동안 집중하면서 여러 트러블 슈팅과 학습 포인트가 있었다.


1. 트러블 슈팅

1) 머지 계획과 목표 설정

  • 전날 머지를 마치고 각자 리팩터링을 진행했는데, 작업 중간마다 “이거 있으면 좋겠다”라는 의견이 계속 나와서 원래 계획했던 두 번째 머지는 무산되고 기능 추가만 하게 되었다.
  • 교훈: 앞으로는 정확한 목표를 설정하고, 계획대로 작업하면 본인의 진행 상황과 남은 작업량을 명확히 확인할 수 있다.

2) 예외 처리와 테스트 기록

  • 코드 작성 중 발생하는 문제들을 예외 처리하며 보완. 이후 팀장님께서 모든 코드를 포스트맨으로 검토하시면서 발견된 문제들을 각 담당자가 수정하는 시간을 갖고 있었다.
  • 문제: 실행 통과 여부를 기록하지 않아 육안으로 확인하기 어려운 문제를 튜터님의 피드백을 통해 알게 되었다.
  • 교훈: 다음부터는 시나리오 기반 테스트 기록을 남겨, 통과 여부를 체계적으로 확인해야겠다.

3) 설계 미흡으로 인한 로직 추가

  • 게시물 담당으로서 전체조회와 페이징, 전체 게시물 조회 로직만 설정했는데 설계 부족으로 단건조회와 댓글 관련 기능이 이후에 추가되는 상황이 발생했다..
  • 교훈: 설계와 검토를 디테일하게 진행하여 한 번에 로직을 구현하는 것이 효율적.

4) 와이어프레임과 기능 누락

  • 리팩터링 중 사진 넣기 기능이 누락된 것을 나중에 발견하게되었다. API 명세서와 ERD에서도 사진 관련 속성이 빠져 있었고 그것으로 인해 늦게 알게 되었다.
  • 교훈: 와이어프레임, ERD, API 명세를 세밀하게 검토하여 핵심 기능이 빠지지 않도록 해야겠다.

2. 좋았던 점

  • 팀장님이 한번에 모든 로직을 테스트해 부족하거나 예외처리가 필요한 부분을 지적해주셔서, 담당자가 놓쳤던 부분을 확인할 수 있었다.
  • 커뮤니케이션을 통해 기본 구조를 유지하면서도 창의적인 방법으로 기능을 구현하는 아이디어가 많이 나왔다.
  • 서로 문제를 공유하고 해결하며 배우고 가르치는 경험을 동시에 얻게 되었다.

3. 오늘 배운 점

1) DTO의 from 메서드 활용

  • 서비스 로직에서 DTO로 매핑할 때 from 정적 메서드를 사용하게 된다면
    • 서비스 로직이 깔끔해지고
    • 응답 구조 변경 시 DTO 내부만 수정하면 되어 유지보수가 쉬움
public static GetPostResponse from(Post post, List<CommentResponse> comments) {
    return new GetPostResponse(
        post.getId(),
        post.getUser().getName(),
        post.getTitle(),
        post.getContent(),
        comments,
        post.getCreatedAt(),
        post.getModifiedAt()
    );
}

2) 사진 첨부 및 조회 구조 이해

  • 팀장님과 튜터님께 피드백을 받으면서 개인적으로 사진 첨부/조회 구조와 흐름을 이해하게 되었다.
    • 기본적으로 사진 첨부에 관련된 포스팅들을 읽다가 이해가 되지 않았고 튜터님을 찾아갔다.

튜터님 피드백

  • 사진 등록 흐름

    • 클라이언트가 사진 URL 또는 파일을 서버에 전송

    • 서버에서 해당 파일을 저장할 경로(파일 URL)에 바이너리 데이터를 저장

    • DB에 저장된 파일 URL 저장

  • 사진 조회 흐름

    • 클라이언트 요청 시 서버는 DB에 저장된 파일 URL을 가져옴

    • URL을 통해 실제 사진을 클라이언트가 볼 수 있도록 전달

필요 메서드 예시

// 사진 저장
public String saveImage(MultipartFile file) {
    // 파일 서버 저장
    // DB에 URL 저장
    return fileUrl;
}

// 사진 조회
public Resource loadImage(String fileUrl) {
    // 파일 시스템에서 파일 읽어오기
    return resource;
}

오늘은 시간 관계상 사진 기능은 구현하지 못했지만, 내일 꼭 게시물에 사진 첨부 로직을 추가할 계획이다.

4. 내일 계획

  • 게시물 단건 조회/생성 시 사진 첨부 기능 추가

  • DTO와 서비스 구조를 활용해 응답 구조를 안정적으로 확장

오늘 하루는 피곤했지만, 다양한 트러블 슈팅과 새로운 학습 포인트를 얻을 수 있었다. 반복되는 작업보다는 설계와 기록, 팀 소통이 얼마나 중요한지 다시 한번 느낀 하루였다.

0개의 댓글