관심쟁이 영호

[#0 이미지 검색 프로젝트] 프로젝트 계획 본문

Project/SSP - 이미지 검색 및 최저가 검색

[#0 이미지 검색 프로젝트] 프로젝트 계획

관심쟁이 영호 2021. 9. 14. 16:04
반응형

이번에 새롭게 구상한 프로젝트를 실시할 예정이다.

 

프로젝트에 대한 전반적인 계획을 보자!

 


SSP - Search Shop & Price

 

해당 프로젝트는 이미지 검색, 최저가 검색을 구현하는 서비스이다.


 

목적

이 서비스를 개발하게 된 이유는 다음과 같다.

 

친구가 특이한 스타일의 옷을 찾고있었다. 
친구가 검색한 검색어는 "등에 지퍼가 있는 후드티"였다. 
나올리가 있나... 
많이 답답해보였다. 생각해보니까 나 또한 같은 문제로 검색에 어려움을 느낀적이 있다. 

개발해보자!

 

전체적으로 어려울 것이라 생각되어 덜컥 겁이 났다.

근데 "세상 살다 보면 이것보다 어려운 문제들이 많은데 이것도 성공하지 못하면 다른 문제는 어쩔래? 라는 생각이 들어, 바로 개발해야겠다는 생각이 들었다.

 

본론으로 돌아가 목적을 다시 이야기하자면,

이미지 검색 서비스를 개발하여 많은 사람들에게 좀 더 나은 세상을 살아갈 수 있게 도와주기 위함이다.


데이터 입출력 및 기술스택

 

데이터는 어디서 구하나?

 

데이터는 Python의 BeautifulSoup을 이용하여, 크롤링을 할 예정이다.

크롤링 사이트는 네이버, 쿠팡이다. (더 추가할 수도, 줄일 수도 있다.)

 

데이터 입출력

입력

Python이 동작하는 서버는 DB Insert만 수행한다. 

 

출력

자바/스프링 서버에서 DB를 읽어와서, 사용자에게 http - json 형태로 Response 해준다.

 

DB 기술 스택

mySQL을 이용할 예정이다.

 

DB 분산화

DB Replication을 이용하여 master - slave1, slave2까지 구현할 예정이다.

아직 정확히는 정하지 않았지만 MMM or MHA 방식을 구현할 예정이다.

(DB 분산화에 대한 공부가 부족하여 계획에서 문제가 있을 수도..)

 

※ 이미지 검색에 필요한 이미지 인식 컴포넌트? 들에 대한 데이터도 추가할 예정이다. 공부해야 확실히 말할 수 있을 것 같아서 일단 생략해둔다.

 

데이터 구성

데이터 내용은 다음과 같이 구성할 예정이다.

  • NAME : 실제 웹사이트에 등록된 상품 이름
  • URL : 해당 상품의 href
  • PRICE : 해당 상품의 가격
  • 이미지 인식에 필요한 기타 데이터들..

 


서버

서버는 총 2~3개가 될 듯하다.

 

프론트 서버

웹에서 동작하는 프론트 서버가 될 듯하다. (프론트 실력이 없어서 아주 저급할 수도..)

JS를 이용하여 사용자가 Canvas에 그림을 그려 검색을 하면, 그림을 분석하여 자바/스프링 서버에 넘긴다.

 

백엔드 서버

자바/스프링으로 구성된 서버다. 프론트와 http - json 통신을 한다. DB에서 출력을 주로 한다. 가능하면 수정도 적용할 것이다.

 

- 백엔드 서버 분산화

임시 서버를 2~3개 더 생성할 예정이다. (해당 내용은 공부가 부족하다.. 공부하고 수정하자!)

서버 2개는 AWS를 사용할 예정이다.

 

DB 서버

앞서 이야기했던, python으로 구성할 예정이다. 해당 서버는 백엔드와 소통하지 않는다. 단순 입력만 한다.

 


일정

 

구체적인 일정은 아직 생각 중이다.

 

개략적으로 보면 다음과 같다.

 

  9월 3주 9월 4주 10월 1주 10월 2주 10월 3주 10월 4주 11월 1주 11월 2주 11월 3주
크롤링 구현 O O              
DB 설계 O O O O O O      
백엔드 구현     O O O O O O O
프론트엔드 구현           O O O O
이미지 인식 구현           O O O O
DB 서버 분산화     O O O O O O O
백엔드 서버 분산화         O O O O O
배포                 O
기타 및 유지보수 O O O O O O O O O

 


버전 관리

 

툴 : git / github

 

브랜치 전략 : main / develop / release  / hotfix / feature

 


백엔드 api 설계

 

- 추후에 포스팅할 예정이다.

 


걱정

학교 공부, ADYB 프로젝트, CS 공부, 자바 공부, 코드 공부... 많다!!!!!!!

그래도 해야지 ㅋㅋㅋ

 

파이팅이다.

미래의 영호야

 

300x250
Comments