[내일배움캠프 29일차 TIL] entity 연관관계 프로젝트 적용
오늘의 진도 : 개인과제 4단계까지...
JWT부분 다시 들어야겠어! 여전히 막막한 느낌이..
오늘의 학습, 오늘의 궁금증, 개인과제, 면담, 오늘의 회고 이렇게 5개의 큰 틀로 나누어 정리할 것이다.
💡 오늘의 학습 키워드
- 개인과제 -
entity 단방향
entity 단방향
: 외래 키 주인만 외래 키를 등록, 수정, 삭제 할 수 있으며, 주인이 아닌 쪽은 오직 외래 키를 읽기만 가능.
오늘의 궁금증
- Q : @Setter을 지양하는 이유?
- 객체의 불변성 유지
- 예측 가능성과 안정성 향상
- 캡슐화 : 객체의 내부 상태가 외부에서 보호
개인과제
- 설계부터
- 초기 설계
- user : pk, 담당자(이메일), 비밀번호
- agenda : pk, 할일제목, 할일내용, 생성날짜, user_fk
- comment : pk, 댓글내용, user_fk, agenda_fk, 작성일자
- 면담 후 수정된 설계
- agenda : pk, 할일제목, 할일내용, 생성날짜, 담당자(작성자 : 이메일)
- comment : pk, 댓글내용, 담당자(작성자 : 이메일), agenda_fk, 작성일자
- 초기 설계
- 과제 진행 중 마주친 고민
Q : 어떤 것이 더 RESTful한 API일까?
- /api/agenda/{agendaId}/comment/{commentId}
- /api/agenda?id=1&commentId=8
: 결론은 1번. 2번은 쿼리 파라미터를 사용하여 리소스를 식별한다.
하지만, 쿼리 파라미터는 주로 필터링이나 검색에 사용되며, 리소스를 고유하게 식별하는 데 적합하지 않다.
- 과제 진행하며 나에게 부족한 부분에 대한 고촬
현재 필수 기능 구현 단계의 7단계까지 중에서 4단계(entity 연관관계, 댓글 추가/수정/삭제)까지 완료했다.
5단계부터는 JWT부분인데, JWT을 어떻게 활용해서 작성해야 할지 아직 감이 안잡힌다.
그래서 저녁 시간에 강의를 조금 다시 봤는데, 아무래도 강의의 자료랑 내가 강의 들으면서 작성한 JWT 코드들을 가지고 과제를 진행해야 습득이 빠를 것 같다.
면담
- Q : 내가 만든 erd가 맞나요?
- A : 과제를 하기 위해서는 erd에 유저를 외래키로 넣을 필요는 없다.
- Q : ResponseEntity 활용을 잘 못할 것 같아서 답답함이 안 풀리는 것 같아요.
- A : 지금 못쓴다고 불편한 마음을 안 가져도 된다.
- Q : 구현엔 문제 없어는 것 같은데 스타트를 못하겠어요.
- A : 완벽하게 준비할 수는 없다. 완벽하게 준비하고 구현하기에는 마감기한이 있기 때문이다. 일단 구현할 수 있다면 해보면서도 답답하고 안 되는 부분이 있다면 그 부분을 찾아서 풀어내면 된다.
결론!
프로젝트 구현에 완벽을 추구하려는 나!
일단 설계 후 뭔가 답답하면 한 번 튜터님께 확인 받고구현!
그러고 하다가 에러나거나 막히면 다시 질문
이게 나만의 방식.. 너무 강박 받지 않기!
오늘의 회고
- 12시간 중 얼마나 몰입했는가?
점심시간 2시간 빼고 오전 코드카타랑 팀 회의 시간들을 빼고나면..
7시간 반 중에서 정말 4시간 정도는 최대한 집중해서 공부에 임했다.
- 오늘의 생각
RESTful한 API를 설계할 때마다 param과 Query String 방식을 고민하게 되는 것 같다.
혹여나 내가 작성한 것은 param을 사용했지만, Query String이 더 맞는 방식일수도 있지 않을까? 하는 그런 고민을 한다.
지난 과제에서 작성한 코드를 다시보고 Setter이 사용되고 있다는 걸 확인했다.
그래서 일단 @Setter은 지우고 최대한 Setter을 지양하는 방향으로 갔는데, 하면서 드는 생각이 정확하게 Setter은 @Setter 이 애너테이션을 말하는 걸까? 아니면 Setter함수 그런걸 말하는 걸까? 다시 알아보고 어떤 방식으로 해야 정말 Setter을 지양하는 방식이 되는 건지 확인해볼 필요성을 느꼈다.
말로는 지양해야 한다는 건 알지만, 코드상으로는 어떻게하는지 정확한 방법을 모르니 헷갈린다.
- 내일 학습할 것은 무엇인지
일단 내일은 오전에 코드카타를 진행하고 JWT 자료를 좀 살펴본 후
남은 과제를 진행할 예정이다.