Home > Today I Learned > 2026_05_04~2026_05_08 > 2026-05-07 일지

2026-05-07 일지
web spring thymeleaf html

서론


프로젝트를 진행하면서 느낀 것과 피드백 받은 것을 간단하게 정리를 해보도록 하겠다.

발표 준비


일단 다른 팀원들이 구상해놓은 것에 대해 알아야 하고

구현한 핵심로직에 대해 설명을 해야겠다.

  1. 카테고리
    • 모달바를 구현할 때 js를 활용하고 ajax를 통한 연동 사용
  2. 게시글 CRUD
    • postId로 기존 게시물 탐색
    • Category.postMap에서 remove를 하게 된다.
      물리 삭제 방식이라고 봐도 무방

    • 현재 구조상 중요한 탐색 로직
      게시글과 소속 카테고리를 함께 찾고 이를
      수정 ,삭제, 카테고리 변경에 사용된다.

    • 작성 요청이 Controller -> Service -> Repository -> Thymeleaf
      로 흐름이 구성된다.
  3. 댓글 대댓글
    댓글을 id, content, createdAt, updateAt
    대댓글을 구사할 때 parentId, depth를 활용하여 tree구조를 갖게 된다.

  4. 게시판 리스트, 페이징
    다음페이지 이전페이지를 반환하는 방식으로 구현

프로젝트 리뷰, 고쳐야 할 점


MemoryRepository로 레포지토리를 하나로 관리하는 것은 solid원칙을 위배하는 것

리포지토리는 인메모리 구조로 실행해서 설계 때 하나의 리포지토리를 두어도 큰 문제가 되지 않을 것이라고 생각했다. 하지만 이렇게 프로젝트를 시작하니 이후 리포지토리에 작성해야 할 코드를 충돌이 걱정되어서 다른 곳에 작성하는 일, 등 코드에 접근하기 꺼려지는 경향이 있다.

기능을 분리하고 도메인을 분리하지 말고 반대로 도메인부터 분리하자.

지금은 service, model, repository 이렇게 3개로 분류하고 안에서 각 도메인에 관한 것을 구현했다. 하지만 Comment , Post, PostList, Category 이렇게 도메인을 먼저 분리하고 그 안에서 service, model, repository를 구현하고 시행할 필요가 있다.

Git을 너무 활용하지 않았다.

커밋메시지는 무조건 준수할 것

커밋할 때는 무조건 커밋메세지 양식을 지키도록 하고 여기에 대해 소통이 필요했던 것 같다.
→ 다른 사람이 내 커밋 메시지를 보더라도 그 의도를 알 수 있을 정도까지만 쓰는 것이 좋다.

issue를 만들고 이에 관해 글을 정리하는 것을 하지 않았다.

문제가 있으면 이에 관해 소통하는 것이 필요했던 것 같다.
project 활용이 적었다. 각 기능별로 구현하고 구현해야 할 기능에 맞게 branch를 만들어서 올리고 pull request를 수행할 때 코드리뷰를 시행했어야 했는데 이에 관한 것을 구두로만 해결하고 따로 comment에 적은 것이 없어서 안좋았다.

URL에 id를 넣어서 전송을 하고 있다.

이 경우 데이터 캡슐화가 필요하고 DTO가 필요하다.
DTO없이 넘기고 있는데 DTO를 만들어서 사용을 했어야 했다.
REST에 관한 이해도를 높이도록 하자.