본문 바로가기
개발 기록/생각하는 개발자

wecode/ 10주차 회고록 /인턴생활 2주차

by Krystal K 2023. 6. 19.

 

1. 드디어 진짜 업무 시작!

벌써 기업협업이 시작되고 2주가 흘렀다.

이번주부터 본격적으로 업무를 할당받아서 개발에 들어갔다.

새로운 기술들을 사용해 실제 프로덕트에 사용될 기능을 개발하는 재미있는 도전이었다.

기획부터 디자인까지 전반적인 과정에 다 참여해볼 수 있는 기회였다.

사실 팀프로젝트를 하면서 기획과 디자인을 다 해보긴 했지만 현업에서는 확실히 다른 점들이 보였다.

좀 더 에자일하게 프로젝트가 진행이 되고 그 과정에서 필수 기능부터 빠르게 빌드업한다.

필수기능이 구현되면 로직을 다시 분석하고 불필요한 부분은 제거하고 추가적으로 보완되어야하는 부분들은

빠른 피드백으로 그때 그때 수정 보완한다.

스타트업의 경우 기획이 완벽하게 갖추어진 상태에서 하나씩 쌓아가는 형식보다는

에자일하게 테스트 할 수 있는 수준의 결과물을 만들어서 계속 살을 붙여가는 방식으로 진행되는 것 같았다.

처음 회의에서 기획에 대한 간단한 브리핑만 듣고 기능을 만들어야 하는 상황이 되었을 때는 한편으로 막막한 감정도 들었다.

그런데 막상 기능에 대한 분석을 하고 기능을 만들면서 조금씩 감각을 찾아갈 수 있었다.

다음 회의부터는 나도 적극적으로 의견을 내기도 하고 궁금한 사항들에 대해서도 바로바로 질문할 수 있게 되었다.

탄탄하게 기획하고 기능 구현에 들어가는 방법도 물론 좋은 방법이지만

이렇게 빠르게 필수 구현 기능부터 만들어서 테스트 해보고 수정해 나가는 방식이 확실히 재미있는 것 같다.

결과물도 바로 보이고 좀 더 직관적인 피드백을 받을 수 있어 오히려 효율적이었다.

스타트업에서 개발자로 일하면 겪게될 일들을 미리 체험하는 중인데 꽤 잘맞는 것 같다.

아무래도 기획이 완전히 나온 상태가 아니라서 개발자 개인의 자유도가 높은편인데 그런 점이 나는 더 매력적이었다.

여러가지 가능성들에 대해 자유롭게 의견을 낼 수 있고, 다양한 방식으로 기능 개발을 시도해볼 수 있어서 좋았다.

 

 

2. 현업에서 받아보는 첫 코드리뷰!

이번주부터 매주 프론트엔드 팀장님이 코드 리뷰를 해주신다고 하셨다.

프론트 엔드 개발 팀장님이 직접 코드 리뷰를 해주셨는데 너무도 짜릿한 경험이었다.

지난 1차,2차 프로젝트를 하며 가졌던 가장 큰 궁금증이 있었다.

현업에서는 어떤 방식으로 기능들을 구현할까?

기능이 작동만 하면 되는게 아니라 더 효율적이고 유지보수성과 안정성을 고려한 코드를 짜고 싶은데

아직 경험이 부족하기도하고 검색만으로는 확실히 한계가 느껴졌다. 

그런데 이번에 우리에게 주어진 업무에 대해 일주일에 한번씩 팀장님이 직접 코드 리뷰를 해주신다고 하셔서 무척이나 기대했었다.

역시나 현업의 실력자는 이렇게나 다르다는것을 많이 느꼈다.

같은 코드라도 보는 시야가 다르다고 할까?

나도 나름 리팩토링을 하면서 코드를 구조화하고 덜어낼 부분들을 많이 덜어냈다고 생각했는데

