[우아한테크코스 5기] 레벨1 - 1주차 회고

Glen·2023년 2월 11일
0

회고

목록 보기
1/25

2월 7일부터 본격적으로 우아한테크코스 5기가 시작되었다!
간만에 새로운 사람들을 만나는 기회이기도 하고 참여하는 인원 모두 개발에 열정적인 인원이라 더 기대가 되었다.

전날 잠이 오질 않아 새벽에 몇 번 깬 것 같다 ㅠㅠ ㅋㅋ


2월 7일 화요일 OT

10시부터 OT를 진행하였다.
첫 시간엔 간단한 우테코 소개 및 코치분들의 소개가 있었다.
오프라인으로 모여 백엔드, 프론트엔드, 안드로이드 모든 과정의 인원들이 Zoom을 활용해 OT를 진행하였다. 아무래도 OT는 모든 과정이 동일하니 그렇게 진행을 한듯 싶다.
그리고 온보딩 미션을 위한 조를 이때 편성하였는데 나포함 6명이서 이루어진 조가 편성 됐다.
다들 많이 낯설고 어색했지만 아무래도 서로 공통관심사가 프로그래밍에 같은 백엔드 크루이다 보니 통하는게 많아서 서로 어색한 분위기는 오래가지 않았다.
조원들끼리 같이 점심을 먹고 카페에서 커피를 마시려고 했지만 엘레베이터를 타고 내려가는데 한세월, 식당에서 웨이팅 및 음식이 나오는걸 기다리는데 한세월이 걸려 커피를 테이크아웃 하는데도 시간이 모자랐다...

13시부터 본격적으로 각 과정별로 강의를 진행하였는데 이때 과정 소개, 주차별 커리큘럼 등 레벨 1에서 진행해야 할 과정들과 좋은 개발자로서 성장할 여러가지 팁을 알려주고, 페어를 맺는 과정이 있었다.

15시쯤 강의가 끝나고 페어를 맺은 크루와 함께 페어 프로그래밍을 처음 시작하였다. 페어 프로그래밍은 한 대의 PC로 두 명(또는 세 명)의 팀원이 협업을 하는 방식인데 한 명이 키보드와 마우스를 조작하는 Driver 역할을 하고 옆에 앉은 다른 인원을 Navigator 역할을 맡는다.
이미 협업이야 학교를 다니며 과제를 수행할 때 많이 해봤지만 이런식의 협업은 처음이라 매우 신선한 경험이었다.
대부분의 작업은 Navigator 역할의 크루가 주도를 하고 Driver는 Navigator의 의견을 따라 코드를 작성한다.
15분 정도의 주기로 서로 역할을 바꾸며 진행을 하게 되는데 이 과정에서 서로의 코딩 스타일과 나름대로 자기만의 노하우를 보여주며 작업이 진행되었다.

첫 날이라 1시간 정도를 진행했는데 시간이 가는줄 모르고 서로 소통하며 작업을 수행했다. 이전에는 협업을 하여도 서로 작성한 다른 기능들에 대한 코드를 추가하거나 비교를 했지 같은 코드로 작성하며 협업을 한다는 것이 과연 좋은 방법일까에 대한 의문이 들었지만 이번 기회로 정말 효과적인 방법이라는 것을 깨닳았다.

그 후 17시쯤 퇴실하고 집에 돌아간 뒤 작성했던 코드를 다시 보니 간만에 코드를 작성해서 그런지 아니면 첫 날이라 긴장을 해서 그런지 fork도 안하고 커밋을 해버려 다시 작업을 했다 ㅠㅠ

다음부터 이런 실수를 하지 않도록 더 조심해야겠다.
아무튼 간만에 내일이 더 기대되는 하루가 시작된 것 같다!


2월 8일 수요일

오늘은 처음 교육이 진행되는 날이다.
KDT 과정 출석 점검을 위해 20분 정도 일찍 등교를 했어야 했는데 전날 저녁에 커피를 마시는 바람에 새벽 2시쯤 잠을 자 안그래도 일찍 등교해야 하는 날 잠도 얼마 못자 굉장히 피곤한 상태로 등교를 했다.
20분 일찍 지하철에 탑승했는데 거의 어제보다 인원이 2배는 늘어난 느낌이라 조금이라도 늦게 등교하는게 참 행복한 일이구나라고 느끼게 됐다..

