🤩 Review

원티드 프리온보딩 인턴십 회고

category
🤩 Review

원티드 프리온보딩 인턴십 소개

원티드 프리온보딩 인턴십이란 일주일에 두 번 강의를 듣고 배운 내용으로 바탕으로 동료들과 함께 다양한 기업 과제를 수행하는 인턴십 프로젝트입니다.
자세한 내용은 아래 링크에 나와 있습니다.
 

동료과제

인턴십의 꽃이자 가장 재밌고 힘들었던 동료 과제에 관해서 이야기하려고 합니다.
동료 과제는 서로의 코드를 리뷰하며 기능별로 어떤 코드가 가장 효율적인지 토론하는 과정으로, Best Practice를 만드는 것입니다.

1주차

1주차에는 사전과제Best Practice로 만드는 작업을 하였습니다.
노션에 자신의 코드를 정리하고 디스코드 화상 회의로 발표하며 코드를 합치는 방식으로 진행했었습니다. 이렇게 한 명 한 명씩 코드 리뷰를 했었습니다.
1주차 과제
  • 문제점
    • 합치는 과정에서 PR을 날리는 방식이 아닌 live share를 사용하였습니다.
    • live share로 하다 보니 코드가 꼬이고 소통도 잘되지 않아 시간이 많이 들었습니다.
    • 온라인으로 소통하다 보니 말이 겹치거나 잘못 이해하거나 혼잡이 많았습니다.
    •  

🤩 성장한 점 & 알게 된 점

  • 저는 인증&인가 절차부분을 useEffect로 작성하였지만, 다른 팀원들은 contextAPI로 작성한 것을 보고 당장 동작하는 코드보다는 유지보수가 좋은 코드를 짜야겠다고 느꼈습니다.
  • 코드 발표를 할 때 “무엇으로, 어떻게, 왜”를 생각하다 보니 제 코드에 대해 분석할 수 있는 계기가 되었습니다.
  • 그리고 이 기술을 왜 쓰는지, 어떤 것이 좋은지 생각하면서 작성하는 자세를 가져야겠다고 느꼈습니다.
 
 

2주차

2주차 과제는 장바구니 페이지를 만드는 것이었습니다.
 
  • 1주차 문제점 해결
    • 각자 브랜치를 제작하고 pr을 날려 코드 리뷰를 해서 온라인으로 만나는 시간을 최대한 줄였습니다.
    • issue로 요구사항을 생성하고 각 커밋으로 어떤 요구사항을 수행하였는지 남겼습니다.
    • 피그잼으로 회의 자료를 문서화하였습니다. 피그잼을 통해 시각화된 자료를 볼 수 있어 소통하기 더 편했습니다.
 

🤔 내 아이디어로 문제가 해결된 것

  • 문제
    • 장바구니에 추가한 상품들이 몇 개인지 알 수 없었습니다.
  • 해결
    • 쿠팡의 장바구니 UI처럼 상품 개수를 보여줘야겠다고 생각하였습니다.
    • 예약한 상품 배열의 길이를 가져와 해결하였습니다.
  • 결론
    • 팀원들도 이러한 문제 해결 부분을 좋아하여 이 부분이 Best Code로 채택되었습니다.

🤩 성장한 점 & 알게 된 점

  • 1주차 강의 때 배운 husky를 적용하였더니 푸쉬할 때 실수를 하지 않을 수 있어서 좋았습니다.
  • 코드 중에서 인상 깊었던 부분은 loader를 사용해서 페이지 로직을 분리한 것이랑, contextAPI로 한 파일에서 장바구니 CRUD를 수행한 것입니다.
  • CRUD 부분을 한 파일에 모아두니 유지보수하기에도 편했고, 쉽게 사용할 수 있었다. 다음부터 저도 contextAPI와 Redux를 배워 상태관리에 신경 써야겠다고 느꼈습니다.
    •  
 

3주차

3주차 과제는 100개의 데이터 기반의 Area-Bar 복합 그래프 구현하는 것이었습니다.
main브랜치에서 push하는 실수를 막기 위해 각각 레포지토리를 fork하는 방식으로 진행하였습니다. 그리고 제출 하루 전에 모든 요구사항을 제작하고 남은 하루는 리팩토링하는 형식으로 하였습니다.
  1. 리팩토링
      • 문제점
        • 기능구현은 빠르게 되었지만, 하루 전날 리팩토링할 때 시간이 많이 소요되었습니다.
      • 원인
        • 처음 코드 리뷰할 때 제대로 하지 않아서 리팩토링할 때 변경 사항이 많았던 것 같습니다.
      • 결론
        • 처음부터 코드 리뷰를 제대로 해야겠다고 생각하였습니다.
  1. 브랜치 관리
      • 문제점
        • 각자 fork를 하며 요구사항을 수행하다 보니 다른 팀원의 branch로 넘어가는 과정이 되게 복잡하였습니다.
      • 해결
        • fork를 하는 이유가 main에 push하는 실수가 없도록 하는 것이기 때문에 branch role을 추가하는 게 좋을 것 같다고 느꼈습니다.
        •  

🤩 성장한 점 & 알게 된 점

  • 그래프 라이브러리를 정할 때 recharts와 chart.js를 고민하였습니다. 한 팀원은 어떠한 이유로 사용했는지 정리한 것을 보고 어떠한 기술을 사용하려고 할 때 타당한 이유가 있는지 생각해보고 사용해야겠다고 느꼈습니다.
notion image
 

4주차

4주차 과제는 1,000개의 주문 데이터 테이블 컴포넌트 구현과 테스트 코드를 작성하는 것이었습니다.
  • 3주자 문제 해결
    • fork를 하지 않고 각자 브랜치를 생성하여 작업하는 방식으로 하였습니다.
    • 리팩토링 시간을 줄이기 위해 PR 리뷰하는 시간을 따로 가져 코드 리뷰를 원활히 하였습니다.
 

🤩 성장한 점 & 알게 된 점

  • 테스트 코드를 구현하지 못해 아쉬운 점이 많았습니다.
    • 팀원들이 작성한 코드와 강의를 보며 테스트 코드에 대해 이해할 것입니다.
  • 팀원들 코드를 보며 내 코드가 정답이 아닌 것을 느꼈습니다.
  • 왜 이렇게 구현해야 좋은지 유지 보수할 때 편리한지를 늘 생각하며 코드를 작성해야겠다는 것 느꼈습니다.
 
 

💡 느낀점

제가 늘 습관적으로 작성해오던 코드가 정답이 아니라는 것과 아직 기술적으로 부족하고 알아야 할 게 많다고 느꼈습니다. 이를 통해 꾸준히 배우는 자세와 다른 사람을 인정하는 자세를 가져야겠다고 생각했습니다. 그리고 이 기술을 왜 써야 하는지 타당한 이유가 있는지 생각하고, 어떠한 이유에서 이 코드를 작성했는지 생각하면서 코드를 작성하는 개발자가 되려고 노력할 것입니다.