Diary/SSAFY

[SSAFY/2학기] 공통 프로젝트 4주차 회고록

순무엄마동생 2021. 8. 7. 16:31

벌써 4주차가 끝이 났고 지금 블로그 작성 날짜 기준(21.08.07)으로 프로젝트 마감까지 13일이 남았다! (시간 미친거 아니냐구요)

이번 주 중 2-3일 정도 아팠는데 진통제로 버텼다. 이지엔 6 액상 진통제 쵝오다... 그래서 굉장히 예민하고 또, 프로젝트에서 원하는 대로 진행이 되지 않으니 스트레스 한 가득이었다 🔥🔥 사실 아픈것보다 프로젝트가 원하는 방향대로 흘러가지 않아 스트레스가 굉장히 컸던 것 같다. 그래서 팀원들한테도 아주 예민보스였다. 이번 주 예삐 바로 나야나 ㅎ... (아주 죄송함다.) 다음 주에도 어느정도 기능이 완성되지 않는다면 나는 울어버리고 말테야...


회고록 시작

아무튼 이번 주에 느낀 점을 정리해보자면 집중하자! 였다.

집중하자!


놀고 싶은 마음도 있지만 기간 내에 못 끝낼 것 같다는 생각이 너무 많이 그리고 크게 들어서 코딩하고 싶은 의욕이 사라졌었다. 그리고 맡은 부분 중 첫 기능이 리뷰였는데 끌고와아하는 DB 테이블이 5개였다. 한번에 다 끌고 오다보니 에러도 많이 발생하고 쿼리문이 너무 많이 나와서 하기 싫다는 마음이 2배, 3배로 커졌다. 하지만 팀 프로젝트였고 주어진 일을 하지 못했을 때에 나 스스로도 `이걸 왜 못 하지?`라고 회의감이 들 것임을 알았기에 하기 싫어도 우선은 컴퓨터 앞에 앉아있었다.

복잡한 것은 하나씩 차근차근!


에러가 났던 코드는 꼴보기 싫기도 하고 굳이 하나씩 에러를 잡을 바에 처음부터 다시 코딩하는게 좋겠다는 판단이 들어 작성했던 모든 코드를 지웠다. 그리고 연관된 테이블을 하나씩 연결하며 코드를 완성했다.

관계있는 테이블은 맥주/맥주 해시태그/리뷰/리뷰 해시태그/해시태그 였는데 리뷰 등록 기능을 작성하고 있었기 때문에 리뷰 테이블을 메인으로 잡았다. 리뷰를 등록하면 리뷰에 연관된 해시태그를 저장해야하므로 리뷰-리뷰 해시태그-해시태그를 먼저 연결했다. 그리고 해당 맥주가 기존에 가지고 있던 해시태그면 total_count를 1 증가 시켜주도록 맥주 관련 테이블을 연결해줬다. 다 작성하고 나니 굳이 맥주 관련 해시태그 테이블이 필요한가에 대한 의문이 생겼다. 리뷰가 곧 맥주의 해시태그고 단순히 total_count 만을 위한 테이블이라면 count(*)를 사용하면 되지 않을까? 라는 생각이 들었다. 그래서 리뷰-리뷰해시태그 테이블과 count 함수를 사용하여 쿼리를 작성했더니 맥주 해시태그 테이블에 필요한 결과값이 모두 나오는 것을 알 수 있었다.

기존 코드에서 발생하는 쿼리문이 INSERT 최대 3번, SELECT문이 2번이었는데 맥주 해시태그 테이블을 제외하니 INSERT문 2번, SELECT문 1번으로 쿼리 횟수를 줄일 수 있었다. ERD로만 작성할 땐 좋다고 생각했는데 개발을 하니 전혀 아니었다. 다시보고 또 본 ERD였지만 역시 개발이 진행되니까 수정되는 건 어쩔 수 없나보다... 그치만 전보다 테이블도 간소화하고 쿼리문도 줄일 수 있어 좋았다! (실무에 계신 개발자 분들이 보면 극대노할 코드일 것 같지만...😂)

기록하자!


프로젝트를 하면서 많이 느낀게 기록을 해두자 였다. 지난주 프로젝트를 하면서 느낀점이 너무 많아 기록을 해뒀는데 이번주 일주일이 너무 정신없이 지나가니 벌써 가물가물하다. 미리 기록해두지 않았다면 나중에 뭐 때문에 힘들었고 어떻게 해결했는지, 당시 내 감정이 어땠는지 기억이 나지 않을테지...
개발을 들어가니 그 전처럼 팀원들과 의견을 나누고 하는 시간이 줄었다. 그러다보니 문제를 해결하고 혼자만의 싸움이었다. 이 과정에서 분명히 새롭게 익힌 기술...? 사용법?들이 있다. 기능 구현하기만 급급하니 뭘 배웠었고 그 부분이 정확히 어떤 경우에 사용하는지 정리할 시간이 없어서 금방 잊혀지는 느낌이다. 프로젝트 중간에는 이걸 정리해서 올릴 시간이 없으니 간단하게 어떤 기술을 어떤 요소에 적용했고 왜 사용했는지를 적어두려고 한다. 이걸 모아서 주말에 블로그에 글을 작성하는 것이 내 목표다! 이번 주는 따로 적어두지 못해서 기억을 되살려서 블로그에 적어야지...

간단하게 이번 주 회고록 끗!
어찌저찌 이번 주에 목표했던 기능 구현은 끝냈다. 다음 주는 에외처리 및 유닛테스트 하는 것이 목표다! 유닛테스트는 Mockito를 사용해보고 싶어서 ... ㅎ 프로젝트 기간을 맞춰야하니 공부만 할 순 없다! 그러니까 시간 분배를 잘 해야지! 화이팅!