팀장님은 거기서 더 나아가  유지보수와 확장성을 고려해서 코드를 다시 리팩토링해오셨다.

현업에서의 경험을 바탕으로 어떠한 상황에서 어떤 종류의 에러가 발생하거나 예외사항이 발생할 수 있는지,

그렇기 때문에 어떤 방식으로 에러 핸들링을 하고 예외처리를 해야하는지,

그리고 이렇게 반복되는 기능들은 하나의 커스텀 훅으로 만들어서 관리하면 재사용성이 더 높아진다, 등등

실질적이고 효율적인 코드 작성법에 대해 친절하게 알려주셨다.

팀장님이 리팩토링하신 코드와 기존에 내가 작성했던 코드를 하나하나 뜯어보며

내가 미처 생각하지 못했던 부족한 부분들을 공부했다.

반복되는 코드에 대한 재사용성 측면은 나도 생각하고 시도해보았다.

하지만 그런 동작을 함수형태로 만들어 재사용하거나, 코드를 기능별로 분리해서 따로 관리하는 방식은 새로웠다.

내가 생각한 리팩토링은 기존에 코드가 작동하는 것에 포커스를 맞추고

더 간결하고 직관적으로 코드를 만들어서 다른 사람들이 알아보기 쉽고 유지보수가 쉽도록하는 것이라 생각했다.

그래서 코드를 압축하는? 형태로 반복되는 요소들을 제거하는 방식으로 주로 리팩토링을 했었다.

그런데 팀장님의 방식과 설명을 들으며 내가 놓친 포인트들을 알게되었다.

단순히 눈으로 볼때 코드가 짧아지도록하는 일차원적인 시각에서 벗어나,

여러 동작들을 하는 코드를 하나의 코드가 하나의 동작을 하도록 관심사를 분리하는 것이 중요하다는 것을 알게되었다.

단순히 문장을 짧게 요약하듯 코드를 짜는것이 아닌 각각의 코드가 가지는 기능적 특성을 고려하여

재사용성이 높은 코드들은 재사용성을 고려해서 함수로 만들어 여러 조건에 대응하는 값을 출력할 수 있도록 한다던지,

자주 사용하는 값들이나 호출하는 데이터를 상수 데이터로 관리하여 오타와 같은 단순 실수를 예방하고

코드를 간결하게 만드는 방법에 대해 배울 수 있었다.

 

 

  1. 변수명 길더라도 명확하게 알 수 있도록 가독성 좋은 변수명 사용
  2. 커밋은 작게 쪼개서 최대한 히스토리 파악에 유리하도록
  3. 코드 중복 최대한 피하도록하고 코드를 분리해서 재사용성 높이고 페이지 컴포넌트의 코드 간소화하기
  4. 같은 형식의 코드가 두번 이상 중복될 경우 함수 형태로 만들어서 사용
  5. 공통되는 동작을 하는 경우 커스텀 훅으로 만들어서 사용
  6. 정규표현식 상수화 유효성 검사 자체를 커스텀 훅으로 만들고 페이지에서 호출해서 사용할 때 상수 데이터로 ⇒ 여러 곳에서 사용하는 경우 유지보수가 유리하다.
  7. 코드 확장성을 고려해서 자주 사용되는 값은 상수 데이터로 관리할 수 있다. ( 단순히 변수나 데이터 이외에도 값의 개념을 더 넓게 생각하고 사용해보기)
  8. 유효성 검사를 강화하는 방향의 경우 기존의 유저들에게 영향을 끼칠 수 있기 때문에 신중하게 수정해야한다.
  9. 타입 지정하는 부분만 파일로 관리하면 import해서 사용 가능하다.
  10. 타입 지정만 분리해서 파일로 관리하면 중복해서 타입 지정해줄 필요가 없어진다. 

 

 

3. 더 좋은 코드에 대해

기능을 구현하는 방법은 검색하면 많이 나온다.

