월간 회고록 - 23.02

se-een·2023년 2월 13일
0
post-thumbnail

👍 Liked

새로운 시작

드디어 고대하던 우테코가 시작되었다. 다들 서먹서먹한 분위기에 약간은 경계하는 듯한(?) 느낌도 받았다만, 금방 친해졌다.

특히 처음 만난 온보딩조(연극조)들과는 지금도 가장 친하게 지낸다. 나의 점심 메이트들~

오전에 일어나서 생활해본게 진짜 얼마만인가.. 대학 4학년에, 비대면 수업에, 널널한 시간표에, 루즈해질 때로 루즈해진 나의 일상을 드디어 뒤엎을 수 있었다.

하루하루 바쁘고 도전정신을 갖게 해주는 요즘 잘 살고 있다는게 느껴진다.

아직까진 잘 따라가고 있는 것 같다

자바스크립트 딥 다이브를 좀 봤었는데 도움이 정말 많이 되었다. 미션할 때나, 수업할 때나, 페어프로그래밍 할 때나 등등 강의도 보고, 블로그도 보고, 공식문서도 보고, 결국 돌고 돌아 책으로 오더라.

미션도 나름 할 만했다. 물론 온보딩 미션이었지만~ 웹으로 넘어가서부턴 DOM 조작, 이벤트 핸들링 등 신경써야할게 배로 많아진 느낌이다.

아직 부족한게 많지만 꾸준히 페이스 유지하면서 열심히 해보자구~ 💪

노션 야무지게 활용 중

기존에는 노션을 팀 프로젝트 할 때나 사용했다. TODO 목록들이나 API URL 확인용 정도였다.

우테코 초반기에는 정말~ 인풋이 많았다. 행정 서류 관련해서도 많고, 수업 관련해서도 많고, 크루들간 인사하면서도 등등 엄청 헷갈렸다.

사실 노션을 잘 못써서 안 쓴것도 있는데 쓰다보니까 금방 적응되더라. 지금은 페이지 딱딱 나누어서 야무지게 활용하고 있다.

페어프로그래밍의 힘

우테코에서는 미션을 진행하는 첫날부터 셋째날까지 네비게이터와 드라이버 방식의 페어프로그래밍으로 진행한다.

페어프로그래밍을 할 수 있는 기회가 흔치 않아서 정말 좋은 경험이었던 것 같다. 처음에는 둘이서 코딩하니까 시간 소요가 절반이 되지 않을까 했지만, 두 배 더 걸리는 듯한 느낌이다. 😀 보통 각자의 코딩스타일이 있고 하나의 요구사항을 둘이서 구현하려다보니 의견 충돌(교환에 가깝다.)이 잦았고 체력 소모도 은근 있었다.

그래도 얻는 것이 더 많았다. 간략하게 정리하면 더 넓은 시야와 더 많은 지식을 습득할 수 있있고, 무엇보다 파트너와 이야기를 나누는 과정에서 내가 알고 있는 것을 말로 설명할 수 있는지 검토할 수 있는게 가장 좋았다.

또한 코딩에 집중이 잘 되었고, 적어도 한 명 이상이 알아볼 수 있는 코드임을 보장할 수 있으니 시간이 어느정도 보장될 수 있다면 장점이 더 많은 활동이라고 생각한다.

📚 Learned

네이밍의 중요성

사실 네이밍에 큰 뜻이 없었다. 그냥 대략 파악 가능하면 되지 않겠는가? 였지만 내 첫 페어프로그래밍 파트너도 그렇고 다들 네이밍에 고통스러워 하는 모습에 내가 대충하는 것인가? 싶었다.

첫 코드 리뷰를 받고 내가 대충하고 있었음을 깨달았다. 🤪 네이밍은 코드의 의도를 파악하는데 가장 큰 도움이 된다. 쉽게 말해 남이 내 코드의 흐름을 예측하고 더 정확히 이해하는데 많은 기여를 한다는 것이다.

네이밍 더 꼼꼼하게 신경쓰자!

jest 좀 더 잘 쓰기

각 테스트 케이스마다 테스트 네이밍을 작성할 수 있는데 이 것도 네이밍이다 보니 신경써주는 것이 좋다.

$을 붙이면 테스트 네임을 동적으로 변경할 수 있다.

이제 와서 보니 테스트 코드가 좀 이상한데, 이 때 미션이 아마 목 함수를 쓰지 말라는 요구사항이 있었던 것 같다. 그래서 랜덤값 테스트를 저렇게 진행한 듯 싶다.

그리고 첫 페어가 테스트를 굉장히 잘했는데, 덕분에 같이 테스트 코드를 짜면서 프리코스 때 보였던 jest fn, spyon목 함수 원리를 확실하게 이해할 수 있었다.

잡담을 많이 나누는 것이 경쟁력이다

프로그래밍에 관련된 내용은 아니고 연극조와 회의하던 중 연극 주제를 정할 때 이야기다. 진행할 연극에도 요구 사항이 주어졌었는데 프로그래밍과 관련되어야하며, 유행어?로 남을 만한 단어를 사용할 것 등등 몇 가지 있었다.

극도로 몸치인 프로그래머가 연극하기 쉬우면서도 재밌고 간결하고.. 주제 정하는게 어려웠다. 서먹서먹한 분위기 좀 깨볼겸 여러 잡담이 오고 갔었는데 요즘 사용하는 유행어 중 '상남자 특'이란 단어가 나왔다.

