legacy/항해99 일지

20230102 (월) TIL

3hoon 2023. 1. 3. 11:22

실전 프로젝트 4일차

1. 네이버지도 API 구현

처음에는 이 jsp로 구현을 해야겠다라는 생각을 했다.
이유는 json데이터를 주고받지를 못하기때문이다.
근데 아무리 생각해도 이 jsp를 사용하게 되면은 추후에 우리가 진짜 프로젝트 구현을 시작했을때
많은 걸림돌이 될것이라고 생각했다.
일단 구조자체가 우리와 익숙하지가 않았고 프론트엔드와 합칠때 우리가 생각한것 이상으로 훨씬 많은
에러들이 발생하고 스트레스가 유발되는 것을 보면서 아 이 jsp도 그렇게 한몫하겠구나 라는 불안한 생각이
계속 들기 시작해서 다시 알아보기 시작했다.

그리고 또 한가지가 무엇이냐면은 spring에서는 jsp를 쓰지말라는 글들이 간간히 있었다.
근데 다들 웃긴게 대체 무슨이유인지는 알려주지않고 일단 쓰지마라라는 의견이 많았다.
대체 왜 쓰지말라는거지? 뭐 어쨌든 나도 깊게 생각은 안했다.
jsp는 최후의 수단으로 남겼고 다른 방법이 있으면 다른 방법을 쓸것이었으니까.
그러던도중 thymeleaf 문법에 대해 알게 되었고 이 문법을 활용하면 데이터를 주고 받을수있겠다 생각이 들었다.
결과는 성공. 잘된다.

그러면 이제 다음 스텝은 과연 controller에서 이러한 위도 경도 데이터를 다뤄서 넘겨줘야하는것인가 였다.
이러한 로직은 나는 service에서 처리하는 것이라고 배웠다.
사실 이렇게 옮기는 것은 문제가 없었는데 한가지 큰 문제가 있었다.
바로 나는 db에서 내가 입력한 검색어에 따라서 db에 존재할 경우 그에 해당하는 위도 경도값을 구하고 싶었는데
과연 어떻게 내가 입력한 검색어를 service로 옮기냐는 것이다.
사실 여기까지는 문제가 없지만 진짜 문제는
RestController방식으로 보내면은 지도가 뜨질 않았다.
그러면 결국 controller방식으로 보내야한다는 것인데 어떻게 해야할까 또 고민을 했는데
requestParam방식으로 url에 담아서 보내는 것으로 해결했다.

그러면 api 코드 구현 자체는 완료가 되었고 이제는 검색어가 100% 같아야지만 검색이 됐는데 자동완성 기능을
넣을수 있지 않을까 해서 Like% 쿼리에 대해 공부를 해봤는데 구현을 하진 못했다.
내일까지 구현을 해보고 싶지만 다른 할일들도 많기에 지도 api는 여기까지만 일단 만들어놓는 것으로 하고
팀원들과 협의 후에 머지하기로 했다.

그리고 내가 공부한 내용은 간단히 정리해서 우리 노션페이지에 올려놓았다.

추가로 중간에 리펙토링을 하려고 naver 엔티티를 naverMap 엔티티로 변경했는데 openApi의 코드까지
전부 바뀌는 바람에 그것을 찾는다고 3시간 정도는 날린거같다.
인텔리제이의 리펙토링 기능은 정말 좋긴한데 조심 좀 하자

2. convention

팀원들과 코딩할때 우리의 약속들을 미리 정해놓았다.
2번의 작은 프로젝트들을 하면서 느꼈던 점은 모두들 코딩하는 습관은 다르고 변수명을 정하는 것 역시 다르다는 것을
알았고 이러한 코드들을 한곳으로 뭉칠때 많은 오류와 스트레스를 유발하는 것을 느꼈다.
그렇다면 우리가 이미 그러한 점들을 알고 있는데도 그대로 당하는 것보다는 조금이라도 서로 약속을 지켜서
더 오류가 없는 상황을 만들어야하기 때문에 커밋할때의 약속들이나 코딩할때의 약속들을 정했다.
그렇게 대단한것들은 아니고 띄어쓰기에 대한 약속이라던지 주석문에 대한 약속정도를 얘기했다.
추가로 나는 코딩을 할때 이것저것을 많이해보는 스타일이기때문에 import문이 굉장히 지저분해지는 것을 알고 있기때문에
import문도 최적화하는것을 약속했다.

3. git flow 전략

우리 프로젝트의 깃저장소를 새로 팠다.
우리의 전략은 git flow전략으로 하기로 했고 흉내가 아닌 최대한 유사하게 잘 따라해보기로 했다.
처음에 스켈레톤 파일을 업로드하는데에도 많은 오류들이 발생했다
지금까지는 이런적이 없었는데 참 희안하게 잘 안되서 아예 새로 저장소를 파고 업로드했는데
나중에 프로젝트가 잘 풀리려는지 미리 액땜한 느낌이다.