brunch

You can make anything
by writing

C.S.Lewis

by 노다 Jul 21. 2021

1인분 하는 개발자로 홀로 서기

Flying solo 2주 차

    지난주 사수가 퇴사한 이후로 혼자서 일해오고 있는데 오늘은 스트레스의 최고점을 찍은 날이었다...ㅎ 지난 토요일에 백신 2차 접종 맞고 나서 후폭풍으로 주말 내내 누워있다가 어제까지도 제대로 회복이 안되어서 반차를 썼었는데 그 반나절 동안 저번 주에 내가 머지했던 코드 때문에 스냅샷 테스트에서 에러가 나서 나를 찾고 난리가 난 것이었다;; 게다가 그거 외에도 오늘 아침에 스탠드업 끝나자마자 테크니컬 디렉터가 실 서버에 릴리즈 된 버그를 고치라고 스토리 티켓을 나한테 갑자기 토스하는 바람에 영문을 모르고 생전 처음 보는 프로젝트 코드를 뜯어고치고 다시 릴리즈까지 해야 했다.... 하루 종일 회의에 치이다 보니 넘나 지친다ㅠㅠ

솔로 첫 주 잘 마친 거 고생했다고 남편이 러시 버블바를 사다 주었다 ㅋㅋ

     요새는 매일 타입스크립트와 전쟁을 하면서 타입스크립트는 단지 자바스크립트에 타입이 얹어지기만한 언어가 아니라는 걸 뼈저리게 깨닫는 중이다..타입스크립트는 솔로 프로젝트하면서 가볍게 써본 후 드림코딩 강의를 들으면서 객체지향 개념을 접목해서 쓰는 방법을 시도해보긴 했는데 이렇게 본격적으로 써보는 건 처음인지라 엄청 헤매고 있다ㅠㅠ 내가 주로 다루는 파트는 결제 관련 서비스를 제공하는 billing 파트, 상품 관련 정보를 제공하는 plan 파트인데, 페이지 구성을 위해서 Helix라 칭해지는 회사 전체적으로 쉐어해서 쓰는 라이브러리, 우리 팀에 커스텀 된 ecare core 라이브러리를 섞어서 쓰고 있다. Helix에서는 홈페이지 전체적으로 톤 앤 매너를 맞춰야 하는 전체 페이지 레이아웃이라던가 버튼, 이미지 카드 등의 디자인 요소들을 주로 가져다 쓰기 때문에 어떤 props를 써야 하는지 라이브러리 별로 스펙만 잘 확인하면 되는데 , ecare-core 라이브러리는 백엔드 API 요청에 쓰이는 MobX 클래스들을 정의해두고 각 파트의 리포지토리에서 공통 MobX 스토어의 인스턴스를 생성해 커스텀하는 방식으로 활용하다 보니 처음엔 프로젝트 구조를 이해하기가 어려웠다. 그치만 찬찬히 프로젝트 코드들을 뜯어보면서 역할별로 구분된 클래스들이 서로 어떻게 요청을 주고받는지를 이해하고 나니 그동안 잘 와닿지 않던 객체지향 개념을 좀 더 잘 이해하게 된 것 같다. 그리고 작은 프로젝트를 빌드할 땐 굳이 타입스크립트를 써야 하나 싶었는데 타입스크립트 코드 자체가 각 클래스들의 명세서가 되기도 하기 때문에 규모 있는 프로젝트에는 타입스크립트가 정말 유용하다는 걸 느낄 수 있었다.

내 삶의 활력소인 경수님 인스타툰ㅋㅋ프로그래밍 언어들의 차이를 이보다 더 와닿게 설명한 짤을 본적이 없닼ㅋㅋ

    그리고 프로젝트 오만군데서 yeild라는 키워드와 함수 선언 뒤에 *가 붙은 이상한 코드가 계속 등장하기에 도대체 이게 뭔가 찾아봤더니 제너레이터라는 ES6의 비동기 프로그래밍을 위한 중요한 개념이라더라...아래 샘플 코드에서처럼 function 뒤에 *에 붙이면 제너레이터 함수로 선언되고 함수 안의 yeild는 break point가 되는 것이다. 그리고 제너레이터 함수를 호출하는 외부 함수를 caller라고 하고, caller에서 next()를 실행할 때마다 yeild로 나눠진 곳들이 하나씩 실행된다. 이 제네레이터 함수와 프로미스를 잘 섞어서 쓰면 비동기 작업들을 얼핏 보면 동기식 코드인 것처럼 작성할 수 있어서 유용하다. 그치만 아직도 내가 이걸 자유자재로 활용하려면 아직 어렵다...이제 자바스크립트 문법은 웬만큼 다 안다는 건방진 생각을 하고 있었는데 알만해졌다 싶으면 모르는 게 계속 나온다 ㅠㅠ

    다른 글에서도 여러 번 말했지만 그간 테스팅이 제일 큰 스트레스였는데, 차차 프로젝트에 대한 이해도가 생기다 보니 유닛테스트에 재미를 붙이고 있다. 일단 일차적으로 Jest 문법에 익숙하지 않아서 어려웠고, 테스트 커버리지 파일이 정확하게 어떤 로직으로 생성되는지 잘 이해를 못했어서 어떤 테스트 코드를 짜야할지 몰랐었다. 아래 스크린 캡처는 프론트엔드 마스터의 테스팅 워크샵에서 썼던 샘플 테스팅 코드인데, 빨간색 음영 영역은 아직 내 테스트 코드가 실행하지 않은 영역, 초록색 마크가 되어있는 부분은 테스팅된 영역이다. 이렇게 커버리지 파일을 확인하면서 빨간 음영 영역의 코드를 내 테스트 코드로 실행시키려면 어떤 코드가 필요할까로 접근하면 감을 잡기가 쉬웠다. 테스트 코드 제대로 짜서 커버리지 체크된 영역이 늘어날 때마다 정답을 맞힌 것 같은 느낌이 들어서 엄청 뿌듯하다ㅋㅋ

    출근한 지 한 달 쯤 지나면 어느정도 일에 적응하고 평화로운 일상을 보낼 줄 알았는데 아직도 매일매일이 다이나믹하고 모르는게 계속 튀어나오고 끊임없이 공부해야할게 생긴다. 매일 벽에 부딪히는 기분이긴 하지만 이런 막막한 시기를 예전엔 어떻게 버텼나 생각해보면그냥 언젠간 익숙해지겠지라고 믿고 존버하는게 최선인 것 같다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari