17th May 2021 프로젝트 정리

알파·2021년 5월 17일
0

TIL

목록 보기
6/18

인생은 극기복례

HTTP

HTTP(HyperText Transfer Protocol)은 W3 상에서 정보를 주고 받을 수 있는 프로토콜이다.
HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜이다.

스프링 시큐리티

  • Spring Security는 스프링 기반의 어플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다.
  • Spring Security는 인증과 권한에 대한 부분을 Filter의 흐름에 따라 처리합니다.
  • Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점이 있습니다.

인증과 인가

인증(Authentication)

  • 해당 사용자가 본인이 맞는지 확인하는 절차
    인가(Authorization)
  • 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차

Spring Security는 기본적으로 인증절차를 거친 후에 인가 절차를 진행하며, 인가 과정에서 해당 리소스에 대한 접근 권한이 있는지 확인하게 됩니다.
이러한 인증과 인가를 위해 Principal을 아이디로 Credential을 비밀번호로 사용하는 Credential 기반의 인증방식을 사용합니다.

  • Principal(접근주체) : 보호받는 리소스에 접근하는 대상
  • Credential(비밀번호) : 리소스에 접근하는 대상의 비밀번호

협업필터링

협업 필터링(Collaborative Filtering)은 많은 사람들에게서 얻은 기호 정보에 따라 사용자들의 관심사들을 자동적으로 예측하게 해주는 방법이다.

협업필터링의 종류

  1. 사용자 기반 추천(User-based Recommendation)
  • 나와 비슷한 성향을 지닌 사용자를 기반으로, 그 사람이 구매한 상품을 추천하는 방식이다.
  1. 아이템 기반 추천(Item-based Recommendation)
  • 내가 이전에 구매했던 아이템을 기반으로, 그 상품과 유사한 다른 상품을 추천하는 방식이다.
  • 여기서 상품 간 유사도는 어떻게 구하느냐, 함께 구매되는 경우의 빈도를 분석하여 측정한다. 예를 들어, 무선마우스와 무선키보드가 함께 구매된다면 마우스를 구매했을 때 키보드를 추천해주는 식이다.
  • 이 방식이 현재 아마존, 쿠팡에서 사용되는 방식이라고 한다.
  1. 잠재요인 협업 필터링
  • 넷플릭스 추천시스템이라고 한다

단점

  1. 콜드 스타트(Cold Start)
  • 기존 데이터의 부재, 시스템이 아직 충분한 정보를 모으지 못한 사용자에 대한 추론을 이끌어낼 수 없는 문제

콘텐츠 기반 필터링

콘텐츠 기반 필터링(Content-based Filtering)은 콘텐츠에 대한 분석을 기반으로 추천하는 방식이다. (우리 프로젝트의 경우 도서 설명을 분석하여 사용했다.)
콘텐츠를 분석하고 분류하는 로직을 일종의 텍스트 마이닝을 통하여 구현했다.

프로젝트 초기 계획과 구현물

프로젝트 초기에는 협업 필터링을 구현을 목표로 삼았다. 자바의 머하웃 라이브러리를 이용하려고 했으나, 사용자 데이터를 직접 만들어줘야하는 번거로움과 충분한 정보를 대입하지 못했을 시에 나타나는 콜드스타트 가능성을 배제하기 위해 콘텐츠 기반 필터링으로 계획을 변경하였다.
콘텐츠 기반 필터링을 위해 도서 정보의 명사를 추출하여 일종의 텍스트 마이닝을 했으며 형태소분석기를 이 과정에 이용하였다. 결과적으로 사용자가 보고있는 도서와 유사한 도서를 추천해줄 수 있는 서비스를 구현했다.
콘텐츠 기반 필터링을 적극적으로 활용하기 위해 도서MD가 사용할 수 있는 어플리케이션을 추가로 만들었다. 도서MD가 메인페이지에 띄울 추천도서를 정하여 등록할 수 있게 하였으며 기술로는 Ajax와 JavaScript, Jquery를 위주로 사용했다.

profile
I am what I repeatedly do

0개의 댓글