본문 바로가기

전체 글

(39)
[Spring Security][회원가입 및 로그인 예제 5/9] Web Security Configuration 설정 들어가며... 이번 시간에는 Spring Security Configuration 에 대해서 알아보겠습니다. web.xml 또는 Spring MVC의 security-context.xml 에 접속할 페이지의 권한 설정 등을 할 수도 있으나 이런 모든 설정들을 Java 코드 기반으로도 할 수 있습니다. Java 코드 방식을 사용하려면 Spring Security에서 이미 만들어 놓은 "WebSecurityConfigurationAdapter"를 상속받아 필요한 기능들을 사용자가 구현하여 주면 됩니다. 물론 아무런 설정을 하지 않으면 Spring Security의 디폴트 형상으로 동작할 것입니다. Table of Contents SecurityConfig.java 구현 WebSecurityConfigurat..
[Spring Security][회원가입 및 로그인 예제 4/9] Service Layer 구현 들어가며... 지난 글에서는 Repository 부분을 구현하였습니다. 보통 Repository나 Dao(Data Access Object)의 경우는 SQL과 매핑되는 인터페이스들을 정의하고 이렇게 매핑된 SQL문들을 이용하여 실제 필요한 데이터들에 후처리 또는 Policy(정책)들을 적용시키고자 할 때 Servie Layer를 두개 됩니다. 간단한 작업의 경우에는 Repository에서 반환되는 데이터만으로도 충분하지만 번거롭더라도 되도록이면 Repository(또는 Dao)와 Service 를 분리하여 구현하는 습관을 가지는 것이 좋다고 봅니다. 이번 글에서는 Account와 Role과 관련된 Repository를 이용하는 Service Layer를 구현하고 Spring Security의 UserDe..
[Spring Security][회원가입 및 로그인 예제 3/9] Repository 생성 (JPA : Query Mapping) 들어가며... 이전 글에서 테이블을 매핑할 Model Object를 생성하였습니다. 이번 글에서는 JpaResository를 이용하여 물리적인 데이터베이스의 ACCOUNT, ROLES 테이블에서 Query를 수행한 후 반환되는 데이터를 Account, Role Object Class에 담아주는 역할을 하는 Repository 부분을 살펴보도록 하겠습니다. 추가적인 SQL을 추가하지 않는 이상 솔직히 구현하는 부분은 별다른게 없으나 복잡한 SQL문을 수행하기 위해서는 Hibernate(Spring Data JPA)에서 정의한 사용법을 익히는 것이 중요합니다. ※ 정리 : Model을 생성하는 작업이 Entity Class와 데이터베이스의 테이블을 Mapping하는 작업이였다면 Repository 생성부분은..
[Spring Security][회원가입 및 로그인 예제 2/9] Model 생성 (JPA : Object Mapping) 들어가며... Form 기반 Spring Security 연재글의 첫번째로 Database에 저장된 데이터와 Mapping되는 Object인 Account, Role 두개의 class를 구현하도록 하겠습니다. Database연동은 MyBatis가 아닌 Spring Data JPA를 사용하였습니다. Table of Contents JPA란? 의존성 라이브러리 추가 Account.java 구현 Role.java 구현 JPA란 Java Persistence API의 약자로 간략하게 정의하면 관계형 데이터베이스의 데이터를 Object로 Mapping하는 기술 명세라고 생각하면 될 듯 합니다. JPA는 Object Mapping에 대한 기술 명세만 제공하며 이를 바탕으로 실제로 기능을 구현한 라이브러들이 있는데 ..
[Spring Security][회원가입 및 로그인 예제 1/9] Spring Security 및 프로젝트 개요 들어가며... Spring Security를 사용하여 간단한 로그인 및 회원가입 어플리케이션 구현을 진행해 보려 합니다. 전체 어플리케이션의 내용은 Spring Security의 내용 보다 다른 기술에 대한 내용이 많아질 듯 하지만 되도록 해당 기술들에 대해서도 간략하게 정리하면서 진행하고자 합니다. Table of Contents Spring Security란? 어플리케이션 개요 사용된 기술 및 항목 정리 Spring Security란? 간략하게 정의하면 Spring Security란 Java 기반으로 구현된 인증(Authentication) 및 권한(Authorization)을 관리하고 이를 사용자가 Customize할 수 있도록 작성된 프레임워크입니다. HTTP 요청에 대한 인증 및 인증된 요청(또..
[Spring Boot][H2 Database 연동 2/2] H2 Console 사용 및 설정 들어가며... 지난번 포스팅에 이어 이번에는 H2 database 및 JPA 설정 방법에 대해 알아보도록 하겠습니다. Table of Contents H2 console 사용하기 H2 database 설정 이전글 참조 : 2020/03/10 - [Programming/Spring Boot] - [Spring Boot][H2 Database 연동 1/2] Sample Project [Spring Boot][H2 Database 연동 1/2] Sample Project 들어가며... 벡엔드 시스템을 구축하면서 빼놓을 수 없는 것 중에 하나가 Database 연동일 것입니다. 본 글에서는 Database중 관계형 database(RDBMS) 중 간단하게 테스트 또는 Feasibility 프로젝트를 수행할 때...
[Spring Boot][H2 Database 연동 1/2] Sample Project 들어가며... 벡엔드 시스템을 구축하면서 빼놓을 수 없는 것 중에 하나가 Database 연동일 것입니다. 본 글에서는 Database중 관계형 database(RDBMS) 중 간단하게 테스트 또는 Feasibility 프로젝트를 수행할 때 사용하기 좋은 H2 database 연동에 대해서 알아보도록 하겠습니다. Table of Contents Project Overview H2 database? Model 생성 Repository 구현 Service 구현 Controller 구현 Project Overview 본 글에서는 사용자 정보를 H2 database에 저장(추가), 조회, 삭제하는 매우 간단한 프로젝트를 진행하면서 Spring Boot에서 database와 연동하는 방법에 대해서 알아볼 것입니다..
[Elasticsearch] Analysis & Analyzer 들어가며... Elasticsearch의 Analyzer란 Full-Text Search를 위한 방법을 정의하는 것으로 document를 저장할 때 field의 mapping type이 "text"일 경우 이에 대한 검색을 용이하게 하기 위함입니다. 입력된 text의 값을 크게 "Character Filters", "Tokenizer", "Token Filter" 3단계에 걸쳐 역색인(Inverted Index)을 함으로써 전문 검색(Full-Text Search)을 용이하게 합니다. 별다른 설정을 하지 않을 경우 standard analyzer가 설정되며 데이터의 특성에 따라 사용자가 설정할 수도 있습니다. 1차적으로 Elasticsearch에 기본적으로 built-in된 Analyzer들을 살펴보도록..