[부스트캠프 웹모바일 멤버십] 그룹프로젝트 5, 6주차 회고

NaGyeong Park·2022년 12월 19일
1

부스트캠프 멤버십

목록 보기
11/11
post-thumbnail

짧다면 짧은, 길다면 긴 부스트캠프 멤버십 기간이 끝났다.
챌린지 때와 다르게 아쉬움이 좀 남는다. 하지만 언제나 그랬던 것처럼 과거를 후회하지않고 좋은 발판 삼아 더욱 더 발전해보려고한다.

프로젝트 완-료

OAO
So 귀여운 우리의 생산성 향상 100% Todo 애플리케이션 OneAtOnce를 최종 배포하였다! 메인페이지에선 지금 당장 할 Todo를 확인 할 수 있고, 소요시간을 측정할 수 있다. 테이블 페이지와 다이어그램 페이지에서는 Todo를 조회, 편집 및 삭제할 수 있고 선후관계를 지정해 줄 수도 있다.
GitHub Repo는 여기서 확인 할 수 있고, 프로젝트를 진행하면서 했던 고민들을 정리한 곳은 wiki에서 확인 할 수 있다.

SSL 인증서 발급 및 적용

Zero SSL에서 무료 SSL 인증서를 발급받아 release 서버에 적용했다. 처음에는 certbot을 이용해 letscript로 발급받으려고 했지만 개발환경에서는 수동으로 받아 적용하라는 메시지가 떠서 차라리 Zero SSL로 발급받아 수동으로 적용시켜주는 것이 간편할 것이라는 판단을 헀다. 실제로 Zero SSL에서 발급받는 과정은 굉장히 짧고, 사이트로 진행하기 때문에 직관적이고, 빠르다.

redirection
하지만 언제나 그렇듯이,,, 예상치못한 부분에서 오류가 났다. 브라우저에서 클라이언트 정적파일을 받아오지 못하는 것이였다... 80포트로 접속한 후 443으로 redirection한 다음, 아무 데이터도 받아오지 않고 계속 대기상태였었다. proxy docker를 열어봐 nginx가 정상 동작하는지 확인하고, client docker에서도 정상동작하는지 확인하였다. ssl 인증서가 잘못되었나? 라는 의심도 해보았고,,, 근데 결론은 443 포트가 안열려있었다. 하하! 포트가 항상 잘 열려있는지 확인해보자 ㅠㅠ...그래도 덕분에 docker 명령어 및 컨테이너 로그 읽기 등 관련 명령어는 손에 촵촵 익혔다ㅎㅎ.

검색 기능 구현

검색기능구현
우리 Todo 어플리케이션은 Todo간의 선후관계를 지정해 줄 수 있다. 원래는 사용자에게 직접 todo의 uuid를 보여주고, 복사하게 만들어 텍스트형태로 입력하게 만들었다. 여러 uuid를 집어넣을 땐 ,를 통해 구분하게 했었다. 사용자들에게 불편하다는 이야기도 많이 들었었고, id를 사용자에게 노출하는 점이 굉장히 불쾌하기도 했었다.

그래서 검색 API를 만들고, SearchBar 컴포넌트를 만들었다. 이에 마우스 이벤트와 키보드 이벤트를 적용시켜 현재 있는 Todo들의 제목을 검색하여 먼저 할 일과 나중에 할 일에 추가 할 수 있도록 하였다.

이 기능을 구현하면서 어디까지를 나의 MVP를 잡아야하는가를 생각하자라고 느꼈다. 사실 초반에 팀원들과 이야기했던 MVP 기능은 이미 구현을 했었었다. 하지만 keyboard 이벤트 적용시 윗 방향키 이벤트 발생시 포커스가 리스트의 맨 위에 있을 때, 아래 방향키 이벤트 발생시 포커스가 리스트의 맨 끝에 있을 때 어떻게 처리를 할 것인지 UX적인 고민을 하는 부분에서 시간소요를 좀 했었다. 사실 이 부분은 MVP가 아닌데 말이다.

