개요현재 외부 부트캠프에서 프론트엔드와 백엔드가 모여서 협업 프로젝트를 진행하고 있다.해당 프로젝트의 주제는 자취생들을 위한 레시피를 추천해 주는 컨셉의 서비스인데, 추천 알고리즘을 잘 만드는 게 핵심이라고 생각한다. 추천 알고리즘을 설계하기 위해서는 단순히 아무 레시피나 추천해주는 것이 아니라, 어떠한 로직에 의해서 결정된 추천 레시피를 유저에게 전달해주어야 한다. 따라서 우리는 프로젝트 기획 단계에서 Slope-One 알고리즘을 채택하여 다른 유저들이 A부터 D 레시피까지 평가를 했다고 가정할 때, 신규 유입 유저가 B를 평가한다면, B 레시피를 좋게 평가한 유저들이 대체로 어떤 레시피를 선호했는지는 평차와 평균을 통해서 계산하고 신규 유저에게 전달한 레시피 Id를 저장하고, 유저가 추천 레시피를 호..
개요이전 포스팅에 이어서 바로 API 요청을 Spring Boot Framework에서 어떻게 처리하는지에 대한 내용을 포스팅 할 예정이다.나름 Spring을 조금 공부했다고 생각했어는데, 정작 이런 흐름을 알게 된지는 얼마 안됐다.본론으로 들어가기 전에...바로 본론으로 들어가기 전에 다음 그림과 같은 흐름대로 API가 처리된다고 보면 될 것같다.1. FilterFilter는 사용자가 서버로 전송한 정보를 가장 먼저 획득하는 부분입니다. 일반적으로 Filter에서는 전처리, 인증과 인가와 같은 작업을 수행합니다. 흔히 우리가 로그인하는 과정에서 JWT를 사용하면, Access Token과 같은 토큰을 발급받습니다. 이후 마이 페이지와 같은 사용자별로 다른 정보를 받기 위한 요청을 할 때, Request..
개요이전에는 그냥 개발만 하고, 컨트롤러, 서비스, JPA와 같은 것만 다루다 보니까 어떤 흐름인지 느낌적으로만 알았는데 이전에 순수 자바로 스프링을 구현하는 과정에서 순수 톰캣을 다뤄봤었다. 해당 웹 서비스를 제작할 때, JSP와 서블릿, DB Handler를 통해서 구현했었는데, 왜 스프링 부트를 사용하지 않고 톰캣을 쓰지?시간을 낭비하는건 아닌가?라는 생각이 들었었다. 주변의 지인들도 톰캣과 서블릿을 사용해서 프로젝트를 하고있다고 하니까 다들 기겁하던 모습이 아직도 선명하다... 하지만, 최근에 스프링과 스프링부트에 대한 깊은 공부를 하게 되면서, 왜 서블릿을 통해서 과제를 진행했는지 알게되는 것같다. 이번 포스팅에서는 외부에서 Http 요청을 통해 API를 호출했을 때, 스프링 부트 내부에서 이뤄..
개요이전에 진행했던 프로젝트에서 사진을 업로드하고, 이를 조회에서 사용자의 프로필을 보여줘야하는 테스크가 있었다.단순히 로컬단에 사용자의 이미지를 조회하고 그 내용을 보여줘도 해당 기능을 수행하는 데는 아무런 문제가 존재하지 않는다.하지만, 사용자가 본인의 프로필을 바꾼다면? 자신의 애완 동물의 사진을 추가한다면? 이런 저런 이유들로 로컬단의 용량을 많이 잡아먹게된다. 또한, 보안적으로 취약할 수도 있다는 생각이 들었다. 그래서 다른 사람들은 이러한 작업들을 어떻게 수행할까해서 찾아보니, AWS의 Simple Storage Service(S3)를 사용해서 영상 또는 사진 데이터들을 처리하는 것을 알 수 있었다.본론AWS S3에 대한 내용은 추후에 다루게 될 것이다. 해당 포스팅에서는 단순히 AWS S3와..