개요현재 외부 부트캠프에서 프론트엔드와 백엔드가 모여서 협업 프로젝트를 진행하고 있다.해당 프로젝트의 주제는 자취생들을 위한 레시피를 추천해 주는 컨셉의 서비스인데, 추천 알고리즘을 잘 만드는 게 핵심이라고 생각한다. 추천 알고리즘을 설계하기 위해서는 단순히 아무 레시피나 추천해주는 것이 아니라, 어떠한 로직에 의해서 결정된 추천 레시피를 유저에게 전달해주어야 한다. 따라서 우리는 프로젝트 기획 단계에서 Slope-One 알고리즘을 채택하여 다른 유저들이 A부터 D 레시피까지 평가를 했다고 가정할 때, 신규 유입 유저가 B를 평가한다면, B 레시피를 좋게 평가한 유저들이 대체로 어떤 레시피를 선호했는지는 평차와 평균을 통해서 계산하고 신규 유저에게 전달한 레시피 Id를 저장하고, 유저가 추천 레시피를 호..
드디어 마지막 장인 13장을 다 읽었다.. Chap.13 서비스의 인증과 권한 부여서비스를 개발하다보면, 회원간의 별도의 데이터를 저장한다던가, 특정 게시물을 삭제할 때, 요청한 유저가 해당 게시글의 주인인가를 파악하는 로직이 추가되기 마련이다. 이런 경우에 Spring Boot에서는 요청을 보낼때 누가 보냈는지를 넣어서 전달하고 반환받을 수도 있지만, 이런 것은 Spring스럽지 않기 때문에, Spring Boot Security를 사용해서 보안과 인증, 권한을 처리한다. 13.1 보안 용어 이해인증 Authentication은 사용자가 누구인지 확인하는 단계를 의미한다. 예를 들자면 로그인과 같은 기능이 존재한다.로그인 Form에 Username과 Password를 입력한 후 전달하고, 서버에서는 해..
Chap.12 서버 간 통신12.1 RestTemplate이란? RestTemplate은 Spring에서 HTTP 통신 기능을 손쉽게 사용하도록 설계된 템플릿입니다.HTTP 서버와의 통신을 단순화한 이 템플릿을 이용하면 RESTful 원칙을 따르는 서비스를 편리하게 만들 수 있습니다. RestTemplate는 기본적으로 동기 방식으로 처리되며, 비동기 방식으로 사용하고 싶은 경우 AsyncRestTemplate를 사용하면 됩니다.하지만, RestTemplate의 경우 현재 Deprecated된 상태여서 앞으로 알아볼 WebClient를 사용하는 것이 좋을 것같습니다. RestTemplate는 다음과 같은 특징을 가집니다. HTTP 프로토콜의 메서드에 맞는 여러 메서드를 제공합니다.RESTful 형식을 ..
Chap11. 액추에이터 활용하기11.1 프로젝트 생성 및 액추에이터 추가 기존의 프로젝트의 빌드 환경에 따라, gradle인 경우, build.gradle에 Spring Boot Starter Actuator를 추가하고, Maven인 경우 pom.xml에 해당 종속성을 추가해주어 액추에이터 환경을 추가해준다. 11.2 엔드포인트 application.yml 또는 application.properties에 management.endpoints.web.base-path=/custom-path를 추가해서 특정 경로에서 서버의 상태 및 메트릭을 확인 할 수 있다. 기본적으로 엑추에이터에는 기본 엔드포인트 리스트가 존재한다. +) 추가적으로 Spring MVC, Spring WebFlux, Jersey를 사용하..