그래서 어떤 기능을 구현하기로 하였을 때, 기획서에 나와있지 않는 부분은 기획자에게 더 상세히 물어봐야겠다고 깨달았다. 검색기능의 기획자는 나였는데, 나조차도 그냥 내 머릿속에 있는 기능을 구현하느라 MVP와 MVP가 아닌 것에 대한 명확한 구분을 짓지않아 이렇게 중요하지 않은 부분에 시간을 소요해버린 것 같다. 회사에 들어가게 된다면 위 상황같은 경우에는 기획자에게 어떻게 구현하면 좋을지 상세하게 물어보고, 만약 자율구현이라면 내가 할 수 있는 최대의 기능을 구현하되, 소요시간을 유념하며 일해야겠다고 생각했다!

마지막 CS 스터디

12월 11일은 마지막 CS 스터디였다. 이번 회차는 디자인패턴이었는데, 나는 생성 패턴을 공부해갔다.

부스트캠프를 진행하면서 객체지향에 대한 이야기를 많이 들었었는데, 사실 java를 써본 적이 없어서 챌린지 때 많이 헤맸었다. Django에서나 클래스를 써봤었는데 그것도 거의 템플릿 코드가 있는 것처럼 작성했었던거라 클래스가 무엇이고 왜 쓰는건지 이해하기 힘들었었다. 챌린지가 끝나고 객체지향의 사실과 오해라는 책을 읽고 비로소 감이 왔었었다.

생성패턴에 대해 알아보면서 java 코드를 많이 읽어보았다. 확실히 javascript의 예시를 읽을 때보다 java 코드가 더 한눈에 이해가 쉬웠다. java도 배워보고 싶어졌지만... javascript부터 우아하게 쓰고 도전해보자😁

스터디원분이 함수형프로그래밍에 대해서 발표를 해주셨었는데, 사실 그 전까지는 함수형을 계속 듣고 듣고 또 들어도 흠... 이라는 생각이 들었었는데 정말 이해가 잘 되게 설명해주셨었다. 스터디원들과 순수함수에 대해서 논의하면서 결국 순수하게 서비스할 수 있는 애플리케이션을 만드는게 불가능한게 아닌가? 라는 토론을 했었었는데, 그 부분을 오늘 들었던 rescript 이야기 세션 Q&A에서 여쭤보았다. 사실 promise도 효과고, 예외도 효과고, 배열도 비결정적인 효과를 가지고있는데 이런 효과를 아예 없앨 순 없기에 비결정적인 효과를 없애고 미리 효과를 명확히 드러낸 자료구조를 사용해 순수함을 달성한다고 말씀해주셨다. 정말 궁금했던 부분인데 오늘 세션 듣기를 정말 잘한 것 같다 호호!

기타...

팀플을 진행하며 기술적인 부분뿐만 아니라 협업을 하면서 가져야하는 자세에 대해 많이 배웠다. 아무래도 지금까지 혼자서 공부하다 보니까 Git 관리도, 인프라같은 결정사항도 혼자서 결정내리고 진행하였었다. 팀으로 근무할 때는 작은 부분의 수정이라도 적극적으로 공유하는 것이 중요하다고 느꼈다. 나에게는 작은 부분이라고 생각이 들어도 사실 팀 전체적으로 봤을 때는 큰 부분일 수도 있고, 진짜로 작은 부분이더라도 내가 만드는 것은 개인 소유물이 아니라 '우리 모두의 것'이기 때문에 팀원 모두가 알고있어야하기 때문이다.

팀플을 진행하기 전에는 팀플이 기대되면서 무서웠었다. 남한테 민폐끼치는 것을 싫어하는 내 성격 + 실력에 대한 자신감이 부족 때문이었던 것 같다. 막상 끝나고보니 즐겁고 고마웠고 성장한 기억밖에 없는 것을 보면서 취업도 무서워하지말고 팀플처럼 도전해봐야겠다고 생각했다.

개발을 배우면서 나의 많은 상황이 달라졌다. 예전에는 또래와 어떤 일을 할 때 남들과 비슷하거나 이미 해본 위치에 있었는데, 개발은 항상 남들은 해봤는데 나는 안해봐서 배워가는 포지션에 있는 것 같다. 이게 싫다는건 아니고, 색다르다. 올해는 참 여러 경험과 감정을 얻어가는 해 같다. 조만간 하반기 회고를 올리면서 Feedforward 해봐야겠다!

profile
HAPPY 💌

2개의 댓글

comment-user-thumbnail
2022년 12월 25일

나경님 부스트캠프 하느라 고생많으셨어요 아주 알차게 CS 스터디도 마무리 했다니 아주 좋습니다 👍👍

1개의 답글