본문 바로가기

Spring9

[Spring] 스프링 시큐리티 이해하기 스프링 시큐리티란? 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한)을 담당하는 프레임워크이다. 만약 시큐리티를 사용하지 않으면 자체적으로 세션을 체크하고 redirect 등을 해야 한다. 스프링 시큐리티는 보안과 관련해서 체계적으로 많은 옵션들로 이를 지원해준다. 스프링 시큐리티는 Filter 기반으로 동작하기 때문에 Spring MVC와 분리되어 관리 및 동작한다. 보안 관련 용어 더보기 접근 주체(Principal) : 보호된 대상에 접근하는 유저 인증(Authenticate) : 현재 유저가 누구인지 확인(ex. 로그인) 애플리케이션의 작업을 수행할 수 있는 주체임을 증명 인가(Authorize) : 현재 유저가 어떤 서비스, 페이지에 접근할 수 있는 권한이 있는지 검사 권한 : .. 2021. 8. 21.
[Spring] 기본 설정 + Spring Security 설정 새로운 프로젝트를 생성할 때마다 해줘야 하는 기본설정들을 기억하기 위해 작성하는 글이다. web.xml 설정이 아닌 자바 설정이고 Spring Security 설정 또한 포함하여 작성하였다. +JDBC 더보기 pom.xml 4.0.0 org.edwith.webbe securityexam 0.0.1-SNAPSHOT war securityexam Maven Webapp http://www.example.com UTF-8 1.8 1.8 false 5.2.2.RELEASE junit junit 4.12 test javax.servlet javax.servlet-api 3.1.0 provided javax.servlet.jsp javax.servlet.jsp-api 2.3.2-b02 provided javax.s.. 2021. 8. 20.
[Spring] MockMVC Test Web API를 많이 작성하다보면 웹 애플리케이션을 실행하고 브라우저를 열어서 테스트할 URI를 입력하고 다시 코드를 작성하고 웹 애플리케이션을 재시작하는 등을 반복하게 된다. 이때 Web API를 실행하는 실행하는 시간보다 웹 애플리케이션을 실행하고 종료하는 시간이 더 오래걸리는 상황이 발생하게 되는데 여기에는 문제점이 있다. 1. 개발자의 수동 테스트 2. 코드 수정 후 서버를 재시작하고 테스트 이런 문제를 해결하기 위해 다음과 같은 방법을 사용할 수 있다. 1. JUnit 테스트 2. MockMVC 테스트 이 글에서 MockMVC을 이용하여 Web API테스트를 직접 해보려고 한다. 1. MockMVC란? 우리는 웹 애플리케이션을 작성한 후, 해당 웹 애플리케이션을 Tomcat이라는 이름의 WAS(.. 2021. 8. 2.
[boostcourse] 3. 웹 앱 개발 예약 서비스 생각해보기 #2 ~ #3 #2 Spring Test 1) TDD가 무엇인지 알아보세요. TDD(TestDrivenDevelopment)는 코드작성보다 테스트 작성을 먼저하고, 이 테스트를 통과하기 위한 코드를 작성하는 과정을 반복하면서 코드가 제대로 동작하는지에 대한 피드백을 적극적으로 받아들이는 개발 방법이다. 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며 애자일 방법론 중 하나인 eXtreamProgramming의 Test-First개념에 기반을 둔 단순한 설계를 중요시한다. TDD의 대표적인 Java 단위 테스트 프레임워크 'JUnit' 2) 스프링 프레임워크를 사용하면 객체의 생성을 컨테이너가 한다고 했습니다. 그렇다면 컨테이너가 관리하는 객체(Bean)은 어떻게 테스트를 수행하면 될까요? 테스트 클래스에 @RunW.. 2021. 8. 1.
[boostcourse] 3. 웹 앱 개발 예약 서비스 생각해보기 #1 #1 Spring Core 1) 스프링은 프레임워크입니다. 프레임워크와 라이브러리는 어떤 차이가 있을까요? Framework 프레임워크는 뼈대나 기반구조를 뜻한다. 개발할 때 필수적인 코드, 알고리즘 등과 같이 어느 정도의 구조를 제공해주기 때문에 프레임워크를 사용하는 개발자는 프레임워크의 뼈대 위에서 코드를 작성하여 프로그램을 개발하면 된다. 즉, 프레임워크는 완성된 제품이 아닌 완성된 제품을 만들기 위해 개발자를 도와주는 역할을 한다. 이를 소프트웨어적으로 정의하면 소프트웨어의 특정 문제를 해결하기 위해 상호 협력하는 클래스와 인터페이스의 집합인 것이다. Library 라이브러리는 특정 기능에 대한 도구 또는 함수들의 집합이다. 개발자가 어떤 기능을 수행하기 위해서 필요한 기능을 제공해주는 역할을 한.. 2021. 7. 30.