Backend

개요현재 외부 부트캠프에서 프론트엔드와 백엔드가 모여서 협업 프로젝트를 진행하고 있다.해당 프로젝트의 주제는 자취생들을 위한 레시피를 추천해 주는 컨셉의 서비스인데, 추천 알고리즘을 잘 만드는 게 핵심이라고 생각한다. 추천 알고리즘을 설계하기 위해서는 단순히 아무 레시피나 추천해주는 것이 아니라, 어떠한 로직에 의해서 결정된 추천 레시피를 유저에게 전달해주어야 한다. 따라서 우리는 프로젝트 기획 단계에서 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를 호출했을 때, 스프링 부트 내부에서 이뤄..
1.  시작하기 전에보통 웹 서비스나 웹 개발을 하게되면, 해당 서비스로 접근하기 위한 페이지가 필요하다. 그렇게되면 Nginx라는 웹 서버를 사용하게 된다.하지만 이 Nginx라는 웹 서버를 사용하는 것은 여간 귀찮은 일이 아니다. 이것 저것 config 파일도 필요하고, 어떤 서버에 요청을 보낼 지, 하나하나 다 지정해줘야한다. 이러다보면 가끔 실수로 인한 에러가 굉장히 많이 발생하게 된다. 물론, 이전 프로젝트에서 사용했던 nginx.conf를 통해서 진행해도 되지만, 까먹을 때도 있으니 새로운 방법을 알아두는 것도 좋을 것이다. 2. Nginx Proxy Manager(NPM)이란?Nginx Proxy Manager란 말 그대로 Nginx의 Proxy를 관리해주는 도구이다.이렇게만 보면 어떤 말인..