아무튼 무사히 등교하여 조원들과 데일리 미팅을 가졌는데(XP에서의 스탠드 업 미팅과 유사) 각 조원들이 돌아가며 완수한 일, 할 일, 막혔던 부분, 오늘의 기분을 서로가 공유를 하였다. 우테코가 다른 부트캠프 기관과 다르게 애자일 방법론이 커리큘럼에 포함되어 있다고 생각했는데 오늘 겪어보니 확실하게 애자일 방법론이 그만큼 중요하구나란걸 몸으로 체감하게 되었다.
몇 주 전 중고서점에서 애자일 프랙티스를 샀었는데 이번 주 주말에 정독을 해봐야겠다.

그리고 10시 30분에 시작되는 강의를 수강을 하였다. 강의 내용 중 여러 생각해볼 만한 주제가 있었다.

내가 테스트 코드를 작성하는 이유는?
내가 작성한 좋은 단위 테스트는 어떠한 부분에서 좋은 단위 테스트라 느꼈는가?
위와 같은 좋은 단위 테스트를 작성하기 위해 어떠한 시도를 해볼 수 있겠는가?

코드 품질이 중요한 이유 중 가장 와닿는 이유는 무엇인가?
위 이유를 만족하기 위한 코드를 작성하기 위해 어떠한 노력을 해봤는가? 혹은 할 예정인가?
코드 품질을 높은 코드를 작성하는 프로그래머가 훌륭한 프로그래머인가? 그렇게 생각한 이유는 무엇인가?

스스로에게 질문을 던지고 답을 구하는 내용인데 시간이 된다면 해당 내용을 정리해 봐야겠다.
그 뒤 간단히 점심 식사를 마치고 오후 2시에 연극에 관한 주제로 조원들과 회의실에서 미팅을 가졌다. 사실 내가 준비한 아이디어가 조원들에게 좋은 평가를 받을지 나름 걱정도 많았지만 다들 긍정적으로 평가해주고 다들 열정적으로 다른 아이디어를 제안하는 등 마음이 맞는 사람들끼리 모여 토론을 하니 굉장히 수월하게 회의가 이루어졌다.

내가 생각한 주제는 백종원의 골목식당을 패러디한 아이디어였는데 시니어 개발자 같은 역할의 백종원이 클린 코드 원칙을 지키지 않는 개발자들을 위해 솔루션을 제공해주는 주제였다. 다른 조원들도 여러 주제를 말해줬지만 투표를 통해 내가 생각한 주제가 선정되었다.

15시부터 18시까지 페어를 맺은 베로와 함께 본격적으로 페어 프로그래밍을 진행하였다. 어제는 단순히 페어 프로그래밍 맛보기 겸 테스트 코드에 관한 학습이었다면 오늘부터 제대로 된 기능 요구사항을 구현했다.
오전에 배웠던 주제를 바탕으로 좋은 테스트 코드를 구현하기 위해 노력해보고 코드 품질이 높은 코드를 작성하는데 노력하는 등 빠르게 기능을 구현하기 보다 품질이 높은 코드를 구현하는데 신경을 많이썼다.
이전부터 TDD에 관해 여러가지 생각이 많았고 TDD는 과연 필요한가에 대한 스스로의 답을 구하기 위해 TDD 방법론을 적용해 보는 등 새로운 시도를 많이 했다. (TDD를 잠깐 해보며 느낀점은 아무래도 좋은 테스트 코드를 작성하려면 좋은 코드를 작성해야 하니 결과적으로 좋은 코드가 결과로 나온다는 점과 패키지 구조 설계가 더욱 세분화되는 결과를 얻었다)

페어 프로그래밍을 하며 스스로 고민해볼 문제점을 동료는 어떻게 생각하는지 서로 협의를 통해 작성한 코드에 대해서도 신뢰가 더욱 높아진 것 같다.

오늘은 저녁 약속이 있어 칼퇴를 했지만 내일은 연극에 대해 대본 작성 및 18시까지 페어와 같이 구현한 결과물을 제출하여야 하기 때문에 늦게 집에 갈 것 같다.

항상 느끼는거지만 일이 아무리 힘들어도 같이 일하는 사람이 좋으면 끝까지 버틸 수 있는 것 같다.
내일도 오늘같이 열심히 해야겠다!


2월 9일 목요일

온보딩 2일차
오늘은 자동차 경주 미션을 제출하는 날이다.
어제 페어와 함께 50% 정도 자동차 경주 구현을 해놔서 크게 걱정은 없었지만 연극 대본 작성이 걱정이 많았다.
아이스 브레이킹을 위한 연극이라 꼼꼼하거나 디테일하게 할 필요는 없겠지만 아무래도 우테코에서 6명이 처음으로 함께하는 프로젝트이기 때문에 최대한 완성도가 높게 완성하고 싶었다.

