원티드 프리온보딩 백엔드 코스 사전과제
- REST API 로 구현.
- ORM 사용하여 구현.
- RDBMS 사용 (SQLite, PostgreSQL 등).
-
채용공고를 등록합니다.
➡ 회사는 아래 데이터와 같이 채용공고를 등록합니다.
Example) # 데이터 예시이며, 필드명은 임의로 설정가능합니다. { "회사_id":회사_id, "채용포지션":"백엔드 주니어 개발자", "채용보상금":1000000, "채용내용":"원티드랩에서 백엔드 주니어 개발자를 채용합니다. 자격요건은..", "사용기술":"Python" }
-
채용공고를 수정합니다.
➡ 회사는 아래 데이터와 같이 채용공고를 수정합니다. (회사 id 이외 모두 수정 가능합니다.)
Example) # 데이터 예시이며, 필드명은 임의로 설정가능합니다. { "채용포지션":"백엔드 주니어 개발자", "채용보상금":1500000, # 변경됨 "채용내용":"원티드랩에서 백엔드 주니어 개발자를 '적극' 채용합니다. 자격요건은..", # 변경됨 "사용기술":"Python" } or { "채용포지션":"백엔드 주니어 개발자", "채용보상금":1000000, "채용내용":"원티드랩에서 백엔드 주니어 개발자를 채용합니다. 자격요건은..", "사용기술":"Django" # 변경됨 }
-
채용공고를 수정합니다.
➡ DB에서 삭제됩니다.
-
채용공고 목록을 가져옵니다.
➡ 4-1. 사용자는 채용공고 목록을 아래와 같이 확인할 수 있습니다.
Example) [ { "채용공고_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" } ... ]
-
채용 상세 페이지를 가져옵니다.
➡️ 사용자는 채용상세 페이지를 아래와 같이 확인할 수 있습니다.
- “채용내용”이 추가적으로 담겨있음.
- 해당 회사가 올린 다른 채용공고 가 추가적으로 포함됩니다. (선택사항 및 가산점요소).
Example) { "채용공고_id": 채용공고_id, "회사명":"원티드랩", "국가":"한국", "지역":"서울", "채용포지션":"백엔드 주니어 개발자", "채용보상금":1500000, "사용기술":"Python", "채용내용": "원티드랩에서 백엔드 주니어 개발자를 채용합니다. 자격요건은..", "회사가올린다른채용공고":[채용공고_id, 채용공고_id, ..] # id List (선택사항 및 가산점요소). }
-
사용자는 채용공고에 지원합니다. (선택사항 및 가산점요소).
➡️ 사용자는 채용공고에 아래와 같이 지원합니다. (가점 요소이며, 필수 구현 요소가 아님)
- 사용자는 1회만 지원 가능합니다.
Example) { "채용공고_id": 채용공고_id, "사용자_id": 사용자_id }
-
채용공고를 기준으로 해당 자원에 관한 전반적인 CRUD를 요구하고 있다고 판단했으며, 이를 위해
회사
,사용자
,채용공고
,지원
의 4가지 테이블로 모델링 -
해당 서비스를 이용하는 회사와 사용자의 입장에서의 서비스 이용 흐름을 따라
Apply
정보에 대한 모델 추가 정의 -
서버의 유연성 위해
Azure database for postgresql flexible server
이용하여 구현 및 배포 바로가기 -
현재는 비용 및 보안 상의 이유로 배포 중단
- 배포 화면
- Company
- 회사는
회사명
,국가
,지역
을 등록하고 수정하고 삭제할 수 있습니다. - 자동으로 생성되는
회사_id
는 수정 할 수 없습니다. - 데이터의 유지ㆍ관리를 위하여 등록, 수정시간이 자동 입력됩니다.
- 회사는
- User
- 사용자는
사용자이름
,이메일
,비밀번호
를 등록하고 수정하고 삭제할 수 있습니다. - 자동으로 생성되는
사용자_id
는 수정 할 수 없습니다. - 데이터의 유지ㆍ관리를 위하여 등록, 수정시간이 자동 입력됩니다.
- 사용자는
- Jobposting
- 회사는
채용포지션
,채용보상금
,채용내용
,사용기술
를 등록하고 수정하고 삭제할 수 있습니다. - 채용공고 등록시 입력한
회사_id
를 바탕으로회사명
,국가
,지역
이 자동 입력됩니다. - 채용공고 상세정보에서
채용내용
,회사가 올린 다른 채용공고
를 볼 수 있습니다 - 자동으로 생성되는
채용공고_id
는 수정 할 수 없습니다. - 데이터의 유지ㆍ관리를 위하여 등록, 수정시간이 자동 입력됩니다.
- Q객체를 통해
search
검색 키워드를 이용한 채용공고 검색이 가능합니다.
- 회사는
- Apply
사용자_id
와채용공고_id
는 Unique한 집합으로, 사용자는채용공고
에 1회만 지원할 수 있습니다.- 지원내역을 삭제할 수는 있으나 수정할 수는 없습니다.
- 데이터의 유지ㆍ관리를 위하여 등록, 수정시간이 자동 입력됩니다.