Spring

Spring

스프링 시큐리티 - Method Security

1. 개요 스프링 시큐리티는 method level에서도 접근 제어가 가능하며 Service layer 에서의 보안을 강제할 수 있다. `@PreAuthorize` `@PostAuthroize` `@PreFilter` `@PostFilter` @Configuration @EnableMethodSecurity(prePostEnabled = true, securedEnabled = true) public class MethodSecurityConfig { } 2. 사용 - Spring AOP 이용하여 동작하며, 다음과 같이 사용할 수 있다. @Service public class MyCustomerService { @PreAuthorize("hasAuthority('permission:read')") @Po..

Spring

Spring Boot + Nuxt.js 환경에서의 FCM 웹 푸시 구현 (1/2) - Spring Boot편

👀 1. FCM ? FCM이란 Firebase Cloud Messaging의 약자로써, 메시지를 무료로 보낼 수 있는 메시징 솔루션입니다. 다양한 플랫폼에서 개발하고 FCM backend에 push 요청만 보내면 FCM backend에서 플랫폼 별로 push를 전송합니다. 👀 2. FCM 사용하는 이유 다양한 플랫폼에서 push를 보내기 위해선 플랫폼 환경별로 push 서비스 개발 필요합니다. FCM은 중간에서 플랫폼에 종속되지 않고도 push 전송 가능합니다. 서버로부터 push 알림을 받기 위해서는 client가 서버에 계속 접속해야 합니다. 이는 전력 사용, 네트워크 효율 문제를 야기합니다. FCM은 이를 어느 정도 해결해줄 수 있다는 점이 장점입니다. 🪜 3. Spring Boot - FCM 설정..

Spring

[Mybatis] Mybatis에서 DTO로 분리하기

개요 현재 회사에서는 하나의 객체를 만들어 모든 레이어에서 사용하거나 Controller Layer에서 HashMap으로 받고 있습니다. 추가적으로 제약조건으로 Post Method만 허용합니다. 회원 (코멘트) API를 예로 들어 DTO로 분리해 보겠습니다. AS-IS 1. 회사에서 사용하는 VO (모든 레이어에서 사용) @Getter @Setter @AllArgsConstructor @NoArgsConstructor @Builder @JsonNaming(UpperSnakeCaseStrategy.class) public class UserVO { private Long USER_ID; private String NAME; private String COMMENT; private String EMAIL;..

Spring

@Transactional Annotation 정리

0. 트랜잭션이란 ? 트랜잭션이란 DB의 상태를 변환시키는 논리적 단위나 일련의 연산을 말합니다. 하나의 트랜잭션은 반드시 Commit 되거나 Rollback 되어야 합니다. 트랜잭션의 성질 (ACID 특징) 원자성(Atomicity) : 트랜잭션 연산은 DB에 모두 반영되던지 혹은 전혀 반영되지 않아야 한다. 일관성(Consistency) : 트랜잭션 성공 후에는 일관성 있는 DB로 변한다. 독립성(Isolation) : 하나의 트랜잭션 실행에 다른 트랜잭션 연산이 끼어들 수 없다. 영속성(Durability) : 트랜잭션 성공 후에는 영구적으로 반영되어야 한다. 트랜잭션의 격리 수준 - 격리수준은 아래로 갈 수록 더 높아진다. READ UNCOMMITED : 아직 commit 되지 않은 데이터에 대해..

Spring

빈 등록 어노테이션 @Configuration, @Component, @Bean에 대해서

스프링 빈을 등록하는 방법으로 @Configuration, @Component, @Bean이 있습니다. 이러한 어노테이션에 대해서 알아보겠습니다. 1. @Configuration 어노테이션 빈을 수동으로 등록하기 위해서 @Bean 어노테이션을 사용합니다. 보통 수동으로 여러 개 등록하는 경우 @Configuration 어노테이션과 함께 사용합니다. 메소드 이름을 갖고 빈 이름이 결정되기 때문에 중복된 이름으로 빈을 생성하지 않도록 주의합니다. @Bean 어노테이션은 수동으로 등록해 주어야 하는데, 특히 개발자가 직접 제어 불가능한 라이브러리를 활용하고자 할 때 사용합니다. 1개의 객체만 생성하여 여러 클래스가 사용함으로써 메모리를 아낄 수 있다는 장점이 있습니다. 동작방식 1. @Configuration..

Spring

세션 vs JWT

[출처] - 얄팍한 코딩사전 https://youtu.be/1QiOXWEbqYQ 1. 인증, 인가 차이 (Authentication vs Authorization) - 인증(Authentication): 쉽게 말해서 로그인, 이 사이트에 가입된 회원임을 확인하는 것 - 인가(Authorization): 한 번 "인증"을 받은 사용자가 서비스 여러 기능 사용 시 로그인 되어있음을 알아보고 허가를 해 주는 것 ex) 페이스북에서 로그인으로 인증 후 내 친구목록을 확인하는 행위와 같이 내 계정으로'만' 할 수 있는 것을 보고 허가를 해 주는 것 즉, 로그인이 유지되는 상태에서 일어나는 일 - 얄팍코딩에서는 'Authorization'을 기억하기 쉽게 로그인 된 사용자를 환영하는 '어서와'라고 부르기도 합니다 ..

Spring

Spring Boot Rest API 이메일 인증

이번 포스팅에서는 REST API로 스프링 부트 이메일 인증을 해보겠습니다. 인증 번호를 받아서 입력하는 것이 아닌 URL 클릭 방식으로 하겠습니다. 1. https://www.google.com/settings/security/lesssecureapps 보안 수준 낮은 앱의 액세스 허용 2. 의존성 추가 // 이메일 인증 implementation 'org.springframework.boot:spring-boot-starter-mail' 3. application.yml 설정 spring: mail: host: smtp.gmail.com port: 587 username: password: properties: mail: smtp: auth: true starttls: enable: true requ..

mers
'Spring' 카테고리의 글 목록