프로젝트를 진행하며 새롭게 맡아서 해본 부분을 취업준비하며 하나씩 기록해볼까 한다.
CRUD 이외에 로그인(JWT + OAuth2), 이미지 파일 업로드, 이메일 보내기 와 같은 서비스를 도맡아 구현했는데 하나씩 정리해볼까 한다. 프리 프로젝트 보다 이번 프로젝트에서 확실히 많은 성장이 있었던 것 만은 분명한 것 같다. 많은 우여곡절이 있었고 팀원들과도 많은 이야기들을 나누며 더욱 소통의 중요성을 깨닫고 성장하는 시간이 될 수 있었다.
그리고 아쉬운 것은 프로젝트 기간동안 중간 중간 블로그에 기록을 하고싶었으나 쉽지 않았고 에러가 발생하면 그때 그 때 캡쳐해서 사진을 올려놓거나 녹화해서 남겨놓는 형태로 하였다.
💭 목표 상기하기
- 현재 ‘내'가 학습을 통해 이루고자 하는 것은 무엇인가요?
- 여러분이 현재 바라는 목표를 모두 이루었다면 ‘나'는 어떻게 변해 있을까요?
- ‘나'에게서 어떤 모습을 보았을 때, 목표를 이루었다고 말할 수 있을까요?
1. 현재 내가 학습을 통해 이루고자 하는 것?
이제 남은 것은 취업 뿐이다. ㅎㅎ
지금까지 한 프로젝트를 조금 더 다듬어서 포트폴리오를 준비하고 취업해야지!
2. 현재 바라는 목표를 모두 이루었다면 '나'는 어떻게 변해 있을까요?
계속 다른 목표를 향해 더 나아가려고 할 것이다.
취업을 했다면 취업 후 회사에서 또 배우고 더 나아가기 위해 회사에서 나를 뽑아준 만큼 열심히 하는 모습을 보여줄 수 있게 나아가야 하지 않을까? 그리고 계속 머물러만 있다면 내가 너무.. 속상할 것 같다.
계속 다음 목표를 위해 나아갈 것이다.
3. '나'에게서 어떤 모습을 보았을 때, 목표를 이루었다고 말 할 수 있을까요?
배움에는 완전히 익힐 수 있는 게 없다고 생각한다. 완벽하게 다 알 수 있을까..? 사실 그래서 취업이라는 건 도전하기가 두려운 법인데 그래도 배우면서 성장할 것이다.
계속 노력 할 것이다.
🤔 Keep, Problem 작성하기
♾️ Keep 작성을 위한 질문
- 목표를 달성하기 위해 시도했던 것 중 가장 효과적이었던 노력은 무엇인가요?
- 목표를 달성하기 위해 했던 모든 노력 중 반드시 유지해야 할 것은 무엇인가요?
팀원들과 계속 연락 주고받기가 가장 중요하다 생각들었다. 팀 프로젝트인만큼 팀원들과의 소통은 매우 중요한 것이었다. 팀원들에게 수시로 먼저 연락하여 "혹시 이 부분은 어떻게 하면 될까요?", "이 부분 코드 받을 수 있을까요?" 등을 물어 보았고 "팀장님 오늘 이런 부분에 대해 회의 해야하지 않을까요?", "오늘 회의는 진행하나요?" 와 같이 팀장님이 바빠서 신경쓰지 못한 부분들에 대해서도 이야기를 나누고자 하였다.
프리 때도 계속해서 팀장님께 이야기를 했지만 초반에는 내가 너무 팀장님의 영역을 침범하나 생각에 신경쓰이기도 하였다. 하지만.. 프리를 진행하면서 더 많은 소통이 필요하다는 것을 알았고 더욱 많은 이야기를 나누고자 하였다.
그래서 다른 멤버들과 개인 DM 또한 많이 주고 받았고 덕분에 프론트와의 에러 해결이라던가, 코드 작성방법 에 대한 소통을 나누면서는 많은 문제를 해결할 수 있었다. 사실 프론트엔드에서는 백엔드에서 어떤 형태로 로직을 설계하는지 이해하지 못하고 마찬가지로 백엔드에서는 프론트엔드에서 코드를 어떤 형태로 작성하는지 모르기에 아무리 소통을 한다고 해도 같은 말만 반복할 뿐 쉽게 해결되지 않는 문제도 많았다. (이것은 아래에 problem에서 작성하도록 하겠다.) 그럼에도 결국 소통만이 문제를 해결하는 가장 큰 문제 해결법이었다.
두 번째 포기할 줄 알아야 하지만 포기 하지말아야 한다. 는 것...이다. 우리 조는 멘토님이 걱정할 정도로 초반에 많이 더딘 속도로 개발을 진행하였다. 나는 User와 JWT는 이전에 했던 부분과 동일했던 터라 계획보다 더 빠르게 진행했지만 처음 해보았던 OAuth2에서 예상일보다 8일이나 더 걸리게 되었다. 진짜 매일 밤새 책상 앞에 앉아있고 매우 많은 버전의 OAuth2 코드를 만들었지만 프론트와 연결하면 실패 실패 실패의 연속이었다. 진짜 매우.... 절망....절망 절망적이었다....
이 사이에 멘토링이 한 번 있었는데 멘토님이 너무 오래 걸리는 건 포기 하라고 하셨다. 그래서 나도 이제 더 끌다간 뒤에 다른 구현까지 못 하겠다는 생각이 들었기에 (내가 맡은 부분이 꽤나 많았다...) 프론트분과 이야기하여 이제 그만하기로 하였다.<< 이 전날 프론트에서 작성한 코드를 받아놨었는데 프론트에서 작성한 작성법과 내가 작성한 작성법의 흐름 자체가 다르다는 것을 인지했고 코드를 하루만에 수정했다.
프론트분께서는 OAuth2 라이브러리 에 대해 이해를 하지 못 하셨고 나도 그래 이렇게 된거 흐름을 제대로 이해해보자 해서 라이브러리 없이 작성하는 방법으로 코드를 수정했었다. 그랬던 것이 사실 난 조금 아까웠다. 그래서 그만하기로 한 이후 다들 잘 시간에 혼자 로그를 하나 씩 다 찍어보았고 프론트분께 서버와 연결하는 법을 배운 뒤 혼자 로그에서 문제가 발생한 부분들을 조금씩 수정했다.
그리고 다음 날 프론트 분께 저 해결했어요! 라고 말씀 드리며 같이 연결해보며 OAuth2 가 문제 없는 것을 확인하고 마음 편하게(? 다음 걸로 넘어갈 수 있었다. 야호~! 그리고 기간을 잘 지키며 진행하는 것이 얼마나 중요한지도 깨닫게 되는 시간이었다. 정말 정말 다행히 이전 것들을 후딱 끝냈고 이후 작업들 또한 내가 정해놓은 기간 내에 끝낼 수 있어서 매우매우 다행이었다.
그리고 사실 다른 팀원들의 사정 때문에 팀장님과 나 둘이서 거의 끝맺음을 했는데 그런 탓에 짧은 기간밖에 남지 않았고 다들 마음이 매우 급한 상태였다. 그래서인지 팀장님은 OAuth2를 끝낸 후 나는 새로운 기술을 시작해본지 하루도 안 됐는데 에러났다고 포기하라고 했고 속상했지만 팀을 위해서도 내가 할 수 있는 건 다음 것을 위해 열심히 하는 것이었고 우선은 트러블을 막기 위해 "네, 이메일 구현해볼게요."뿐이었다. 그래서 잠을 줄이고 결국 사진 저장도, 이메일도 구현을 모두 끝마쳤다!ㅎㅎ
계속해서 포기하지 않은 마음이 그래도 맡은 부분에 최선을 다 할 수 있게 해주었다.: )
🚧 Problem 작성을 위한 질문
- 목표를 달성하기 위해 세웠던 계획 중 가장 유지하기 어려웠던 것은 무엇인가요?
- 목표를 달성하는 데 있어서 가장 큰 장애물은 무엇인가요?
가장 어려웠던 것 또한 소통이었다. 우리는 계속해서 프론트와의 소통을 해왔는데 이번에는 게시판 보드를 어떻게 구현할 것인지에 대한 이야기라던가, OAuth2는 어떻게 구현할 것인지에 대한 이야기들에서 문제가 발생하였다. 이 소통은 소통의 부족함 보다 서로의 역할에 대한 이해도 부족으로부터 왔다. 그래서 백엔드, 프론트엔드 모두 테스트를 하며 이 문제점을 다 발견하게 된 것이다.
먼저 OAuth2였는데.. 위에서 말 한 것 처럼 프론트엔드 분께서는 라이브러리의 쓰임을 이해하지 못하셨다. 사실 그럴만도 하긴 하다. 프론트에서는 쓰는 라이브러리는 없고 구글링을 하면 온통 OAuth2의 흐름에 대해 설명하니 나라도 그럴 것 같다는 생각을 했다. 사실 나도 처음에는 정확히 이해하지 못했던 부분인데 설명해드리느라 찾아보며 라이브러리의 역할을 알게 되었고 OAuth2 라이브러리가 알아서 code를 받아오고 토큰을 발급해서 redirect 해주면 클라이언트서버에서는 발급받은 토큰으로 제공서버에 접근할 수 있는 과정까지를 도와준다는 것을 반복해서 말씀 드리면서 이해하게 되었다. 이 과정에서 이야기를 주고 받기 전까지는 사실 저렇게 생각하시는지 몰랐기에 나는 이런 저런 방법을 다 써서 코드를 여러 버전으로 작성하게 되었다. 그리고 초반에는 구글과 깃헙 예제들의 따라하기 버전일 뿐이었다.
이렇게 테스트 한 것도 일주일이 넘게 지났고 나는 우선 멘토님께 내가 작성한 라이브러리 사용 버전 코드를 보내며 내가 이해한 흐름과 함께 틀린 부분이 있는지 여쭤보았다. 멘토님은 내가 잘 이해하고 있는 것이 맞고 코드도 잘못된 것이 없다고 했다. 프론트에서도 마찬가지로 멘토링 시간에 코드리뷰를 받았고 문제가 없다는 답변을 받았다고 했다. 처음에는 계속해서 이해시키려고 했지만 내가 작성한 코드를 보며 나도 이해하지 못하는 나를 보며 OAuth2 자체의 흐름을 이해하는 것이 좋겠다 생각이 들었고 프론트 코드를 받아 그에 맞춰 코드를 작성해나갔다. 하나씩 작성해 나가며 카카오 개발자 페이지를 자세히 보게 되었고 어떻게 보는건지 왜 필요한 것인지도 그제서야 알게 되었다. 이 때 사실 진짜 많은 공부가 되었고 덕분에 팀원분께 정말 감사하다는 생각이 많이 들었던 때였다.
두 번째 소통의 힘듦은 페이지네이션의 경우 제일 처음 설계부터 "이번에는 리스트 말고 페이지네이션으로 보내면 되죠?"라고 했었다. 프론트에서는 "네, 페이지네이션으로 할거에요!"라고 했었고 우리는 당연 우리가 로직을 페이지네이션으로 구성하여 보내주는 것이 맞다고 생각하여 그렇게 보냈다. 하지만 프론트에서는 페이지네이션을 직접 구성해버렸고 그렇게 됨으로써 프론트 코드를 모두 뒤집어야 하는 상황이 생겨버린 것이다. 사실 백엔드에서도 담당 팀원들이 사정상 빠져버리며 API 명세서를 바로바로 수정하지 않았고 뒤늦게 수정하고 전달한 우리의 잘못도 있었기에 우리는 우선 리스트로 해보자...했다... 🥲(내 담당 페이지에는 변경이 되어있었는데 프론트에서는 회원 관련 페이지가 로그인만 완성 되어있어 살펴보지 않았다고 했다ㅠㅠㅋㅋㅋ) 하지만 리스트로 조회하니 우리가 가지고 오는 데이터의 양이 너무 많아 시간도 엄청 걸렸고 이러면 접속자가 많아지는 데모데이 때 문제가 될 수 있겠다 생각하여 백엔드 로직에 맞춰 프론트 코드를 변경하였다.
프리 때도 "페이지네이션으로 무한 스크롤도 할 수 있다던데 , 저희가 그렇게 데이터 보내드리는 건 안되나요?" 했을 때 프론트에서 "그렇게는 안 해봐서 모르겠어요" 라고 해서 우리는 그런가보다~ 라고 했는데 지금 생각해보면 말이 안되긴 한다. 프론트 분들도 우리가 계속 페이지네이션으로 넘겨준다고 해서 무슨 말인가 했다고 하셨다.🫠🫠🫠 코드를 까봐야 아는 것...ㅎㅎ 이렇게 하면서 배우는 것 아닌가 한다!
프리와 비교하여 가장 어려웠던 점은 기간 산정이다. 아무래도 이전에 쓰지 않았던 새로운 기술들을 더 사용하다보니 어려워 지는 부분들이 있었는데 그 부분들을 생각하지 못한 것이다. 예상외로 재미있어서 금방 끝낸 부분이 있었지만 오어스 같은 부분은 산정기간의 3배는 썼기에 많이 아쉬웠다. 이번에 빨리 끝내고 테스트 코드를 작성해보고 싶은 마음이 있었는데 매우 아쉬운 마음이 컸다. 이와 더불어 팀원들에게 나라도 기간을 정해 “어느 파트 언제까지 끝내주세요” 라는 말을 했었다면 조금 더 잘 마무리 지을 수 있지 않았을까 하는 아쉬움도 많이 크다…
문서 작성의 중요성, 계획의 중요성, 마감 기간 지키기 가 진짜 중요하다는 것을 깨달았다 : )
취업 준비 하는 사이에 프로젝트를 하나 더 할 수 있는 기회가 있다면 더 잘 할 수 있지 않을까…?? 주변 동기들에 비해 많은 기술을 쓴 것 같진 않지만 그래도..🥲 많은 성장을 한 것 같다! 그리고….! 가장 뿌듯 했던 거!!!! 우리 팀에 뒤늦게 들어온 팀원이 있었는데 잘 참여하지 못했고 어려워 하는 부분이 많았다 그럴 때 DM이 오셔서 도와드리고 하신 부분을 조금씩 봐드렸는데 덕분에 많이 배웠다고 해주셔서 너무 감사했다. 게시판은 수정도 도와드렸지만 마지막에 댓글을 도와달라고 하셨을 때 제대로 못봐드려서 진짜 죄송했는데… 너무 따뜻한 말이었다. 그리구 끝까지 하려고 해주셔서 너무 감사했다.
프로젝트하느라 바빠서 못 적었던 프로젝트 관련 글들을 하나 씩 작성해볼까 한다! 작성하면서 부족한 부분들은 다시 리팩토링도 하고 추가도 해봐야겠다 : )
'PROJECT' 카테고리의 다른 글
[PROJECT] 프로젝트 ver.2 업그레이드 시키기 (1) | 2023.10.30 |
---|---|
[PROJECT] 사용자 역할 부여, 북마크 조회 시 회원 정보 무시 - 코드 오류 수정 (0) | 2023.10.23 |
[PROJECT] pre-project stackoveflow 클론 코딩 / WEEK2 기록 (0) | 2023.10.05 |
[PROJECT] Main 프로젝트 기록 / WEEK1 기록 및 회고 (1) | 2023.08.30 |
[PROJECT] pre-project stackoveflow 클론 코딩 / WEEK1 회고 (0) | 2023.08.14 |