실제 온보딩 참가 지원은 하지 않고, 자체적으로 공부하기 위해 진행한 프로젝트입니다.
해당 프로젝트를 통해서 추구하는 목표는 다음과 같습니다.
- 추후 구직 활동에 있어서 채용 담당자로 하여금 코드 스타일을 최대한 보여줄 수 있도록 구현 한다.
- 개인적으로 DevOps 분야에서 부족하다고 느끼는 부분을 놀이터 삼아 해당 프로젝트에 적용하면서 공부한다.
- 구현 완료 후, 다른 실 참가자들의 Public Repo를 통해 비교하며 학습하는 시간을 갖는다.
구현 하면서 느낀 점, 어려웠던 점, 개선할 점 등을 정리해두었습니다.
link : 개발 회고록
👉 Github Repository 주소를 제출해주세요.
👉 Repository 명은 “wanted-pre-onboarding-backend” 으로 생성 합니다.
- 지원자들의 역량을 확인하기 위한 과제이며, 아래 요구사항을 만족한다면, 추가적인 기능 구현하시더라도 평가에 불이익 등 문제 없습니다. (사용자 인증, 권한 추가 또는 별도
기능
추가 등)
아래 서비스 개요 및 요구사항을 만족하는 API 서버를 구현합니다.
사용가능 언어 및 프레임워크: - Javascript & Node.js - Python & Django(DRF 권장) - Java & Spring - 중 택 1
※ 본 과제 수행 프레임워크는 추후 코스 팀 구성에 활용 됩니다. 참고하시고 코스수행을 희망하는 프레임 워크 선정 바랍니다.
본 서비스는 기업의 채용을 위한 웹 서비스 입니다.
회사는 채용공고를 생성하고, 이에 사용자는 지원합니다.
- 채용공고를 등록합니다.
➡️ 회사는 아래 데이터와 같이 채용공고를 등록합니다.
데이터 예시이며, 필드명은 임의로 설정가능합니다.
{
"회사_id": 회사_id,
"채용포지션": "백엔드 주니어 개발자",
"채용보상금": 1000000,
"채용내용": "원티드랩에서 백엔드 주니어 개발자를 채용합니다. 자격요건은..",
"사용기술": "Python"
}
- 채용공고를 수정합니다.
➡️ 회사는 아래 데이터와 같이 채용공고를 수정합니다. (회사 id 이외 모두 수정 가능합니다.)
데이터 예시이며, 필드명은 임의로 설정가능합니다.
{
"채용포지션": "백엔드 주니어 개발자",
"채용보상금": 1500000,
#
변경됨
"채용내용": "원티드랩에서 백엔드 주니어 개발자를 '적극' 채용합니다. 자격요건은..",
#
변경됨
"사용기술": "Python"
}
또는...
{
"채용포지션": "백엔드 주니어 개발자",
"채용보상금": 1000000,
"채용내용": "원티드랩에서 백엔드 주니어 개발자를 채용합니다. 자격요건은..",
"사용기술": "Django"
#
변경됨
}
-
채용공고를 삭제합니다.
➡️ DB에서 삭제됩니다. -
채용공고 목록을 가져옵니다.
➡️ 4-1. 사용자는 채용공고 목록을 아래와 같이 확인할 수 있습니다.
[
{
"채용공고_id": 채용공고_id,
"회사명": "원티드랩",
"국가": "한국",
"지역": "서울",
"채용포지션": "백엔드 주니어 개발자",
"채용보상금": 1500000,
"사용기술": "Python"
},
{
"채용공고_id": 채용공고_id,
"회사명": "네이버",
"국가": "한국",
"지역": "판교",
"채용포지션": "Django 백엔드 개발자",
"채용보상금": 1000000,
"사용기술": "Django"
},
...
]
➡️ 4-2. 채용공고 검색 기능 구현(선택사항 및 가산점요소).
Example - 1) some/url?search=원티드
[
{
"채용공고_id": 채용공고_id,
"회사명": "원티드랩",
"국가": "한국",
"지역": "서울",
"채용포지션": "백엔드 주니어 개발자",
"채용보상금": 1500000,
"사용기술": "Python"
},
{
"채용공고_id": 채용공고_id,
"회사명": "원티드코리아",
"국가": "한국",
"지역": "부산",
"채용포지션": "프론트엔드 개발자",
"채용보상금": 500000,
"사용기술": "javascript"
}
]
Example - 2) some/url?search=Django
[
{
"채용공고_id": 채용공고_id,
"회사명": "네이버",
"국가": "한국",
"지역": "판교",
"채용포지션": "Django 백엔드 개발자",
"채용보상금": 1000000,
"사용기술": "Django"
},
{
"채용공고_id": 채용공고_id,
"회사명": "카카오",
"국가": "한국",
"지역": "판교",
"채용포지션": "Django 백엔드 개발자",
"채용보상금": 500000,
"사용기술": "Python"
}
...
]
- 채용 상세 페이지를 가져옵니다.
➡️ 사용자는 채용상세 페이지를 아래와 같이 확인할 수 있습니다.
“채용내용”이 추가적으로 담겨있음.
해당 회사가 올린 다른 채용공고 가 추가적으로 포함됩니다(선택사항 및 가산점요소).
{
"채용공고_id": 채용공고_id,
"회사명": "원티드랩",
"국가": "한국",
"지역": "서울",
"채용포지션": "백엔드 주니어 개발자",
"채용보상금": 1500000,
"사용기술": "Python",
"채용내용": "원티드랩에서 백엔드 주니어 개발자를 채용합니다. 자격요건은..",
"회사가올린다른채용공고": [
채용공고_id,
채용공고_id,
...
]
#
id
List
(선택사항
및
가산점요소).
}
- 사용자는 채용공고에 지원합니다(선택사항 및 가산점요소).
➡️ 사용자는 채용공고에 아래와 같이 지원합니다.
(가점 요소이며, 필수 구현 요소가 아님)
사용자는 1회만 지원 가능합니다.
{
"채용공고_id": 채용공고_id,
"사용자_id": 사용자_id
}
-
위 예시 데이터는 구현의 편의를 위해 제공되는 정보이며, 요구사항(의도)을 만족시킨다면 다른 형태의 요청 및 리스폰스를 사용하여도 좋습니다.
-
필요한 모델: 회사, 사용자, 채용공고, 지원내역(선택사항) (이외 추가 모델정의는 자유입니다.)
-
위 제공된 필드명은 예시이며, 임의로 생성 가능합니다.
-
회사, 사용자 등록 절차는 생략합니다. (DB에 임의로 생성하여 진행)
-
로그인 등 사용자 인증절차(토큰 등)는 생략합니다.
-
Frontend 요소(html, css, js 등)는 개발 범위에 제외됩니다. (구현시 불이익은 없지만, 평가에 이점 또한 없습니다.)
-
명시되지 않은 조건또한 자유롭게 개발 가능합니다.
-
필수 기술요건
- ORM 사용하여 구현.
- RDBMS 사용 (SQLite, PostgreSQL, MySql 등).
-
평가 요소
- 요구사항 구현정도
- 모든 기능을 구현하지 않더라도 평가를 진행합니다.
- 모델링
- 코드 가독성 및 코드 컨벤션
- 기술점수 가산점 요소
- (제출시기 가산점과 달리 기술점수 5점 이내 포함되는 가산점 입니다.)
- 가산점이 포함된 요구사항 해결(요구사항 5~6)
- Unit Test 구현
- README 에 요구사항 분석 및 구현 과정을 작성
- Git commit 메시지