본문 바로가기

전체 글

(92)
Spring Security 동작 원리 프로젝트를 진행하면서 Spring Security를 활용해서 회원 로그인/로그아웃 처리 과정을 구현 했었다. 당시 시간이 촉박하다는 핑계로 상세하게 들여다보지 않고 로그인이 되는 상세 처리 과정만 이해하고 넘어갔었다. 로그인 과정 로그인 시도 -> username, password 정보를 HTTP body로 전달 인증 관리 -> UserDetailsService에게 username을 전달하고 회원 상세정보를 요청 회원 DB에서 회원 조회 -> 조회된 정보를 UserDetails로 변환 인증 관리자가 인증 처리 -> UserDetailsService가 전달해준 UserDetails의 정보와 클라이언트가 시도한 username,password 일치 여부 확인 UserDetails의 password는 암호문이..
선형 검색(Linear Search)과 이진 검색(Binary Search) 항해를 진행하면서 프로젝트를 완성하는 것에 쫓기다보니 자료구조와 알고리즘 관련해서 깊게 공부를 할 수 없었다. 프로젝트를 마치고 지금부터라도 하나하나 알아가보려고 한다. 먼저 검색 알고리즘이란 데이터 집합에서 원하는 값을 가진 요소를 찾아내는 알고리즘이다. 검색 알고리즘에는 선형 검색(Linear Search)과 이진 검색(Binary Search)이 있다. 선형 검색(Linear Search) 데이터가 모인 집합(배열, 리스트 등)의 처음부터 끝까지 하나씩 순서대로 비교하며 원하는 값을 찾아내는 알고리즘으로 선형 검색 또는 순차 검색이라고 한다. 3 4 5 9 7 0 1 6 8 2 데이터를 정렬하거나 건드릴 필요가 없어 난이도가 쉬운 편이지만 데이터의 양이 많아지면 검색에 소요되는 시간도 비례하여 많아..
나는 왜 JPA를 사용했을까? 항해를 진행하면서 아무렇지 않게 당연히? JPA를 사용했다. 왜 사용했는지는... 사실 처음 배웠던게 JPA다. 그러나 많은 ORM중에 나는 왜 굳이 JPA를 사용했는가?에 대해서 깊게 생각해보지 못했다. 이번 글을 작성하면서 ORM과 JPA에 대한 내용을 정리해보려고 한다. ORM(Object-Relational Mapping) 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 객체 모델과 관계형 모델 간에 불일치가 존재한다. ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. 데이터베이스 데이터 Object 필드 객체를 통해 간접적으로 데이터베이스 데이터..