냉메추 5

[냉메추] 이제 언어가 늘어갑니다!!! JS도 씁니다!!

Kotlin/Spring으로 WAS(Web Application Server)를 만들었다. 그런데, 우리 서비스는 기능들을 만든다고 바로 사용할 수 있는 서비스가 아니다. 많은 데이터가 필요하다. 데이터를 어떻게 구할 것인가?냉메추에서 필요한 데이터가 무엇일까?일단 레시피를 보여줄 수 있어야 하며, 레시피에 대한 각 재료들의 데이터도 있어야 한다. 이걸 어떻게 해결할지 방안을 모색해야한다.  이런 데이터가 존재하는 것을 보았다. 여기에서 데이터를 전처리해서 재료들을 빼내고, 데이터를 가져오는 것을 1차적으로 생각했다.그런데 여러 이슈들이 동시적으로 발생했다.  우리 서비스는 각 음식 사진에 대한 썸네일이 필요하다. 우리 서비스는 각 레시피에 대한 재료 데이터를 가져와 ingredients테이블에 넣어둘 ..

냉메추 2024.05.20

[냉메추] 서버가 터진 건에 관하여...(자원관리를 잘하자)

사건의 발단서버가 중간에 죽는 문제가 있었다. 전체적으로 메모리 누수와동작중인 3개의 컨테이너간의 메모리 할당량을 체크해봤지만 아무런 문제가 없었다.  기본적으로 스왑 메모리를 많이 달아도너무 많은 컨테이너를 무료 인스턴스에서 돌리려고 한 것이고, 스왑 메모리 자체가 성능적이 저하를 일으킬 것이 문제였다. (심지어 HDD로 이루어진 스왑 메모리이기 때문에 더 느릴 것으로 추산했다. 자세한 내용은 이 글 참조) 이제 고민을 해야했다. 스케일 업인가, 스케일 아웃인가스케일 업 vs 스케일 아웃서버의 자원 한계점 도달이라는 현 상황에서 사용 가능한 대안을 생각해보자. 크게 스케일 업과 스케일 아웃이라는 경우의 수가 존재한다.  스케일 업이라는 것은 서버의 자원(CPU, RAM)을 더 좋은 성능의 부품으로 바꾸..

냉메추 2024.05.01

[냉메추] 멀티모듈로 구현을 한다는 것. 서버가 많이 필요하다는 것.

이전에 이야기한 대로, 멀티모듈로 프로젝트를 만들기로 했다. 멀티 모듈을 어떻게 배포하는 건지, 처음부터 다시 정리해보기 시작했다. settings.gradle, build.gradle설정해주기물론 IDE 등에서 내부에 모듈을 추가하게 하면 자동으로 추가되지만, 그래도 알고 지나가는 것은 중요하다고 생각한다.우리가 가지고 있는 모듈 내부에 이런 모듈들이 존재한다는 것을 명시해주었다.  또한, build.gradle에서 이렇게 내부에 include된 모듈들에 대한 공통적인 dependencies를 추가해줄 수 있었다. subprojects { apply plugin: 'java' apply plugin: 'org.springframework.boot' apply plugin: 'io.spr..

냉메추 2024.04.29

[냉메추] 학교에서 새로운 서비스를 만들어보게되었다..!

학교에서 새로운 프로젝트를 진행하게 되었다. (캡스톤 디자인으로 시작했는데, 나중에 계속해서 빌드업을 해보면 좋겠다는 생각이 되었다. ) (곰터뷰가 이제 둘이 되겠군...?) 회원의 냉장고 데이터를 받아서, 추천해줄만한 메뉴를 만들어 반환하는 로직을 생각하고 있다. 데이터는 만개의 레시피에서 참조하기로 했다. 찾아보니, csv파일 형식으로 대략 20만건정도를 받을 수 있었다. 해당 데이터를 전처리해서 DB에 데이터를 넣어주고, 조회의 최적화 로직도 생각하게 되었다. 그래서 우리팀은? 우리팀은 프론트 둘에, 백엔드는 나 하나다. 심지어 캡스톤 디자인의 담당교수는 빅데이터, ML을 주로 가르쳐주시는 교수님시다. 즉, 나중엔 AI 관련 학습도 진행하면서 회원들의 사용내역을 모두 군집화해서 추천 알고리즘에 적용..

냉메추 2024.03.28