우선은 점심을 먹기 전까지 최대한 자동차 경주 미션을 구현했다.
구현을 Service -> Controller -> View 순으로 구현을 하였는데, Service는 아무래도 의존하는 계층이 없기 때문에 테스트 코드를 쉽게 작성할 수 있었는데(랜덤 값을 테스트 하기 위해 전략 패턴을 사용하여 테스트 코드를 쉽게 작성할 수 있었다!) Controller는 View를 의존하기 때문에 테스트 코드 작성이 쉽지 않았다.(Scanner로 입력 받을 때 프로그램이 일시중지 하므로)
따라서, 대안이 필요했는데 View를 Interface로 만들어 프로덕션 코드에선 Scanner를 사용하는 View를 사용하고, 테스트 코드에서는 테스트 용으로 구현한 테스트용 View를 사용하여 Controller의 로직들이 정상적으로 작동하는 것을 확인할 수 있었다!

그 뒤 점심은 장미상가 지하에 있는 시부야에 갔다.
어제 점심도 장미상가 지하에 있는 식당에서 먹었는데 사람들이 줄을 서는 것을 보고 대체 지하상가에 줄 설 정도의 맛집이 있나 궁금하여 팀원들과 찾아갔다!
가격은 9,000원에 등심까스, 안심까스, 생선까스, 정식(등심과 생선)을 팔고 있다.
사실 서울에 오면서 걱정했던 부분이 밥값이었는데 9,000원에 맛도 있고 양도 많은 돈까스 집은 처음이었다. 다만 단점은 30분 정도 줄을 서야한다는 점?

그 뒤 점심을 맛있게 먹고 다시 캠퍼스로 복귀하여 페어와 남은 자동차 경주 미션을 전부 구현했다. 페어 프로그래밍을 하며 내가 놓치는 부분을 페어가 찾아주고, 페어가 놓치는 부분을 내가 찾아주니 코드를 빈틈이 없게 작성할 수 있었다.
구현까지 약 6~7시간 정도 걸린 것 같은데, 아무래도 내가 인텔리제이 단축키에 익숙해서인 것 같다.

16시쯤 제출을 다 하고 다른 팀원들이 제출을 하는 것을 기다린 뒤 연극 회의를 위해 18시에 다 같이 저녁을 먹고 회의를 했다. 어제 정했던 주제에 대해 살을 붙여 그럴듯한 시놉시스가 완성되었고 21시쯤 캠퍼스에서 하교했다.

지하철을 타고 집으로 가는 중에 제출한 미션이 피드백이 작성되었다는 알림을 받았고 피드백을 읽으며 내가 미처 생각하지 않는 부분들에 대해 다시 생각할 수 있었다. 집에서 우선 내가 최대한 답변할 수 있는 부분에 답변을 작성한 뒤 리팩터링할 부분은 내일 캠퍼스에서 작성을 하기로 했다.

처음으로 받는 코드 리뷰라 긴장과 기대를 많이 해서 그런가 리뷰를 확인하고 일찍 잘 수 있었다.


2월 10일 금요일

온보딩 3일차
오늘은 10시 30분에 자동차 경주 피드백에 대한 강의가 있었다.
우선 캠퍼스에 등교 후 데일리 미팅을 했는데 지하철 사고로 조원 한 명이 지각을 하여 5명인채로 데일리 미팅을 가졌다. 그 중 데일리 미팅 주제로 화요일에 생각 해볼만한 주제에 대해 생각을 나누기로 했는데 나는 그 중 내가 작성한 좋은 단위 테스트는 어떠한 부분에서 좋은 단위 테스트라 느꼈는가?에 대해 말을 했다.
랜덤 값을 테스트 할 때 전략 패턴을 사용한 것에 대해 말을 했는데 전략 패턴을 사용하므로 프로덕션 코드를 손대지 않고 테스트를 진행할 수 있음에 대해 좋은 단위 테스트라 말을 했다.

그 뒤 포비가 강의 전에 몇 가지 공지할 사항이 있다며 진행을 했는데 우테코에서 여러가지 지켜야 할 사항, 여러가지 정보를 알려주셨다. 그 중에 근로장학이 있었는데 아무래도 나는 지방에서 올라온터라 굉장히 돈이 필요했다. 만약 근로장학을 할 수 있다면 여유가 생기니 무조건 지원을 해야겠다고 마음을 먹었다.

