지난 챕터에 추출된 아이디어 기획을 제품으로
구현시킨 방법론에 대해서 얘기해보도록하겠다.
먼저 개발을 위한 디자인 작업이 필요하다.
[서비스 INPUT & OUTPUT 정의]
우리 서비스의 Input은 매일 수집되는
약 70,000건의 채용공고 자연어 데이터이다.
output은 각 채용공고별 추천 세트가 되겠다.
특히 output은 데이터베이스에서
수집하고 프론트에 노출되기 용이하도록
각 채용공고의 고유ID로 구성되도록하고
피추천ID : {추천ID[1], 추천ID[2] ...}의
딕셔너리 형태로 전달하도록하였다.
[서비스의 기능별 분절]
잘 설계된 개발을 위해서 우리의
서비스를 기능별로 분절을 해야한다.
먼저 크게 두 가지 기능으로 나뉠 수 있다.
[추천을 위한 모듈]과 [학습을 위한 모듈]이다.
추천 모듈은 매일 갱신되도록 작동하고,
학습 모듈은 필요에 의해 학습되도록 작동한다.
두 가지 기능을 구성하는 세부 기능들은
다음과 같이 분할될 수 있다.

[학습 모듈]
데이터 수집 - 전처리 - 데이터로더 -
모델링 - 트레이너 - 모델 저장
[추천 모듈]
데이터 수집 - 전처리 - 모델 불러오기 -
문서 표현 벡터 추출 - 필터링 모듈
위 기능들은 디렉토리로 분할되어
python main프로그램 파일에서 하나의 프로그램처럼 설계되었다.
각 기능별로 구현된 코드는 Github에
들어가 참고할 수 있다.
[사용성 증가]
인공지능 모델은 파라미터에 민감하다.
또한 몇 개의 추천 아이템을 추출할 지,
필터링 변수는 어떻게 설정할 지 확인되어야한다.
때문에 사용 시 반복적으로 변경되거나,
서비스에 중요한 변수가 되는 파라미터들을
쉽게 운용할 수 있도록 템플릿 파일을 제작하였다.
이번 챕터의 핵심은 객체지향적
디자인패턴을 서비스에 녹여낸 것이다.
서비스를 구성하는 하위 모듈들의
역할을 명확하게 구분하고
코드의 유지보수를 편리하게 하기위해 노력하였다.
다음 챕터는 실제 개발이 어떻게 진행되었는지
간단하게 리뷰하도록 하겠다.
'Data Analysis > [Project] Job Description RecSys' 카테고리의 다른 글
| [일자리 추천시스템 개발하기] ch.4 데이터 수집과 전처리 (4) | 2023.10.22 |
|---|---|
| [일자리 추천시스템 개발하기] ch.2 MVP 정의와 아이디어 (0) | 2023.08.23 |
| [일자리 추천시스템 개발하기] ch.1 발단과 발상 (1) | 2023.08.20 |