에러를 해결하는 방법들도 검색하면 잘 나온다.

요즘은 Chat GPT가 왠만한건 다 해준다.

심지어 리팩토링 해달라고하면 리팩토링도 해준다.

 

근데 좋은 코드는 검색한다고 이게 좋은 코드입니다 이렇게 쓰세요하고 정해진 답이 없다.

그래서 리팩토링과 관련된 블로그 포스팅이 보이면 즐겨찾기에 추가하고 정독하곤 했다.

인턴을 시작하고 PR을 올리기전에 항상 혼자 리팩토링하는 시간을 가졌었다.

인턴이니까 배우는 입장이라는 생각으로 적당히해서 평가받고, 피드백 주세요~ 하고싶지가 않았다.

프로답게 내 코드를 책임지고 제대로 작성해서 좋은 코드로 프로젝트에 기여하고 싶었다.

인턴을 시작하고 느끼는건 그런 나의 욕심이 쌓여서 나의 실력을 키워내고 있는 것 같다.

지난 며칠 동안 내가 맡은 업무를 생각보다 빨리 마무리하게되어 리팩토링 할 기회가 있었고,

이번주에 팀장님이 해주셨던 코드 리뷰를 떠올리며 코드를 작성해서 인지 사수분께서 코드에 대한 칭찬도 해주셨다.

조금씩 다듬어지고 촘촘해져가는 나의 코드를 보는 것이 즐겁다.

이곳에서 프로의 방식을 배우고 성장해가는 과정이 행복하다.

이렇게 매일 변화하고 성장하는 스스로를 느낄 수 있다는 것이 감사하다.

 

그리고 이번주에 회고록을 쓰면서 깨달은 점들.

요즘 기록의 중요성을 매일 느낀다.

매일 업무 시작전에 혼자만의 업무일지를 작성한다.

어제 어떤 업무를 했고, 오늘은 어떤 업무를 할 것인지, 목표는 어떤 것인지 정리해본다.

그리고 기능 구현을 하면서 몰랐던 부분들이나 새롭게 알게 된 부분들을 데일리 문서에 정리하고

더 공부가 필요한 부분들은 따로 정리해 두었다.

업무하면서 내가 정리해둔 문서가 정말 도움이 많이 된다.

회의 내용이나 피드백, 수정 요청 등등 거의 모든 것들을 다 기록하고 있다.

그리고 나의 습관인 기능 구현 전에 꼭! 로직을 글로 정리해보는 작업도 빼놓지 않고 하는 중이다.

확실히 이렇게 하면 작업 속도도 더 빠르고 작업을 하다가 본래의 목적을 잊는 일이 없다.

 

그리고 개발자에게 아카이브이 중요한 자산이 되는 것 같다.

기능 구현하다가 막히거나 예전에 했던 기억이 있는 것들은

깃허브 열어서 보거나 블로그 글을 다시 찾아보는데 정말 도움이 많이 된다.

내가 예전에 만들었던 기능을 가져다가 고쳐써보기도 하고,

팀프로젝트 할때 팀원이 썼던 코드들도 참고해서 새롭게 만들어보는 중이다.

인턴하면서 공부하느라 블로그에 업로드를 거의 못하고 있는데 다음주부터는 공부하고 있는 타입 스크립트를 정리해서 올려봐야겠다.

 

벌써 절반이 지나갔다.

한달이라는 시간이 결코 길지 않을 것이라는것을 지난 두달간의 위코드 생활로 이미 알고 있었지만 막상 닥치니 더 짧게 느껴진다.

현업의 선배님들 속에서 하나라도 더 배워가야지.

아직 프로가 되기에는 배움은 길고 하루는 너무 짧다.

3주차는 더 본격적으로 업무에 몰입하고 코드도 더 멋있게 짜고싶다.

 

남은 절반도 화이팅!

더 더 더 잘 해보자~~~

\(@^0^@)/

 

728x90