믿기지 않지만, 4개월 간의 내일배움캠프가 끝이 났다!
9월 초부터 매일, 프로젝트에 기여하고 싶어
아침 9시에서 밤 9시를 넘어 자정까지 컴퓨터 앞에 앉아있던 날들이 벌써 4개월이나 지났다.
4개월 간 개발자로서 필요한 태도가 무엇인지 알게 되었고,
나는 어떤 사람이 될 것인가에 대한 답도 찾을 수 있었다.
1. 들어가며
컴퓨터 공학 전공을 했지만, 어떤 직무가 나에게 맞는지 알지 못했다.
"진로를 백엔드 개발자로 할 것인가"에 대한 판단을 프로젝트를 수행하여 직접 부딪혀보고 결정하고 싶었다.
또한, 학교에서 배우지 못한 클라우드 기술을 배우고, 실제 서비스 런칭과 고객 피드백을 통한 개선 과정 경험을
겪고 싶어 내일배움캠프에 지원하게 되었다.
2. 1차 프로젝트
캠프에서 프로젝트 리더를 맡게 되었는데, 앞에서 이끌고 밀어붙이는 사람이 있으면,
뒤에서 보조하고 챙겨주는 역할을 많이 수행했던 나에게는 매우 매우 새로운 도전이었다. 😛
회의를 이끄는게 낯설어서 1차 프로젝트 때는 회의가 샤이로 시작해서 샤이로 끝났다 (ㅋㅋ)
항상 회의 시작하기 전에, 말할거리도 챙기고, 의논할 사항도 꼼꼼히 체크했다.
일단 행해보면서 느는 것 말고는 방법이 없다 생각하며, 꾸준히 회의진행을 부딪혀보며 했었다.
리더 역할을 여러번 경험해보신 팀원분의 도움을 받아서, 회의진행을 어떻게 하는지 많이 배웠다.
어떤 아이템으로 프로젝트를 진행해 나갈지 선정하고, 와이어프레임 제작 및 구현하였다.
또한, convention을 정하고, GIT을 통해 협업하며, Today I Learned CRUD 기능을 구현하였다.
함께 개발하기 위해서는 실시간으로 많은 토의가 필요하다는 것이 실감이 되었다.
1차 프로젝트 마치고, 협업에 상당히 신경을 많이 썼다고 협업에 대해 좋은 피드백을 받았다.
팀에서 협업하는 부분을 시스템적으로 계속 다져가며 다같이 많이 배우는 작품을 만들 수 있도록 해야겠다는
다짐이 들었다.
3. 2차 프로젝트
2차 프로젝트는 1차 프로젝트 중심으로 배포하고자 하는 페이지들의 구현을 다 완료했었다.
또한 기능으로는 S3 이미지 업로드, JWT 인증 방식으로 로그인 구현, Notification 기능 , Rank 기능,
TIL 글 좋아요 UP 기능, Comment기능, My Profile Update기능을 구현하였다.
협업을 잘하고 싶어서, 협업에 대해 연구와 적용을 많이 해보았다.
PR을 통한 코드 리뷰, Restful API Convention, PEP8 Convention, 컨벤션 문서화,
issue와 milestone과 .gitignore 등을 통한 Git 프로젝트 관리, Github Flow 조사,
피드백 주기를 짧게 하기 위해 매일 3회 회의 등을 시도해보았다.
협업을 잘하기 위해 연구하면 할수록 더 나은 협업에 도달할 수 있었고 뿌듯했다.
협업은 단순히 일의 분배가 아닌, 같이 목적지에 가는 것임을 경험했다.
협업은 다같이 프로젝트의 방향성을 생각하며 개발할 때, 데드라인도 지킬 수가 있고 빛을 발한다고 느꼈다.
4. 3차 프로젝트
2차 프로젝트 마치고, 서버리스와 도커와 Spring을 배웠다.
3차 프로젝트 때는 Flask로 만든 프로젝트를 Spring으로 바꾸면서 기능을 확장해 나갔다.
이때 우리팀에 새로운 팀원이 오셨다. 🎁
3명에서 4명이 되었기에, Pair Programming도 해볼 수 있겠다는 생각도 들었다.
Spring으로 전환하기 전에, 새로운 팀원분이 우리 팀 프로젝트에 적응하는 것을 돕기 위해서,
기존에 개발한 소스코드도 이해할 수 있게 하기 위해서,
Flask에서 한 페이지의 서버사이드 렌더링 제거를 부탁드렸다.
그리고 다같이 Flask에서 Spring으로 전환하고 기능 확장도 해나갔다.
발표 전 날까지 함께 밤새면서 오류도 고치는 등 스펙터클한 경험을 했었다.
5. 고객 피드백 및 최종 프로젝트
3차 프로젝트 이후로는 지인과 캠퍼들에게 서비스를 소개하고, 피드백 요청을 부탁드렸다.
파이널 프로젝트 때, 고객의 피드백을 반영하고 배포확장과 모니터링 시스템 구축과 기능 개선을 했었다.
트러블 슈팅 과정을 통해서, 나의 개발 습관과 디버깅 습관을 알게 되었고,
개발 습관과 문제해결 습관을 어떻게 바꿀지 방향을 잡게 되었다.
또한, 배포 확장을 맡으면서 클라우드와 많이 친해졌다. 이제 클라우드는 미지의 세계가 되지 않았다.
최종 프로젝트 발표 때, 많이 성장한 팀이라고 피드백을 받았다.
팀원 모두가 스프링 프레임워크를 처음 접했는데,
자신의 작업에 몰입하고, 배운 것을 나누고, 같이 성장하기 위해 나아간 결과,
모두가 백엔드 기능을 골고루 맡아 수행할 수 있었다.
6. 얻은 것과 느낀점
얻은 것
현재 개발 습관과 디버깅 습관을 인지한 것
프로젝트 트러블 슈팅 과정을 통해서, 나의 개발 습관과 디버깅 습관을 알 수 있었다. 🎁
1. 에러는 발견을 하지만, 에러의 원인을 명확히 파악하지 못한채 시도를 들어가는 것
→ 이로 인해, 에러의 원인에 대한 가정을 제대로 하지 못했고, 해매게 되었다.
2. 문제에 부딪혔을 때, 현재 아는 것과 모르는 것을 파악하지 못하고 있고, 문제 정의를 명확히 하지 않는 것
3. 공식문서를 먼저 확인하지 않는 것
4. 마감기간이 급할 때, 코드를 사용하면 명확히 이해하지 않고 사용하는 것
Team Leader의 경험
나에게 새로운 도전이었다.
어떻게 하면 협업을 잘 할 수 있을지 연구를 많이 하게 되었고,
어떻게 하면 아이디어를 편하게 도출할 수 있도록 이끌 수 있는지,
모두가 성장할 수 있는 분위기와 환경을 만들어 줄 수 있을지 배우게 되었다.
함께 가는 것의 가치
협업은 일의 분배가 아닌 함께 성장하는 것의 가치, 시너지 라는 것임을 느꼈다.
보완할 점
앞으로의 개발 습관과 디버깅 습관
- 에러는 발견 할 때, 에러의 원인을 명확히 파악하며, 시도하기
- 에러의 원인에 대한 가정을 여러 방향에서 생각하기
- 문제에 부딪혔을 때, 현재 아는 것과 모르는 것을 파악하고, 문제 정의를 명확히 하기
- 해당 기술 및 라이브러리의 공식문서를 먼저 확인하기
- 코드를 사용하면, 왜 사용하는지 알고, 명확히 이해하고 사용하기
- 기술 및 라이브러리를 사용할 때, 왜 사용하는지 알고 내부 동작 원리 이해하는 습관 꼭 가지기
7. 앞으로의 계획
✔️ 알고리즘 문제 해결을 통해, 문제 해결 능력 기르기
문제를 정의하고 문제를 추상화하여 구현하는 연습을 하자!
✔️ Computer Science 공부
프로젝트 때는 기능 구현에 집중했다면,
이제는 기술의 내부 원리와 동작을 알고 싶었다. 사용한 기술의 내부를 탐구해보기!
먼저는 네트워크와 데이터베이스의 내부 동작 원리를 파악해보자!
✔️ 클린 코드, 테스트 코드 작성
OOP와 Spring의 뼈대 개념을 이해하기!
테스트 코드 작성하기!
'Daily Log' 카테고리의 다른 글
글또 10기를 지원하며 - 삶의 지도 작성 (1) | 2024.09.22 |
---|