부트캠프 개발일기123 63일차: Spring Security (2) 웹요청 처리흐름, Filter Chain ❯ 보안이 적용된 웹 요청의 일반적인 흐름 사용자가 리소스를 요청하면 적절한 사용자인지 확인(인증)하고, 인증된 사용자에 대해서 접근 권한이 있는지 검증(인가)한다. 사용자의 요청이 엔드포인트(Controller 등)를 거쳐서 리소스에 도달하기 전에 위 그림과 같이 인증관리자 혹은 접근 결정 관리자같은 컴포넌트가 웹 요청을 가로채서 인증/인가를 수행하게 된다. 이처럼 서블릿 기반 애플리케이션에서 애플리케이션 엔드포인트에 요청이 도달하기 전에 요청을 가로채서 처리를 할 수 있도록 하는 것이 서블릿 필터(Servlet Filter)이다. 서블릿 필터는 인터페이스 형태로 정의되어 있으며 doFilter() 메서드 호출을 통해 필터 체인을 형성한다. 서블릿 필터는 하나 이상의 필터를 연결해서 필터 체인(Filt.. 2023. 5. 15. 62일차: Spring Security ❯ Spring Security Spring MVC 기반 애플리케이션의 인증(Authentication)과 인가(Authorization)를 지원하는 보안 프레임워크이다. Spring Security를 통해 다양한 유형(폼 로그인 인증, 토큰 기반 인증, OAuth 2 기반 인증 등)의 사용자 인증 기능을 적용할 수 있고 애플리케이션 사용자 Role따라 권한을 다르게 적용할 수 있으며 데이터 암호화, SSL적용 등을 할 수 있다. Principal(주체): 애플리케이션에서 작업을 수행할 수 있는 사용자, 시스템 등을 의미하며 일반적으로 인증된 사용자 계정 정보를 의미함 Authentication(인증): 사용자 본인이 맞음을 증명하는 절차를 의미함. 사용자 식별을 위한 정보를 Credential(신원 증.. 2023. 5. 12. 61일차: 인증/보안 기초 웹사이트에서 보안은 중요한 요소 중 하나이다. Spring에서는 Spring Security를 통해 보안 관련 기능을 지원한다. 그 전에 인증과 보안에 대한 기초적인 내용에 대해 학습하고자 한다. ❯ HTTPS HTTPS(Hyper Text Transfer Protocol Security Socket layer)의 약자이다. HTTP요청에 SSL 혹은 TLS 알고리즘을 이용해 암호화를 적용해서 전송시키는 방법이다. 기밀성(제3자가 데이터를 볼 수 없는것)과 무결성(데이터 전송중에 수정되지 않는것)이 보장된다. 암호화 서버와 클라이언트가 합의한 방법을 통해 데이터를 암호화해서 주고받는것을 의미한다. 따라서 제3자는 주고받는 데이터를 탈취할 수 없다.(내용을 알아볼 수 없다.) HTTPS에서는 암호화를 위해.. 2023. 5. 10. 60일차: Section 3 회고 하루하루 날짜가 지나갈수록 시간이 더 빠르게 흘러가고 있는 것 같다. 특히 이번 기간 동안 집안에 큰일이 있어서 더 정신없는 시간을 보냈다. 이번일을 겪으면서 부모님과 함께 보낼 수 있는 시 간이 무한하지 않다는 것을 상기할 수 있었다. 지금 하고 있는 과정을 잘 수료하고, 새로운 커리어를 시작하는 모습을 하루빨리 보여드리고 싶다. 시간이 된다면 하반기에는 부모님이랑 여행도 한번 다녀올 계획이다. 우선 그때까지는 다시 지금 부트캠프에 집중해보고자 한다. Keep 이번 기간 동안 만족스러웠던 것은 커리큘럼 그 자체였다. Section2와는 달리 강의 자료가 더 체계적으로 구성되어 있다는 느낌을 받았고 강사님도 정말 열정이 넘치셔서 많은 것을 배울 수 있었다. 심지어 자발적으로 초과근무를 하시면서까지 수강생.. 2023. 5. 10. 59일차: 빌드 / 실행 / 배포 ❯ 애플리케이션 빌드(Build) 이때까지 실습을 통해 구현한 애플리케이션은 로컬 환경에서 실행시켜 정상 작동되는 것을 확인하였다. 실제로 애플리케이션을 개발하고 로컬환경이 아닌 서버 환경에서 실행시키기 위해서는 빌드 툴을 사용하는 방법을 알고 있어야 한다. 여러 가지 빌드 방법 중 Gradle을 이용해 소스코드를 빌드하는 방법을 학습하고자 한다. IntelliJ IDE를 이용한 빌드 Spring Boot를 이용한 애플리케이션의 경우 Spring Boot 자체에서 Gradle 빌드 툴을 이용해 애플리케이션을 빌드할 수 있는 플러그인을 지원한다. :bootJar :build task를 통해 build/libs경로에 Jar파일을 생성할 수 있다. :build task -> Gradle에서 빌드와 관련된 모든.. 2023. 5. 8. 58일차: Spring Rest Docs 사용을 위한 build.gradle 설정 Spring Rest Docs 사용을 위해서는 build.gradle에 다음과 같은 설정을 추가해야한다. 버전이나 일부 내용은 사용 환경이나 개발 방향에 따라 변경될 수 있다. // (1) plugins { id "org.asciidoctor.jvm.convert" version "3.3.2" } // (2) ext { set('snippetsDir', file("build/generated-snippets")) } // (3) configurations { asciidoctorExtensions } // (4) dependencies { testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc' // (4-1) asciidocto.. 2023. 5. 4. 이전 1 ··· 8 9 10 11 12 13 14 ··· 21 다음