궁금한게 많은 열아홉
article thumbnail

아마 내 인생 가장 바빴던 일주일을 보내지 않았나 싶다. 처음만난 팀원들과 적응도 하고, 수업도 듣고나니 어느새 1주차가 끝났다. 지난 1주일 동안 내가 어떻게 했고, 앞으로는 어떻게 해야할지 그 성장 과정을 기록해보려고 한다. 사실 여러 제약적인 부분때문에 합격을 할거라고 예상 못했는데, 그래서 더 기뻤고 열심히 해야겠다는 마음 가짐을 가지게 되었다.

1. 원티드 프리 온보딩 합격

원티드 프리 온보딩은 참여를 희망한다고 해서 다 참여가 가능한 것은 아니었다. 사전과제와 이력서를 제출하고, 통과가 되면 참여할 수 있다. 사전 과제는 간단한 로그인/회원가입과 TODO를 구현하는 것이였다. 조건(ex. React사용 허가, 기능과 관련된 직접적인 라이브러리 사용 불가), 요구사항 10가지가 약간은 까다로웠지만 좋은 경험이 되었다.

나는 React + styled-components + axios를 사용하여 구현하였고, 아래 깃허브에 코드를 남겨 두었다.

 

 

GitHub - azure-553/wanted-pre-onboarding-frontend: 원티드 프리 온보딩 사전과제 저장소입니다.

원티드 프리 온보딩 사전과제 저장소입니다. Contribute to azure-553/wanted-pre-onboarding-frontend development by creating an account on GitHub.

github.com

과제를 진행하면서 지금까지 내 모습과 가장 달랐던 점이있다. 나는 원래 프로젝트를 진행할 때 구조를 잡고 스타일을 지정한 뒤 기능을 구현하는 방식으로 했었지만, 이번에는 순서를 바꿨다. 프리 온보딩에 대한 소식을 조금 늦게 접해서 시간이 얼마 남지 않은 상황이었기도 했었고, 또 평가 요소에는 UI가 포함되어있지 않았다. 그래서 기능을 우선으로 만들고, 그 다음 마지막에 스타일을 입혔다.

 

그렇게 과제를 수행하면서, '명확한 요구 사항만 있으면 스타일을 나중에 지정해도 괜찮구나'를 깨달은 것 같다. 지금까지의 나는 무조건 스타일이 완성되어야 기능을 구현할 수 있다고 생각했는데, 반대로 되어도 크게 문제될 건 없고 오히려 리팩토링을 할 시간이 생긴다는 장점이 있었다. 또 프론트엔드의 본질이 꼭 UI에만 있는 것이 아니라는 것을 몸소 깨달은 과제였다. 그렇게 5일만에 과제를 완성하고, 제출하였다.

 

이력서는 내가 프로젝트를 했던 것을 정리하면서 느낀 거지만, 깊이있게 해본 프로젝트에 대한 경험이 없어서 아쉬웠다. 그래서 지금 진행중인 프로젝트는 개발 후에 깊이 있게 진행해봐야겠다고 생각하게 되었다. 얼른 완성해서 e2e테스트 같은 것도 해보고, 고도화도 진행해보고 싶다.

 

그리고 며칠 뒤, 4월 21일 금요일 겉으론 티를 안 냈지만, 긴장되었다. 지원자 수가 상당하기도 했고, typescript로 구현한 사람들을 봤기 때문에 괜시리 비교를 하게되었다. 오후에는 1시간에 한 번씩 메일함을 들어가보며 메일이 오진 않았는지 살폈다. 그렇게 긴장되는 마음오로 집 가기 전에 휴대폰을 받았는데, 합격 통보 문자가 와있었다.

아직 고등학생이라 합격 시켜줄지는 예상 못했는데, 그래서 더 기뻤고 이번 기회를 통해 더 성장해야겠다고 마음 먹었다.

합격 🥳

 

2. 팀원들과 첫 만남 그리고 1주차 과제 수행 하기

