Spring Framework

Spring Framework

필터(Filter) & 인터셉터(Interceptor) 란?

필터 필터는 디스패처 서블릿에 요청이 전달되기 전/후에 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다. 필터는 스프링 범위 밖에서 처리된다. 즉, 스프링 컨테이너가 아닌 tomcat과 같은 서블릿 컨테이너에 의해 관리가 된다. 인터셉터 Spring이 제공하는 기술로서 스프링 컨테이너에서 관리된다. 디스패처 서블릿(Dispatcher Servlet)이 컨트롤러를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 기능을 제공한다. https://mangkyu.tistory.com/173 [Spring] 필터(Filter) vs 인터셉터(Interceptor) 차이 및 용도 - (1) Spring은 공통적으로 여러 작업을 처리함으로써 중복된 코드를 제거할 수 있도록 많은 기능들을 지원하고 ..

Spring Framework

RestTemplate 과 WebClient

현재 회사에서는 RestTemplate을 사용 간편하게 Rest 방식 API를 호출할 수 있는 Spring 내장 클래스 Rest API 서비스를 요청 후 응답 받을 수 있도록 설계되어있으며 HTTP 프로토콜의 메소드(ex. GET, POST, DELETE, PUT)들에 적합한 여러 메소드들을 제공 Spring Framework 5부터는 WebFlux 스택과 함께 Spring은 WebClient 라는 새로운 HTTP 클라이언트를 도입하여 기존의 동기식 API를 제공할 뿐 만 아니라 효율적인 비차단 및 비동기 접근 방식을 지원 https://tecoble.techcourse.co.kr/post/2021-07-25-resttemplate-webclient/ RestTemplate과 WebClient 이 글은 ..

Spring Framework

트랜잭션, REQUIRES_NEW

"회원 가입을 시도한 로그를 남기는데 실패하더라도 회원 가입은 유지되게 해주세요." -> In my case: 인터페이스 로그를 남기는데 실패하더라도, 인터페이스 다른 프로세스들은 진행되도록 실행 @Transactional의 propagation 속성을 통해 피호출 트랜잭션의 입장에서는 호출한 쪽의 트랜잭션을 그대로 사용할 수도 있고, 새롭게 트랜잭션을 생성할 수도 있다. - REQUIRES_NEW : 부모 트랜잭션을 무시하고 무조건 새로운 트랜잭션이 생성 적용한 예시 코드 @Service @Transactional(propagation = Propagation.REQUIRES_NEW) public class IfExecuteLogService { ... https://hyuuny.tistory.com/..

Spring Framework

[Spring] 의존성 주입, DI(Dependency Injection)

의존성 주입(DI) 이란? 객체가 필요로하는 어떤 객체를 생성자 혹은 세터(Setter)를 통해서 주입하는 것을 말한다. 의존관계는 new 라는 키워드를 통해 생성된다. 코드를 짤 때 이런 강결합을 일으키는 요소를 많이 사용하기 시작하면 나중에 큰 유지보수 비용이 든다. 의존성 주입은 IoC(의존성 역전) 원칙 하에 객체 간의 결합을 약하게 해주어 유지보수에 용이한 코드를 만들어 준다. 의존성이 줄어든다. 앞서 설명했듯이, 의존한다는 것은 그 의존대상의 변화에 취약하다는 것이다.(대상이 변화하였을 때, 이에 맞게 수정해야함) DI로 구현하게 되었을 때, 주입받는 대상이 변하더라도 그 구현 자체를 수정할 일이 없거나 줄어들게 된다.

Spring Framework

[Spring Security] 회원가입, 로그인 구현(2) - 회원가입

이전 게시물에서 로그인 기능을 구현했다. 이제 회원가입을 구현해보자. 먼저 회원가입시 받을 정보들을 DTO로 구성했다. 그리고 builder를 사용해 MemberEntity에 저장했다. @Setter public class MemberRegDTO { private String email; private String pass; private String name; public MemberEntity ent(PasswordEncoder pe) { return MemberEntity.builder().email(email).pass(pe.encode(pass)).name(name).build(); } 그리고 ServiceProcess에 회원가입을 위해 DTO를 저장시키는 메서드를 구성했다. 참고로 Member..

Spring Framework

[SpringBoot] CSRF 란?

CSRF 란? Cross-Site Request Forgery의 약자로 크로스 사이트 요청 위조 공격이다. 1. 인증/인가 - 인증 : 사용자의 정당성 확인 - 인가 : 사용자의 리소스 접근에 대한 제어 2. 세션 관리 - Session을 이용한 공격에 대한 보호, Session 라이프 사이클 제어 3. CSRF 방지 - CSRF(Cross-Site Request Forgery)로부터 보호 외의 다양한 기능이 있다.

Spring Framework

[Spring Security] 회원가입, 로그인 구현(1) - Entity 생성

SpringBoot프로젝트에서 회원가입 기능을 구현하고 로그인 기능을 구현해 보고자 한다. 첫 단계로 회원 entity를 구성해주었으며 db는 mariaDB를 이용했다. @SequenceGenerator(name = "seq_gen_mem", sequenceName = "seq_mem", allocationSize = 1, initialValue = 1) @AllArgsConstructor @NoArgsConstructor @Builder @Getter @Table(name = "member") @Entity public class MemberEntity { @GeneratedValue(generator = "seq_gen_mem", strategy = GenerationType.SEQUENCE) @Id..

꿈꾸는야오옹
'Spring Framework' 카테고리의 글 목록