공지가 끝나고 자동차 경주 피드백 강의가 진행되었는데 자동차 경주 게임을 코치님이 처음부터 진행을 하며 드라이버 역할을 맡고 강의를 보는 90여명의 크루들이 네비게이터 역할을 맡는식으로 진행했다. 아무래도 네비게이터가 90여명이니 코드를 작성하는데 굉장히 많은 의견이 있었는데 서로 다른 의견일지라도 장단이 있는 의견이라 어떠한 의견을 따를지 생각이 많이 들게했다.

점심을 먹고 조원들과 얘기를 하는 도중 내가 인텔리제이 단축키가 능숙한 것에 대해 얘기가 나와 조원들에게 단축키를 알려주는 시간을 가졌다. 조원 2명이 1분 늦게 제출을 하여 피드백을 받지 못했는데 해당 조원이 단축키를 더 잘 사용했다면 제출을 할 수 있었을 것 같다는 아쉬움이 들었다.

## 1. CMD + SHIFT + ENTER => 코드 자동 완성 + 줄바꿈
## 2. CMD + E => 이전 폴더 보기, 이동
## 3. CMD + OPT + V => 변수 선언
## 4. CMD + OPT + M => 메소드 추출
## 5. CMD + OPT + C => 상수 추출
## 6. CMD + D => 줄 복사
## 7. OPT + SHIFT + 방향키 => 줄 이동
## 8. CMD + SHIFT + 방향키 => 메소드 이동
## 9. SHIFT + SHIFT => 전역 검색
## 10. CMD + SHIFT + F => 파일에서 찾기
## 11. CMD + SHIFT + T => 테스트 만들기
## 12. CMD + N => 코드 생성
## 13. SHIFT + F6 => 이름 바꾸기
## 14. OPT + OPT 누른채로 방향키 => 다중 커서
## 15. OPT + 방향키 => 스마트 선택

혹시 몰라 여기에도 내가 아는선에서 적어둔 단축키를 공유한다.

그리고 연극 대본을 위한 회의를 간단히 하고 어제 피드백 받았던 내용에 대해 자동차 경주 미션을 리팩터링 하는 시간을 가졌다.
코드를 작성하는 시간보다 리뷰어분이 여러가지 생각할 주제에 대해 고민하는 시간이 더 많았다.
17시쯤 피드백에 대해 리팩터링을 하고 다시 리뷰를 요청했다.
내가 이걸 왜 사용한지에 대해 더 깊게 생각할 수 있었던 것 같다.

그리고 조원이 페어 회고에 관해 얘기를 했는데 미션이 끝나고 서로 피드백을 주고 받는게 아닌, 중간에도 페어 회고를 가지자는 얘기를 했다. 사실 페어 프로그래밍을 하며 서로 질문과 답변을 하지만 서로에게 느낀점을 공유하지는 못했다. 앞으로 페어 프로그래밍을 한다면 중간에도 페어 회고를 해봐야겠다.

오늘도 연극 회의를 위해 조원들끼리 간단히 저녁을 먹고 21시까지 연극 회의를 했다. 대본은 마무리 했고, 여러가지 소품이나 스크린에 띄울 배경화면 등 얘기가 많이 나왔다. 가위바위보 내기로 스케치북을 사기로 했는데 내기에 내가 저서 스케치북은 결국 내가 사게 되었다...

아무튼 주말에는 대본을 외우고 스케치북을 사고 읽기로 했던 애자일 프랙티스를 읽어봐야겠다. 그리고 헬스도 등록할 예정이다. 우테코를 하느라 꾸준히 헬스는 못하겠지만 여유가 될때마다 틈틈히 운동도 하려고 한다.
건강한 몸에 건강한 정신이 깃든다는 명언이 떠오른다.

아무튼 무사히 이번 주가 끝났다!
앞으로 레벨4 까지 내가 열심히 할 수 있을까 걱정도 되지만 아직까지는 걱정보다는 기대가 더 많이 된다.
4일 동안 정말 많은 것을 배운 것 같다.
코드 리뷰어분들이 이전 우테코를 수료한 크루들이라던데 과연 내가 리뷰어분처럼 성장할 수 있을까 싶기도 하고 그만큼 성장하고 싶다.

다음 주에 연극이 끝나고 본격적으로 레벨1이 시작되는데 온보딩 조원들이랑 벌써 헤어져야 하는게 무척 아쉽다.

초심을 잃지말고 열심히 해야겠다.

이번 주 회고 끝!

profile
꾸준히 성장하고 싶은 사람

0개의 댓글