본문 바로가기

개발자의 logs

스타트업 입사과제 구현과정 및 스택, 진행후기 본문

개발자 학습노트/* 학습일기*

스타트업 입사과제 구현과정 및 스택, 진행후기

주인장v 2022. 10. 26. 18:30
 
 
 
 
 
 
최근 이틀 간 한 스타트업의 입사테스트 과제를 진행했다. ( 어느 회사인지는 밝힐 수 없음! )
 
 
아래는 README.md에 서술한 과제 진행 구현과정 및 API 정리한 것이다.
 
 
 
## 기술스택

 

NODEJS,MYSQL(sqlite3),VSCODE

 

### 구현과정

 

1. 제공된 API 사이트에서 OPEN API 호출을 한다.
2. 호출한 API를 통해 들어오는 데이터를 확인한다.
3. sqlite3 라이브러리를 다운로드 한 후, 들어오는 데이터 및 필요한 칼럼에 맞게 DB를 만든다.
4. API로 들어오는 데이터를 필요에 맞게 알맞게 파싱한다. (가져오는 데이터: author, title, description, content)
5. 파싱한 데이터를 DB에 넣는다.
6. 과제 요구사항에 필요한 API 설계를 시작한다. 총 4개의 API를 설계하였다. (세부 정보는 각 API에 주석으로 달아놓았다.)

 

```
/news//includeWord.
요청한 글자가 포함되는 컨텐트를 리턴해준다.
/news//title.
요청한 제목과 일치하는 제목을 리턴해준다.
/news/view.
페이지 네이션 기능이 포함된 API다. 한 페이지당 5개씩 뉴스를 리턴해준다.
/news/view/all.
모든 뉴스를 페이지네이션 없이 리턴한다.



http://localhost:3000/api/news//title - post method, body로 title 스트링 값 필요
http://localhost:3000/api/news//includedWord -post method, body로 word 스트링 값 필요
http://localhost:3000/api/news/view?page=1 -get method , query로 page 넘버필요.
http://localhost:3000/api/news/view/all -get method

 

1. 뉴스 가져오기 - yes.
2. 내부 DB에 뉴스데이터들을 저장하기 -yes.
3. 사용자 요청에 따라 뉴스 정보를 가져올 수 있도록 구현하기 - /news/search/includeWord 로 구현.
4. 페이지네이션 구현하기 - /news/view 구현.
5. 뉴스 검색 기능 구현하기 - /news/search/title 로 구현.
```

 

- 후기

크롤링은 전에 파이썬을 다룰 때 많이 해봤어서 막 어렵지는 않았다. 하지만 자바스크립트로 크롤링 하는 것은 또 다른 일...ㅎ

인터넷 블로그 글을 참고하니 그마저도 그리 어렵지는 않았다. 

 

이번 내부 DB를 쓰는 것이 첨이라 많이 생소했다. mysql을 학습 중이라, 내 그동안 주력 DB였던 mongoDB는 쓰지않았다.

mysql 내부 DB 라이브러리로는 sqlite3라는 것이 있다. 다운은  npm install sqlite3를 쓰면 된다.

 

페이지네이션이란 것이 처음이라,  api만 나누면 끝이라고 생각했는데 알고보니 호출시 데이터를 나눠서 보내라는 뜻이였다.

이유는 서버에서 모든 데이터를 끌어오면 과부하 우려 때문.

 

과제 진행에 약 1.5일 정도 걸린 것  같다 !

Comments