항해99/개발일지

20220204 개발일지

paran21 2022. 2. 6. 01:33

오늘은 주특기 3주차가 시작하는 날이다.

주특기 3주차 쯤 되면 그래도 Spring에 대해 많이 익숙해졌겠지 생각했는데, 전혀 아닌 것 같다.

어떻게 어떻게 한 주씩 과제를 마무리를 하고는 있는데, 잘 하고 있는 건지는 잘 모르겠다.

 

지난주 과제가 어려워서 이번주도 걱정이 많았다.

심화 4주차 강의를 듣고 있어서 일단 다 듣고 과제를 시작할까 했는데, 막상 과제를 받으니까 또 걱정이 되서

우선 과제부터 시작했다.

기본 과제는 배달 앱 서버를 구현하는 것으로, 식당과 메뉴 등록, 주문 등록까지 해야한다.

추가로 나온 과제에서 엔티티 간의 관계를 설정하는 부분이 있어서 4주차 강의를 모두 들었다.

강의노트+이론 부분만 들으려고 했는데, 실제로 어떻게 구현하는지 잘 모르겠어서 기능 구현하는 부분까지 모두 들었다.

 

그리고 5주차에 에러 처리 부분을 듣고, 모든 유효성 에러를 400으로 표시하는 global exception handler를 작성하였다.

에러코드 작성하는 부분이나 핸들러 사용하는 부분은 과제 진행 속도를 보고 추가로 공부해서 봐야할 것 같다.

 

테스트 코드에서 계속 에러가 발생하였다.

exception 구글링도 해보고 build.gradle 등 설정값도 모두 확인했는데도 해결하지 못했다.

다른 팀원 분이 동작하셨다고 해서 그 분 코드랑도 비교해 봤는데 원인을 찾을 수 없었다.

 

우선 arc에서는 문제가 없어서 과제를 더 진행했다.

 

2번까지 완료하면서 restaurant와 food는 연관성 설정을 했는데, 3번을 어떻게 구조화해야할지 어려웠다.

그리고 생각한 것과 실제로 구현하는 것이 많이 달랐다.

restaurant와 food 관계설정할 때, 1:N 관계이고 restaurant에 foreign key가 들어간다고 생각하고 작성했는데 잘되지 않았다.

찾아보니 객체 간의 관계를 할 때 테이블 처럼 생각하면 안되고 반대로 생각해야하는 것 같다.

로직과 관련된 문제인데, restaurant에 외래키를 설정하면 food 업데이트마다 restaurant도 업데이트가 이루어져야 한다.

따라서 1:N의 관계의 경우 주로 N쪽에 foreign key를 설정하고, 주가 되도록 한다.

 

주문 기능을 구현하기 위해 어떤 entity를 구현해야 하는지, 객체 간의 관계는 어떻게 설정해야 하는지, return값을 위해 entity를 따로 만들어야되는지 고민이 되었다.

테이블 간 관계 설정을 처음 해보는 것도 아니라서 금방 할 수 있을 줄 알았는데 객체라는 점에서 테이블과는 달랐고,

실제 코드로 작성하는 건 또 달랐다.

모델링을 하고 눈에 보이는 에러가 없이 코드를 짰는데도 entity 관련 에러가 났다.

 

오늘은 정말 피곤해서 일찍 마치려고 했는데, 오늘도 일찍 끝내지는 못했다.

마지막에 order도 다 마치고 자고 싶었는데 어떻게 하면 좋을지 계속 생각하다 코딩하다가 결국 마치지 못했다.

 

토요일까지 꼭 과제를 다 마치고 다음주에는 꼭 추가구현 + 개인 공부를 해야겠다!