221104 프로젝트와 공부

샨티(shanti)·2022년 11월 4일
0

하루를 마무리 하기 전, 오늘 있었던 일들을 잔잔히 되짚어봅니다.
성공과 실패의 모든 요소에서 '배울 점'을 찾아내어 기록하고,
더 성장하는 내일의 나를 위해 'action plan'을 세웁니다.

오늘 주간회고를 하고 잠깐 혼자만의 시간을 가지면서 강렬하게 들었던 생각.
프로젝트를 진행하면서 의도적으로 공부를 하지 않으면 '학습'을 할 수 없겠다는 위기감이 들었다.

오늘 꽤 오랜 시간을 코딩도장에서 보내고 또 프로젝트를 진행하려고 애쓰긴 했지만 그래서 내가 '학습'한게 무엇이지? TIL에 쓸 '오늘의 배운 점'은 무엇이지? 생각해봤을 때 딱 떠오르는 것이 없었다.

개발자는 끊임없이 '학습'해야 하는 직업이라고 하는데, 아마 실무에 가서도 일에 치이다보면 의도적으로, 또 일부러 학습하지 않는 이상 일을 쳐내는 데에만 급급하고 남는게 없겠다는 생각이 들었다.

우선 오늘 프로젝트에서 실행한 부분들을 기록하고, 별도로 학습할 부분을 정리하여 의도적으로 시간을 내여 따로 공부하려 한다.

어제는 됐던 옵션이 또 안돼..

옵션이 결국엔 제대로 되지 않아 오전에 꽤 오랜 시간을 흘려보내고.
아주 과감하게 옵션을 버튼으로 바꿔버렸다. 더 이상 지체할 시간이 없기 때문이다.

초기 기획안과는 UI측면에서 '시/도'를 선택하는 부분이 바뀐 것이기 때문에 '시/군/구'는 어떻게 구현해야 할까? 고민이 좀 됐다.

하지만 지금은 UI측면을 고민하기 보다는 기능 구현을 우선시해야할 때라 판단하여 '시/도'쪽은 버튼으로, '시/군/구'는 이전과 동일하게 드롭박스로 남겨두었다.

추후에 이 레이어쪽에 있는 버튼들은 '클릭', 즉 focus 상태일 때 컬러를 다르게 주어 선택된 상황임을 유저가 알 수 있도록 만들 것이다.

옵션이 안되는 이유를 정확히 알 수 없는게 답답하다.
아침에 안되었던 부분은 '시/도' 쪽을 클릭하는데 드롭다운이 제대로 떨어지지 않고 한 열댓번 클릭해야 한번 드롭이 되는 상황이었다.

너무 화가나서 주석처리 한 뒤에 버튼으로 다 만들고.
오늘 오후에도 계속 안돼나 싶어서 잠깐 주석처리 한 부분을 풀고 실행해봤는데. 뭐여? 왜 돼?
됐다가 안됐다가... 어쩌라고...

잠시 잠깐 Swing의 레이어 지옥을 맛본 기분이었다.
정말 순간적으로 swing으로 착각해서 '옵션의 잔상이 남은건가?' 하고 z-index를 10으로 준건 안비밀...

아... 어쨌든 지금은 됐다 안됐다 하는 불안정한 상황으로 둘 수 없기 때문에 안정적인 '버튼'으로 구현한 뒤에 정확한 원인을 파악하게 되면 그 때 살릴지 말지를 고민하고자 한다.


내가 선택한 필터 조건 보기, 하단 버튼을 통해 필터 결과값을 리스트로 보기

다행히 서버에 저장해둔 임의의 10개 장소 데이터가 잘 불러와졌다.
그 장소에 대한 마커가 지도 위에 10개 출력되어 있고, 사용자가 필터 조건을 적용하면 그 조건에 맞는 장소들의 마커가 지도에 띄워진다.

근데 지도에 마커들만 띄워져있으면 사용자 입장에선 필터링 된 장소가 있는건지 없는건지, 또는 있다면 몇 개나 찾아진건지 알기가 어려울 것이다.
그래서 필터링 된 장소가 없을 경우 '검색 결과가 없습니다' 문구를, 그리고 장소가 있는 경우 'OO개 장소 보러가기' 라는 문구를 띄워주고자 한다. 또 OO개 장소 보러가기는 버튼형식으로 구현하여 클릭할 경우 장소 리스트를 볼 수 있는 화면으로 direction!

아직 CSS가 적용되지 않은 상태라 고통스럽지만, 그래도 이 흐름을 만들어 내는데 까지는 성공했다.


Entity 안에 임베디드 된 모델의 요소로 자료를 찾아야 하는데...

말이 좀 어렵다.
간략히 설명하자면 Place라는 모델(Entity임)에 여러 요소들 중에서 Address라는 모델(Entity 아님)이 임베디드 되어 있었다.
근데 Place Repository에서 Address 모델의 요소인 Sido(시/도)로 필터링을 해야 했었다.

처음에 에러가 떴을 땐 '어? 왜이러지?' 했는데, 알고보니 단순히 placeRepository에 findAllBySido를 시도하려니 당연히 에러가 날 수밖에 없다. placeRepository는 sido 요소를 가진게 아니라 Addresss라는 객체를 가지고 있었기 때문이다.

마음의 여유가 있었으면 좀 더 공부해서 객체 안의 요소를 빼올 수 있는 방법을 공부했을 것 같은데..(찾아보니 쿼리 등 여러 힌트를 얻을 수 있었음)
클러스터링도 해결되지 않은 상황에서 끝모를 학습을 새롭게 시작하는 것이 좀 두려워서 결국엔 Address라는 객체를 뽀개서(;;) Place 모델이 sido 요소를 갖도록 만들었다.

이부분은 JPA를 계속 사용하려면 어쨌든 알아야 할 부분이라 생각되기에 별도로 공부, 정리해서 공유하련다.

이 포인트가 오늘 느꼈던 위기감의 원인인 것 같다.

시간을 내서, 의도적으로 학습하려 노력하지 않는다면 바쁜 와중에서 성장하기 정말 어렵다는 것.

결국 구현에만 초점을 맞추는 것의 risk는 이런 것에서부터 오는 게 아닐까?

프로젝트 뿐만 아니라 나중에 현업에서도 잊지 말자.
의도적으로 학습하지 않으면 성장이란 없다.

profile
가벼운 사진, 그렇지 못한 글

0개의 댓글