본문 바로가기

Dev/Spring Boot5

Spring Security 동작 원리 이해하기 Spring Security : 스프링 기반 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크 Spring Security 관련 기본 용어 Authentication (인증) : 해당 사용자가 본인이 맞는지 확인하는 절차 Authorize (인가) : 현재 사용자가 어떤 서비스 및 페이지에 접근할 수 있는 권한이 있는지 확인 Authorization (권한) : 인증된 주체가 애플리케이션의 동작을 수행할 수 있도록 허락되어 있는지를 결정 Principal (접근 주체) : 보호받는 Resource에 접근하는 대상 Credential (비밀번호) : Resource에 접근하는 대상의 비밀번호 Spring Security는 기본적으로 인증 절차 이후 인가 절차를 진행하게 되며, 인가 과정에서 해당 리소스.. 2022. 11. 20.
Spring Boot + JPA 회원가입 유효성 검사 회원가입 시 사용자가 입력한 정보가 서버로 전송되기 전에 특정 규칙에 맞게 입력했는지, 이미 사용하고 있는 닉네임이나 이메일은 아닌지 확인하는 검증 단계가 필요하다. 참고 - @Validated : 스프링 전용 검증 애너테이션 - @Valid : 자바 표준 검증 애너테이션 클라이언트 검증과 서버 검증을 적절히 섞어서 사용하되, 최종적으로 서버 검증은 필수이다. 검증 로직을 모든 프로젝트에 적용할 수 있게 표준화한 것이 바로 Bean Validation이다. ✓ Validation 유효성 검사하기 1. build.gradle 설정하기 validation 의존성을 추가한다. implementation 'org.springframework.boot:spring-boot-starter-validation' 2... 2022. 10. 7.
Spring Boot - MVC 패턴과 Layered Architecture MVC 패턴이란, MVC란 Model, View, Controller의 약자로 애플리케이션을 3개의 역할로 구분한 개발 방법론이다. Model - 데이터베이스를 다루는 로직이다 - 데이터와 View를 분리한다 - View와 Controller에 관련된 코드를 작성하지 않는다 View - UI와 관련된 코드 - 화면에 출력되는 내용 - 사용자가 보는 페이지 - 클라이언트 html, css, javascript 관련 Controller - Model과 View를 중간에서 제어한다 - 사용자가 접근한 URL에 따라 요청사항을 파악한다 - 요청에 맞는 데이터를 Model에 의뢰한다 - 데이터를 View에 반영하여 사용자에게 전달한다 Spring에서 제공하는 Spring MVC의 주요 구성요소 또한 Model, .. 2022. 10. 6.
Spring Annotation - 스프링 어노테이션 정리 Spring Annotation @Controller 컨트롤러에 포함된 로직에서는 애플리케이션의 사용자 또는 클라이언트가 입력한 값에 대한 응답을 수행한다. 특별한 경우를 제외한 모든 요청은 컨트롤러를 통해 진행돼야 한다. @RestController Spring에서 Controller 중 View로 응답하지 않는 Controller를 의미한다. method의 결과를 JSON 형태로 반환한다. @Service Service Class에서 쓰인다. 비즈니스 로직을 수행하는 Class라는 것을 나타내는 용도이다. @Configuration @Configuration을 클래스에 적용하고 @Bean을 해당 Class의 method에 적용하면 @Autowired로 Bean을 부를 수 있다. @Repository .. 2022. 9. 20.
Java Build Tool - Maven, Gradle 빌드 자동화 도구는 프로젝트에서 필요한 파일들을 자동으로 인식하여 빌드해준다. 뿐만 아니라 빌드 전에 프로그램 개발이 제대로 되었는지 소스 코드를 컴파일, 테스트, 분석하는 기능도 갖고 있다. 프로젝트의 정보 관리, 테스트 빌드, 배포 등의 작업도 진행한다. 외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트 관리를 해주는데, 이 기능이 우리가 빌드 자동화 도구를 사용하는 가장 주된 목적이라고 할 수 있다. 자바의 대표적인 빌드 도구에는 Ant, Maven, Gradle 세 가지가 있다. 1. Maven Maven은 자바의 대표적인 관리 도구였던 Ant를 대체하기 위해 개발되었다. 프로젝트의 외부 라이브러리를 쉽게 참조할 수 있도록 porm.xml 파일에 명시하여 관리하며, 참조한 외부 라이브러리에.. 2022. 8. 3.