프로젝트 개발일지

Nam_JU·2022년 8월 10일

MoMoProject

목록 보기
5/5

개발일지

2022-08-05 진행상황

전체 회의

  • 삭제, 수정 기능에서 실 데이터가 변경된 상태로 저장하면 안된다는 주의를 받았다.
    관리자의 메인기능 (카테고리, 질문)부분은 기존대로 하고 일반 유저가 사용할 포스트, 댓글 기능에서는 삭제되거나 변경되는 부분도 따로 flag를 넣어 구별할수있도록 조치하기로함
  • 신고부분의 ERD
    데이터베이스에서 테이블은 많이 생성되어도 나중에 합칠 수 있지만 반대인 경우는 어렵다는 피드백을 받음. 고로 기존에 boolean으로 둔 신고상태 컬럼을 없애고 따로 테이블을 넣는 방향으로 수정하기로함
    행동에 대한 부분은 모두 테이블을 생성하자
    수정은 그 이후에!

기능구현 상황

  • 카테고리 CRUD 완료
  • 질문 CRUD 완료

2022-08-10 진행상황

전체회의

  • 각자 구현한 기능에 대한 진행도 정리
  • 주말 미팅시 프로젝트 병합에 대한 논의 필요

기능구현 상황

  • POST CRUD 완료
  • 이전 회의를 했던 요구사항을 해결하기 위해 Post Entity를 수정함 isUpdate, isDelete 컬럼을 통하여 해당 post의 상태를 알려준다. 수정, 삭제된 데이터는 보두 post로 생성되고 상태값만 추가적으로 변경하는 방식

해결하지 못한 에러

  • Response 응답부분의 CreateAt, UpdateAt의 값이 null 값으로 뜬다
  • 페이징 처리

2022-08-13 진행상황

개발자 회의

  • 프론트가 부재중인 상황에서 api로 기획자님께 보여드려도 괜찮은 것인지에 대해. 프론트와 했을때 통신의 차이, 보여지는것 차이, 개발수정이 되는데 이부분의 부재가 있기때문에 향후 수정할부분이 많아진다.
  • 상태마다 컬럼을 나누지 말고 하나의 컬럼에서 상태값을 나누도록 하자. 현재 삭제, 수정마다 true, false로 나뉨
  • 24일까지 메인기능 + 유저(로그인)을 병합하는게 목표

내가 수정해야할 부분

  • POST상태 부분을 변경
  • Delete, Put부분 컨트롤러 수정
  • 17일까지 댓글 구현 + 오류 수정

2022-08-14 진행상황

  • 피드백 받은 프로젝트 구조 변경
  • 댓글 CRUD완료
  • null 에러 해결

2022-08-17 진행상황

전체회의

  • 게시글 기능에 좋아요 기능 추가
  • 8/21 유저와 메인기능 플젝 합치기
  • 대댓글 기능 구현

2022-09-04

개발회의

  • 유저와 메인기능 1차 통합
  • 각자 유저기능, 메인기능 추가사항을 해서 9월 14일 피드백 하기로함


프로젝트 변화

1. 프로젝트 구조 변경

  • 도메인이 많아지면서 프로그램 내부의 Import문이 점점 쌓여졌다. 나중에는 20줄이 넘어갔음... 그래서 member인 유저, 메인기능인 board, 전체영역의 설정 global로 크게 나누게 됨.

2. Exception 변경

이넘으로 에러를 지정하여 응답을 던질때 BasResponse을 던진다
여기서 Exception은 Exception을 상속받은 추상클래스CutstomBaseException을 사용하였다.

  • 카카오 스쿨 교육을 받으며 RuntimeException과 Exception의 차이를 배움. 여기서 Exception을 사용할경우 반드시 예외 처리를 해야 하기 때문에 throws로 내가 만든 Exception을 전부 던지는 코드를 작성하였다. 외부의 영향(운영체제등)의 오류가 아닌 프로그래머의 실수 로 발생한것이기 때문에 RuntimeException을 상속받도록 변경하여 코드를 수정하였다.
  • RuntimeException으로 변경

3. Update, Delete 상태 변화

  • 수정된 글, 삭제된 글의 데이터도 삭제가 되어서는 안된다는 피드백을 받았었다. 그래서 수정, 삭제 각각의 컬럼을 사용하여 Boolean타입인 True, False로 변경여부를 알려주었다.



  • 그러나 데이터가 수정될때마다 최초의 값과 변경된 값의 컬럼을 전부 True로 바꾸어 줄것이냐 말것이냐는 혼란이 왔다.
  • Enum클래스를 사용하여 게시글의 상태값을 단일 컬럼으로 변경하는 방식으로 수정.
    코드가 좀더 깔끔해지고 컬럼을 줄여 데이터베이스의 메모리를 줄일 수 있었다.


4. Jackson Json - null 생략

Setter을 없애고 빌더를 사용하는 구조다 보니 필요한 값만 따로 불러오는 방법을 몰라 이렇게 null 값이 쭉 보여지는게 거슬렸다

# yml 설정을 사용하는 방법
  jackson:
    default-property-inclusion: non_null
# 어노테이션을 사용하는 방법
 @JsonInclude(JsonInclude.Include.NON_NULL)
  • 적용전
  • 적용후
profile
개발기록

0개의 댓글