[스파르타코딩클럽] 개발일지 #2 - 프로젝트 수정 & API 설계

lee_dy·2020년 8월 15일
0
post-thumbnail

1. 프로젝트 범위 수정

앞서 기획안에서 크롤링이 가능한 뉴스 매체를 3곳으로 계획하였다. 하지만 막상 크롤링을 시도해보니 한 매체의 구조를 파악하기도 벅차다는 것을 깨달았다. 구현해야하는 기능은 많고 시간은 촉박한 만큼, 과감하게 프로젝트의 범위를 뉴스매체 3곳에서 1곳으로 축소하기로 결정했다.

크롤링 가능한 뉴스기사의 범위가 1/3로 줄어든다는 단점은 뉴스 검색 방식을 개선함으로써 보완하기로 했다. 이전에는 사용자가 직접 뉴스매체 사이트에 접속해 뉴스 리스트를 탐색하고 원하는 뉴스 기사의 링크를 가져와 입력하는 방식이었다면, 이 과정 또한 웹사이트 내에서 한번에 처리할 수 있도록 뉴스 리스트를 가져와 보여주는 기능을 추가한 것이다.

즉, 앞서 구상했던 레이아웃 이전에 위와 같은 화면을 추가함으로써, 사용자에게 날짜와 카테고리 별 뉴스 기사 리스트를 제공한다. 사용자가 해당 화면에서 원하는 뉴스 기사를 선택하면 해당 기사의 데이터와 함께 편집 화면으로 이동하는 것이다.

  • 뉴스 기사 본문 스크랩 기능
    : 원하는 뉴스매체를 선택하고 해당 매체의 기사 url을 입력하면 날짜와 카테고리 별로 분류된 뉴스 리스트를 탐색하고, 원하는 뉴스 기사를 선택하면 기사의 제목과 본문이 스크랩 된다. Python BeautifulSoup을 활용하여 구현할 예정이다.

2. API 설계

본격적으로 API를 만들기 전, 필요한 API들이 무엇이 있을지 생각해보았다. 수업 자료로 제공된 API 설계 예시를 참고하여 엑셀 파일에 정리한 내용은 다음과 같다.

  • 뉴스 데이터 크롤링 기능
    /init : (GET) 로딩 후 첫 화면을 구성하는데 필요한 초기 데이터를 가져옴.
    /list : (POST/GET) 날짜, 카테고리에 맞는 뉴스 리스트를 저장하고 가져옴.
    /news : (POST/GET) 선택한 뉴스의 데이터를 저장하고 가져옴.
  • 번역기 기능
    /translate : (POST/GET) 뉴스 데이터를 번역한 내용을 저장하고 가져옴.
  • 단어사전 & 단어장 기능
    /dic : (POST/GET) 입력된 단어의 정의를 저장하고 가져옴.
    /voca : (POST/GET) 선택된 단어와 정의를 저장하고 가져옴.
  • 편집기 기능
    /edit : (POST/GET) 입력한 번역문을 저장하고 가져옴.
  • 파일 출력 기능
    /extract : (GET) 앞서 입력된 전체 데이터를 특정 파일로 변환하여 가져옴.

3. To do ...

구현하고자 하는 기능들이 많다 보니 자연스럽게 필요한 API도 많아졌다. 앞으로 이 API 설계도의 순서를 참고하여 기능들을 하나씩 구현해 나가려고 한다.

0개의 댓글