원티드x위코드 백엔드 프리온보딩 과제3
- 과제 출제 기업 정보
- 기업명 : 원티드랩
이름 | github | 담당 기능 |
---|---|---|
최신혁 | shchoi94 | 모델링, 회사 검색 api, 자동완성 api |
박세원 | sw-develop | 회사 추가 api, 배포 |
다음과 같은 내용을 포함하는 테이블을 설계하고 다음과 같은 기능을 제공하는 REST API 서버를 개발해주세요.
- 원티드 선호 기술스택
- Python flask 또는 fastapi
- 회사 정보
- 회사 이름 (다국어 지원 가능)
- 회사 정보 예제
- 회사 이름 (원티드랩 / Wantedlab)
- 데이터 셋은 원티드에서 제공
- 데이터셋 예제
- 원티드랩 회사는 한국어, 영어 회사명을 가지고 있습니다. (모든 회사가 모든 언어의 회사명을 가지고 있지는 않습니다.)
컬럼명 | company_name_ko | company_name_en | company_name_ja |
---|---|---|---|
내용 | 원티드랩 | wantedlab |
- 회사명 자동완성
- 회사명의 일부만 들어가도 검색이 되어야 합니다.
- 회사 이름으로 회사 검색
- 새로운 회사 추가
- 제공되는 test case를 통과할 수 있도록 개발해야 합니다.
- ORM 사용해야 합니다.
- 결과는 JSON 형식이어야 합니다.
- database는 RDB를 사용해야 합니다.
- database table 갯수는 제한없습니다.
- 필요한 조건이 있다면 추가하셔도 좋습니다.
- Docker로 개발하면 가산점이 있습니다.
- Back-End : FastAPI, sqlite, swagger, pydantic
- Deploy : Docker, Docker Compose, AWS EC2
- ETC : git, github
- GET /search/
- GET /companies/{company_name}/
- POST /companies/
- 회사를 추가할 때, ko, en, ja 말고도 타 언어의 회사이름과 태그를 추가할 수 있습니다.
구분 | 정보 | 비고 |
---|---|---|
배포플랫폼 | AWS EC2 | |
API 주소 | http://ec2-3-37-125-5.ap-northeast-2.compute.amazonaws.com/ |
- swagger docs -> 링크
-
해당프로젝트를 clone 하고, 프로젝트 폴더로 들어간다.
$ git clone https://github.com/Wanted-Preonboarding-Backend-1st-G5/Assignment3_SH_SW $ cd Assignment3_SH_SW
-
가상 환경을 만들고 프로젝트에 사용한 python package를 받는다.
$ python3 -m venv .venv $ source .venv/bin/activate $ pip install -r requirements.txt
-
서버를 실행시켜 내장db, sqlite를 생성한다.
$ uvicorn app:app --reload
-
파이썬 쉘을 켜서 제공된 데이터를 import 한다.
$ python3 >>> from data_import import * >>> import_data('wanted_temp_data.csv') >>> exit()
-
제공된 테스트 코드를 실행한다.
$ pytest ./test_app.py
이 프로젝트는 원티드x위코드 백엔드 프리온보딩 과제 일환으로 원티드랩에서 출제한 과제를 기반으로 만들었습니다.