이를 '상개발자 특'으로 재탄생 시켰고, 이 단어를 통해 연극 주제는 물론 시놉시스까지 30분이 채 안 되서 정할 수 있었다.

혼자서 머리 싸매고 고민하던 지난 몇 시간의 결과물보다 훨씬 좋았다. 이것이 배민이 말하는 '잡담의 경쟁력'?

덕분에 연극을 잘 마칠 수 있었다.

TDD 맛보기

TDD는 정처기 준비할 때 지겹도록 봐왔던 단어이다. 정작 해본 적은 없었는데 미션의 요구사항으로도 나왔고 공원이 직접 라이브 코딩으로 보여줘서 확실하게 이해할 수 있었다.

상황에 따라 잘 적용해야겠지만 막연하게 테스트 주도 개발이라고만 알고 있던 것을 어떻게, 왜 하는지 알 수 있었다.

클로저 활용

미션에서 state를 관리하기 위해 클로저를 활용했었다. 이전에는 클로저에 대한 이론적인 개념만 알고 있어서 실제로 그 개념을 미션에 녹여내는게 좀 어려웠다.

즉시 실행 함수 내부에 state 변수를 두고 inner 함수가 state 변수를 참조하고 있게 하여 하나의 state를 보장할 수 있게 하였다.

사실 이 방식보단 싱글톤으로 state를 관리하는게 더 나아보인다. 🧐

당장 구현할 것만 구현하자

로또 미션에서 step1 때는 터미널 UI을 사용하지만 step2에서 웹 UI로 변경이 예고 되어있었던지라, 코드 변경을 최소화하기 위해 터미널 UI일 때도 컴포넌트 방식을 사용했다.

황준일님의 웹 컴포넌트 를 참고하여 컴포넌트를 설계하였는데, 이게 터미널에서는 그닥 좋지가 않았다. 억지로 끼워 맞추려는 느낌이 강하게 들었고, 가독성 또한 많이 떨어졌다.

리뷰어분께서도 코드 리뷰하시는데 좋지는 않으셨다고 한다.

그렇다고 웹 UI 때는 편리했느냐? 반은 맞고 반은 아니였다. 주어진 상황에 유연하게 적용하는게 좀 어려웠고 프롭스 드릴링이 우려되는 상황도 보였으며, 무엇보다 state 관리가 까다로웠다. (구현 당시 코드에 대한 이해도도 떨어진 것이 한 몫 했다.)

따라서 일단은 당장 구현해야할 것만 구현하는 것이 좋겠다. 아직 벌어지지도 않은 일을 대비해서 지나친 확장성을 고려한다면, 고려를 안한 것만도 못하다.

터미널 UI 때는 MVC를 사용하는 것으로..! 😇

💦 Lacked

설계 구조와 자바스크립트 Depth

이 글을 쓰는 현재에도 여전히 고민하는 부분이다. 사실 프로그래밍에 정답은 없지만 오답은 있다고 생각하기에 좋은 구조란 무엇인가.. 고민에 고민을 거듭하고 있다.

남의 방식을 모방한 것이 아닌, 오로지 나의 고민에서 탄생한 설계 구조를 만드는 것이 목표다. 다양한 상황에서도 유연하게 적용 가능하면서, 효율적인 그런 구조! 꿈은 크게 클 수록 좋은 것이라고 그랬다.

우테코 미션 초반에는 디자인 패턴에 집착을 좀 했었는데, 사실 디자인 패턴이란게 수많은 프로그래머들이 시행착오를 겪고 그 중에서 좋은 설계 구조를 정형화 해놓은 것이라고 생각하기에, 디자인 패턴을 알면 좋다! 라고 막연하게 생각했던 것 같다.

물론 설계를 하다보면 아 이래서 필요하겠는걸? 이라고 예상이 된 적도 있었다만, 아직은 디자인 패턴보단 자바스크립트를 더 깊게 파보는게 좋겠다.

자바스크립트 딥 다이브 책을 한 두번 읽었을 때 '나 이제 좀 자바스크립트 좀 아는 듯?🤔' 하고 자만했던 적이 있는데 한 참 멀었다. 😇 이제 1 Depth 온 거 같다.

특히 비동기 파트 부분이 좀 약하다고 느껴진다. 딥 다이브도 다시 한 번 더 훑어보고, 여러 글도 찾아봐야겠다.

그리고 DOM 조작, 이벤트 핸들링도 많이 부족하다. 미션을 진행하면서 이것저것 시도해보고 코드 리뷰를 통해 꾸준히 피드백 받아볼 생각이다.

좀 더 부지런하게, 체력 관리도 철저히

갑자기 생활 패턴도 바뀌고 안 하던 공부를 빡세게 하려니까 집에 오면 피곤이 밀려와 뭘 할 수가 없다. 그래도 생산직 알바 2교대 했던 시절보단 낫다.

이전에는 잠이 하도 안와서 양을 수 백마리까지 세본 적도 있는데 요즘은 누웠다하면 잔다.

컨디션은 아직까지는 괜찮다. 근데 피로가 누적된다는 느낌을 받고 있기 때문에 오래 전 그만두었던 운동 좀 다시 시작해야겠다. 40분씩 2분할로 주 4회가 목표다. 짧고 굵게!

profile
woowacourse 5th FE

0개의 댓글