안녕하세요, 마리오입니다 :)
일을 쉬는 동안 평소에 생각만 하고 있던 토이 프로젝트를 구현해보려 합니다. 그리고 프로젝트를 수행하는 과정에서 했던 고민과 학습 내용들을 글로 남겨보겠습니다.
구조
사용자의 데이터를 받아 학습된 인공지능 모델을 통해 나온 결과를 제공하는 재미 위주의 서비스를 만들어 볼 예정입니다. 대략적인 흐름을 살펴보면 아래와 같습니다.
처음엔 이미지 데이터를 이용하는 서비스만 생각했는데, 이후에도 다른 인공지능 모델들도 활용하고 싶었습니다. 그래서 모델마다 하나의 서비스를 가지고 모델이 추가될때마다 확장 가능할 수 있게 구성해봤습니다.
시작할때는 데이터만 받는 방식으로 간단하게 만들어 보려고 했는데 고민하다보니 처음보다 복잡해졌네요.
대략적인 구조는 이렇지만 아직 공부가 부족하기 때문에 프로젝트 진행에 따라 바뀔수도 있을 것 같습니다 :D
Auth 영역
처음에 고려했던 부분은 아니지만 사용자가 자신이 사용했던 서비스의 결과를 다시 확인한다던가, 공유 한다던가 할때 더 많은 기능을 제공할 수 있을 것 같아 추가하게 되었습니다.
이메일 정도만 활용해서 간단한 회원 기능을 구성할 예정입니다.
Service 영역
클라이언트의 요청 처리를 담당하게 될 영역입니다.
사용자가 보낸 데이터를 받고, 인증된 사용자에게 Data API 서버를 통해 모델의 결과를 받아와서 다시 클라이언트에게 제공하는 역할을 담당합니다.
Data 영역
Service API 서버를 통해 받은 데이터를 처리하는 서버입니다. 데이터 관련 역할을 분리하기 위해서 구성해봤습니다.
- 데이터 전처리
- 모델에게 결과 받아오기
- 데이터 아카이빙
위 3가지 역할을 담당하게 될 것 같은데, 처음 구현할 이미지 데이터를 활용하는 서비스는 데이터 전처리가 클라이언트, Service 영역 에서도 가능하고, 아카이빙도 Service 영역에서 해결하는게 좋을 수도 있을 것 같아 고민이 많은 부분이네요.
Data 영역은 개발 과정에서 역할을 나누게 되어 없어지거나, 여러개 작은 영역으로 분리할수도 있을 것 같네요.
Model 영역
요청받은 데이터로 모델의 결과를 응답하는 영역입니다. 그리고 해당 모델을 새로 저장된 데이터로 다시 학습 하게 구현해 볼 예정입니다.
끝으로
고민 하다보니 욕심이 많아져서 이것 저것 많은 기능을 넣게 되었네요. 앞으로 험난한 길을 가게될 것으로 예상됩니다 :(
앞서 조금씩 언급했던 내용처럼 처음에는 간단한 CV 모델을 활용해서 전체 흐름을 파악해 볼 생각이에요. 느리더라도 꾸준히 수행해서 꼭 완성해보도록 하겠습니다.
끝까지 읽어주셔서 감사합니다 :D