🦮 스스로를 위한 프로젝트 일지 가이드
1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가
2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가
3️⃣ 프로젝트를 되짚어보며 개선할 점이 있는가
✅ CRUD
수강 후기 게시판 CRUD 구현 시 다음과 같은 기술을 사용했다.
1.조인
2.뷰
1️⃣ 프로젝트를 진행하며 '왜' 그렇게 했는가
수강 후기 작성 시 카테고리에 회원이 수강한 강좌의 정보를 띄우고 싶었다.
회원이 수강한 강좌 테이블인 mycourse에는 회원 아이디와 강좌 번호만 있기 때문에 강좌 정보를 띄우려면 course 테이블의 정보가 같이 필요했다.
그래서 두 테이블을 조인하여 정보를 불러왔는데, mapper에 적고 보니 쿼리가 4줄이 되어 불편하고 가독성도 좋지 않았다.
또한 다른 서비스 로직에서도 사용되는 쿼리였기에 두 테이블을 조인한 쿼리를 뷰로 만들기로 했다.
뷰로 만들면 쿼리도 짧아지거니와 추후에 데이터 관리를 할때도 물리적인 테이블에는 영향이 가지 않으니 더 편리할 거라고 판단했다.
2️⃣ 어떤 문제가 생겼고, 어떻게 해결하였는가
두 테이블을 조인한 것을 뷰로 만들고 난 후 mapper에 반영하고 팀원의 코드와 합치며 형상관리를 하는 과정에서 생성한 뷰에 대해 자세한 설명을 하지 못했다.
그래서 팀원이 뷰의 정체를 알지 못해 약간 혼란스러워했는데, 이 부분은 뷰를 만들고 바로 공유하지 못한 커뮤니케이션의 부재였다고 생각한다.
그리고 아주 사소한 기술적인 문제가 있었다.
수강 후기 작성 시 엔터로 줄바꿈한 내용이 반영이 안되는 오류였다.
원인은 HTML에서 후기를 띄울 때 <br> 태그로 줄바꿈을 인식하는데 작성한 후기가 디비에 저장될 때는 개행문자 \r\n으로 저장되기 때문이었다.
해결 방법은 수강 후기 조회 시 컨트롤러에서 VO를 불러온 후 replace 함수를 사용하여 \r\n을 <br> 태그로 직접 바꿔주었다.
3️⃣ 프로젝트를 되짚어보며 개선할 점이 있는가
어떤 업데이트 상황이 생기면 바로바로 공유를 해야 한다는 교훈을 얻었다.
또한 업데이트한 상황을 문서로 정리해 두면 좋다.