원티드 프리온보딩 프론트엔드 인턴십 1주차 회고
들어가며
4주동안 진행되는 원티드 프리온보딩 프론트엔드 인턴십의 1주차가 지나갔다.
이번 1주차의 프로젝트는 인턴십을 지원하기 위해 수행했던 사전과제를 바탕으로 진행되었기 때문에 수월하기도 했지만 또 한편으로는 처음 팀을 구성하고 조율해야하는 부분들이 있어 어려운 부분들도 존재했다. 특히 단기간 오랜 시간을 집중해야 하는 상황 + 협업을 오랜만에 겪다보니 조금 힘들기도하고 적응이 잘 안되는 부분도 존재했다.
언제나 그렇듯이 좋았던 부분도 있었고 아쉬운 부분도 있었는데, 앞으로 더 보람있는 3주를 위해 1주차에 대해 회고를 해보려고 한다.
원티드 프리온보딩 프론트엔드 인턴십 1주차 과제
2023.04.25 - 첫 회의
이번 프로젝트는 동료학습을 통해서 팀에서 생각한 원티드 프리온보딩 프론트엔드 인턴십 선발 과제의 Best Pratice를 만들고 제출하는 과제였다.
Best Practice란 모범사례라는 말로서, 특정 문제를 효과적으로 해결하기 위한 가장 성공적인 해결책 또는 방법론을 의미하는데, 사람들마다 좋은 해결책에 대한 생각이 다를 것이기에 처음 과제를 안내받았을때부터 '아 이거 이미 수행했던 과제를 바탕으로 진행한다고는 해도 쉽지만은 않겠다'
라는 생각이 들었다. 특히 이번 과제를 같이 진행하게된 팀원의 수가 총 10명이기에 더욱 그랬다.
과제를 수행하는 기간이 2023-04-25 ~ 2023-04-28로 총 4일이였기에 아무 준비없이 첫 회의에 들어가면 시간적으로 너무 촉박할것 같아 다음처럼 간단히 첫 회의에서 진행했으면 하는 일에 대한 체크리스트를 만들어 갔다.
- 체크리스트
- 자기소개 및 팀장 정하기
- Communication Tool - Discord, slack etc.
- 일정 공유 및 정규 회의시간 정하기
- Repository 관리 및 README.md 작성법
- 각자가 생각하는 Best Practice란?
- Best Practice 선정 단위 - Assignment, Component etc.
이런 준비덕분(때문)이였을까? 자기소개를 하고 팀장을 정하는 자리에서 팀원분들이 나를 팀장으로 추천해주셨다. 이번 인턴십에서 팀장이라는 역할이 기술적인 리딩을 하는 자리는 아니여서 크게 다를 것은 없었지만, 의견 조율과 같은 부분에서 중심을 잡아야 하지 않을까라는 생각에 부담이 있긴 했다. 그래도 이런 경험을 할 수 있는 기회가 많지도 않고, 또 성장하는데에 도움이 될 것 같아 팀장 자리를 맡기로 했다.
그 후 준비해간 체크리스트대로 Best Practice에 대해 얘기를 나누었고, 대략적인 선정 기준을 정한 후 다음 회의 일정을 잡게 되었다.
2023.04.26 - 두번째 회의
두번째 회의에서는 다음과 같은 체크리스트를 만들어가서 회의를 진행했다.
- 체크리스트
- 팀명 정하기
- Repository
- 프로젝트 세팅
- 컨벤션 세팅
- 사전과제 Assignment 1-4 리뷰
- 과제 진행 방향 및 수행
처음 환경설정을 위해 모두가 모여 어떤 라이브러리를 사용할지 또 팀적으로 정하고 갈 컨벤션들에 대해 논의를 나누고 실제 세팅을 진행했다. 역시나 ESLint, Prettier등의 설정이 한번에 완벽히 되지는 않았고 '아 역시 환경설정이 쉽진 않네'
라고 생각이 들었고 더 경험을 쌓아야겠다고 느꼈다.
또한 다른 팀원분이 Craco라는 (나는 이번에 처음 알게된) 라이브러리를 사용하자고 의견을 제시해 주셨는데, Craco를 사용하는 이유를 알아보며 지금까지 무심코 사용했던 CRA(Create-React-App)의 내부 구조에 대해서도 더 알 수 있었다.
그 후 Assignment 별로 각자가 생각하는 Best Practice에 대해 얘기를 나누었다. 팀원분들마다 어떤 코드가 좋다고 생각하는 이유가 다양했고, 다른 관점들에 대해 듣다보니 코드를 바라보는 시야가 넓어지는것 같아서 좋았다.
아마 이런 점이 동료학습의 가장 큰 장점이 아닐까?
여튼 각 Assignment마다 특별한 부분이 있기는 했지만 공통적으로 코드의 가독성, 성능 최적화, 유저 편의성이 Best Practice로 선정하는데에 가장 중요하다고 정해졌고 이 세가지 항목을 신경쓰면서 기능을 구현하기로 했다.
그 후
두번째 회의 이후로는 회의를 통해 선정한 Best Practice에 따라 Assignment별 담당자가 기능을 구현했고 이를 PR한 내용을 같이 확인하며 코드 리뷰를 진행했다. 더 자세한 내용은 README.md를 통해 확인 가능하다.
KPT
과제를 진행하면서 많은 부분들에 대해 생각해 볼 수 있었고, 알게 된 점들도 많아서 좋았다. 하지만 아쉬운 부분도 존재했는데 각 부분을 정리해보고자 한다.
Keep
- 몇번의 프로젝트를 진행하면서 기록의 중요성에 대해 많이 느끼게 되었다. 이번 인턴십에서는 꼭 문서화를 잘 해보자고 생각했는데 뛰어난 팀원분들 덕분에 만족스러운 README.md 및 기록을 남길 수 있었다!
Problem
Github을 통해 코드를 관리할 때,
Issue를 발행하고 그 Issue 번호에 따라 새로운 branch를 생성한 후 코드를 작성하고 develop branch에 병합한 후 마지막에 develop branch를 main branch에 병합하는 전략
을 택했다. 그런데 중간에 develop branch에 PR을 날려야 하는데 main branch PR을 날린 것을 제대로 확인하지 못하고 병합을 하는 실수를 2번이나 반복했다. 리뷰 과정의 체크리스트를 만드는등의 실수를 최소화하는 방법을 생각해 봐야 할 것 같다.확실히 10명이나 되는 사람들의 일정이 조율되기는 어려웠다. 의견 공유에는 화상회의와 같은 실시간 소통이 가장 효율적이라고 생각하는데 이게 쉽지만은 않을 것 같다. 이번에는 수행했던 사전과제를 바탕으로 해서 수월했지만 다음부터는 새로운 과제를 수행하고 이를 바탕으로 의견을 나누어야 하는데
Issues, Pull requests
등을 조금 더 잘 활용할 방안에 대해 생각해 봐야 할 것 같다.
Try
- 더 많은 의견을 공유하자 ! - 이번 인턴십에 참여하면서 가장 중요하게 여겼던 점은 (물론 취업에 도움이 되기에 선택한 것이지만) 성장이다. 특히 평상시에 가지기 어려운 다른 개발자와의 소통을 통해 내가 생각하지 못했던 관점을 알아 가고 싶다고 생각했다.
인턴십 기간동안 보람찬 3조가 되자!
라는 의미에서 보람삼조라는 팀명을 정했는데, 정말 보람찬 기간으로 만들기 위해 더 많은 의견을 공유하고 배워가야겠다.