프론트엔드/Assignment

프론트엔드 과제 전형 유형

.log('FE') 2022. 4. 27. 17:17
728x90
반응형

개발자에 대한 인기는 여전한것같습니다. 

개발자 중에서도 진입 장벽이 상대적으로 낮다고 평가되는 프론트엔드 개발자로의 전향을 하거나 경력으로의 이직을 준비하시는 분들이 많은것같습니다. 저 또한 작년부터 경력이직을 준비했었고 원하던 결과를 일부얻어 올해 이직에 성공하게 되었습니다.

 

저는 지원할때 코테가 아닌 과제 전형인 곳 위주로 지원을 했고 다양한 곳에서의 과제 전형 테스트를 보았습니다. 보안이나 비밀유지에 대한것때문에 자세한 사명과 어떤 회사에서 어떤 유형의 문제가 나왔는지는 밝힐 수 없지만 대략적인 유형들에 대해서 공유해보려고 합니다. 

 

제가 경험해본 바로 세가지 유형으로 분류할 수 있을것같습니다.

1. 순수 자바스크립트 구현
2. 리액트나 뷰를 사용한 구현
3. 자사 서비스의 특정 페이지나 기능에 대한 구현

 

1. 순수 자바스크립트 구현

순수 자바스크립트(= VanilaJS) 로 구현하라는 유형입니다. 

과제의 기간은 회사마다 다른데 짧은건 몇시간 길게는 최대 일주일정도 받았던것같습니다. 

과제들의 공통사항이기도한데 필수 구현사항선택 구현사항으로 크게 나눌 수 있습니다. 

모든 스크립트 코드와 스타일은 직접 작성해야하고 일체의 외부 라이브러리를 사용하면 안됩니다.

 

대략적인 요구사항들은 약간씩의 차이가 있을 수 있습니다. 아래의 리스트들 중에 추가되거나 없는것이 있을수도있습니다.

 

- 테스트코드 작성

- 외부 라이브러리 사용 금지

- 모듈단위 개발

- 번들링 사용가능

- ES6 문법 상용

- 반응형으로 구현

- 시멘틱 태그 사용

 

이러한 제약 조건들이 주어지고 구현에 필요한 화면과 기능 설명을 전달받게됩니다.

디자인은 주어진것과 똑같이 구현해야하는것도있고 기능과 기본적인 레이아웃만 동일하다면 스타일은 취향껏 능력껏 구현하라는것도 있었습니다. 

 

만약 일주일이 주어진다면 환경 세팅에 하루~이틀 / 기능 구현에 3일 / 테스트 및 리팩터링 2일

이런식으로 스스로 일정 가이드라인을 잡고 진행하는것이 좋습니다. 

 

경력직이라 회사를 다니면서 준비하고 있다면 일주일을 받더라도 생각보다 시간이 그렇게 널널하지는 않습니다.

때문에 꼭 주말이나 휴일을 껴서 일정을 선택하고 해당 일정동안은 다른 약속을 일체 잡지않고 집중하기를 추천드립니다. 

 

2. 라이브러리 또는 프레임워크를 사용한 구현

리액트나 뷰를 활용한 구현입니다. 

순수 JS 로 구현한 기능은 자스에 대한 기본 개념이나 SPA 등의 원리들에 대해서 얼마나 잘 이해하고 또 직접 구현할 수 있는지 테스트하는거였다면 해당 과제는 실제 현업에서 일하는 스타일 코드 작성 구현 능력들을 확인하는것이라고 볼 수 있습니다. 

때문에 깃헙을 사용한 제출을 요구하는경우도있는데 이때는 커밋메세지나 브랜치관리까지도 세세히 확인하겠다는 의도로 생각됩니다. 

 

이 경우에서 또 두가지로 나뉠 수 있는데

1. 밑바닥부터 직접 구현
2. 베이스 코드가 주어지고 해당 환경 내에서 구현

1. 밑바닥부터 직접 구현

이때도 요구사항이 약간씩 다른데 CRA 를 허용하기도 하지만 한땀한땀 패키지를 직접 설치하며 세팅하기를 요구하기도 합니다. 

그리고 해당 회사의 서비스 기능이나 페이지중 일부를 구현해보라고 하는데 실제 기능과 약간의 차이점은 두고 진행이됩니다. 

 

2. 베이스코드가 주어지고 해당 환경 내에서 구현

환경설정이나 프로젝트 구조가 어느정도 잡힌상태로 전달이 되고 요구사항에 맞춰 구현합니다.

 

상세

이것도 과제마다 다른데 과제용 API 를 주는곳도있고

목업 API 를 전달해 주는곳도 있습니다. 

또는 데이터만 전달해주고 JSON 파일 형태로 직접 저장해 구현하기도 합니다. 

 

해당 서비스의 가장 주요하고 복잡한 페이지와 기능을 구현하라고 주어집니다.

예를들어 커머스서비스라면 상품리스트 페이지와 상품 상세 페이지 그리고 그 안에있는 필터 같은것들이 될것이고 

특정 정보를 제공하는 서비스라면 그 정보를 제공하는 페이지를 구현하라는 식의 과제입니다. 

 

설명하다보니 2, 3 을 통합해서 작성했는데 프레임워크를 쓰더라도 자사페이지나 기능이 될수도있고 정말 테스트를 위해 주어진 기능을 구현해보라고 할 수도 있습니다. 이때 한가지 팁이 있다면 요구사항에 있던 없던간에 꼭 리드미는 상세하게 작성하라고 말씀 드리고 싶습니다. 

 

 

리뷰 또는 코멘트

리뷰나 코멘트는 크게 기대하지 않는것이 좋습니다. 피드백을 자세히 주던곳도 있었지만 대부분 요청해도 거절하거나 한두줄 정도만 말해주는 식이었습니다. 과제비도 주는곳도있었고 아닌곳도 있었고 역시 큰 기대는 하지 않는것이 좋다고 생각합니다. 

과제를 통과하게되면 면접이 진행되는데 경력 면접이라면 진행했던 과제에 대한 질문 보다는 이전 회사에서의 경험적인걸 많이 물어봤던것같습니다. 

 

이상 간단하게 과제 유형에 대해서 작성해 보았는데 과제전형을 준비하시거나 진행하시는 분들에게 도움이 되었으면 합니다.

혹시 추가적인 궁금증이 있다면 댓글로 남겨주시면 보안에 위배되지 않는 선에서 답변해드리도록 하겠습니다.

 

728x90
반응형