1. 프로젝트소개
짧은 기간 자바, Spring boot를 공부한 내용을 바탕으로 미니프로젝트를 진행했다.
1) Yes24
클론코딩을 한 사이트는 Yes24며 복잡한 로직을 공부하기보다는, 그동안 배운 스프링부트를 이용해
REST API 구현하는 것
데이터를 크롤링하고 CSV로 변환, DB에 적재
HTML, CSS로 화면을 구성해서, DB의 내용을 구성한 화면에 올바르게 보여주는 것
이러한 기술들에 익숙해지는 것에 중점을 두고 진행했다.
2) 진행기간
진행기간도 2023년 8월 24일~ 2023년 9월4일 (총 6일) 매우 짧았다.
3) 팀구성
나와 주선님,주한님,예랑님 이렇게 4인팀
그동안 공부한 기술들에 대한 이해가 달라서, 제대로된 협업은 하지못했고,
Notion을 통해서 진행상황 및 파일을 공유했고,
개발규모가 작아서 주선님과 같이 Frontend Backend 둘다 작업했다.
주한님이 DB관리, 예랑님이 크롤링한 데이터 DB에 적재하고 발표자료를 준비했다.
4) 기술스택
Frontend
HTML, CSS, JavaScript, Mustache, BootStrap
Backend
Java, Java Spring Boot, Python, BeatifulSoup
DataBase
MySQL
Communication
Notion, GoogleDocs
5) 구현기능
- BeatifulSoup(파이썬에서 사용할 수 있는 크롤링 라이브러리)을 이용해서 Yes24의 연월별 베스트셀러 리스트 크롤링
- Chrome 개발자 도구를 이용해 파악한 구조를 통해 베스트셀러 리스트의 ID값으로 접근해서 상세페이지 크롤링
- DB에 크롤링한 데이터 적재
- Spring boot의 MVC패턴으로 REST API를 구현하고 이를 이용해 DB의 데이터를 가져와서 조작
- 템플릿 엔진으로 Mustache를 사용해서 HTML과 CSS, Java Script를 이용해 화면을 구성한 것을 보여줌
- Yes24 클론페이지에서 여러 리다이렉트기능 구현
- 연도와 월별로 베스트셀러 조회기능
- 검색어를 입력하고 검색하는 기능(돋보기 아래 부분 옵션버튼에서 책, 작가, 전체 등 검색옵션 설정가능)
2. 얻은 것
HTML의 기본적인 태그만 공부했었는데, 이번에 Chrom 개발자도구로 Yes24 페이지의 HTML, CSS, JavaScript들을 분석하면서 화면을 구성하면서 정말 많은 것을 알게됐다.
또한 Spring Boot로 MVC패턴으로 REST API를 구현하면서 MVC패턴과 REST API에 대해 많이 알게 됐다.
DB를 직접다루는 경험도 생겼다.
확실히 이론으로 익히는 것보다 직접 실전에서 적용해보는게 큰 경험이 되는 것 같다.
3. 아쉬운 점, 계획
얻은 것에서 적은 내용들에 대해서 알게 되었지만, 깊이가 얕다고 느꼈고, 좀 더 확실하게 알기위한 공부가 필요하다고 생각함.
따라서 내용들에 대해서 확실하게 공부하고 블로그에 정리해서 올릴 것이다.
일단 위에 사용한 기술스택에 대한 사용법도 중요하나, 각각의 특징에 대해서 잘 알고 있어야만, 새로운 프로젝트를 진행하게 됐을 때 요구사항에 대해 적합한 기술 스택을 선택하고 사용할 수 있을테니까.