월요일 오리엔테이션으로 여러 안내를 받고, 화요일에 메인 세션이 진행되었다. 원래 2시 부터 5시 까지 약 3시간동안 예정되어있었지만, 첫 날이라 4시간 가까이 진행되었다. 협업과 관련된 주제에 대해 진행되었는데, ESlint, Prettier, husky에 대해 배우게 되었다.(관련 내용은 추후 포스팅 예정이다.)

 

메인 세션이 종료되었고, 팀원들과 잠시 인사할 시간이 생겼다. 팀은 9명 ~ 10명정도의 사람들이 한 팀이 되어 과제를 진행한다. 팀원들과 인사하고, 밥 먹고와서 한 시간 동안 회의를 진행했다. 이번주 주제는 사전 과제를 팀원들과 토론을 통해 *Best Pratice을 선정하고, 이를 하나로 합쳐서 제출하는 것이였다.

 

팀원 분들의 코드를 보는데, 정말 어느 하나도 같은 코드가 없었다. 프론트엔드 코드가 이렇게 다양할 수 있다는것을, 그리고 이를 경험할 수 있다는 것은 정말 좋은 기회였다. 하나씩 살펴보며 어떤 코드가 Best Pratice인지 고민해보았다.

아, 우리는 Best Pratice에 대한 몇가지 기준을 세웠는데 다음과 같다.

  • 가독성 좋은 코드
    • 너무 길지 않고 뜻이 명확한 변수/함수명
    • 띄어쓰기가 규칙에 맞게 잘 이뤄진 코드
    • 관심사의 분리가 잘 이뤄진 코드
  • 성능이 좋은 코드
    • 컴포넌트 재사용을 통한 성능 개선
    • 유틸 함수 사용을 통한 반복 코드 제거
  • 확장 가능성이 있는 코드
    • 추후에 유지보수하기 용이한 코드
  • 사용자 관점에서 사용성이 좋은 코드
    • 에러메시지 안내

*Best Practice : 모범사례라는 말로서, 특정 문제를 효과적으로 해결하기 위한 가장 성공적인 해결책 또는 방법론을 의미한다.

 

토론을 위해 수요일도, 목요일도 만나서 진행했고, 긴 시간 논의 끝에 선정하여 페어 프로그래밍을 시도했다. 처음해보는 페어프로그래밍이 어렵긴했지만, 실수 하지 않게 잡아 줄 수 있다는 점은 정말 좋았던 것 같다. 또 팀 내에서 eslint, prettier, husky를 선정하는 과정과 기술 스택을 선정하는 과정이 꽤 길었는데 다 다른 기술을 사용하고 있었기 때문에 당연한 일이었지만, 회사에서는 왜 그들이 사용하는 기술을 사용할 줄 아는 사람을 뽑고 싶어하는지 온전히 이해할 수 있는 시간이었다.

 

3. 잘 했던 점, 보완해야할 점

① 잘했던 점

  • 인턴쉽 1주차 과제를 안정적으로 마무리 하였다.
  • 회의에 적극적으로 참여하며 팀원들과 의사소통하기 위해 노력했다.
  • 다른 사람들의 코드를 보며 잘 모르는 부분들에 대해 조사하고, 적용해보기도 했다.

② 보완할 점

  • 학교 시험 일정으로 다시 구현하는데 있어서 시간이 오래 걸렸다.
  • 내 코드가 Best Pratice선정 된 부분이 없다...
  • 함께 eslint, prettier, husky를 맞춰본다는 것이 처음이어서 익숙하지 않았다.

4. 앞으로

이제 앞으로는 기업과제를 받게 될 것인데, 조금더 많이 집중하고 싶다. 내가 가진 목표를 이루기 위해서는 선택과 집중이 필요하다는 것을 알고있음에도, 나는 아직 무얼 선택하고 집중할지 결정내리지 못한 것 같아 아쉬웠다.

이번주에는 꼭 열심히, 잘해서 Best Pratice에도 선정되고 싶다.

 

profile

궁금한게 많은 열아홉

@jjin502

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!