spring

Spring Security에서 전반적인 인증(Authentication) 처리 과정은 위의 같으며 구축하고자 하는 시스템 요구사항에 따라 유연하게 커스터마이징 할 수 있다. 각각의 모듈을 자세히 알아보며 Spring Security의 인증(Authentication) 처리 과정을 알아보자. AuthenticationFilter AbstractAuthenticationProcessingFilter는 사용자의 인증을 처리하기 위한 필터이다. 예를 들어 사용자의 아이디와 비밀번호를 사용하여 인증 처리를 한다고 한다면 다음과 같이 UsernamePasswordAuthenticationFilter를 커스텀하여 인증 처리를 진행할 수 있다. @RequiredArgsConstructorpublic class Jwt..
들어가며내가 만든 API가 항상 정상적으로 동작한다면 좋겠지만 API를 사용하는 클라이언트는 때때로 정상적인 요청을 하지 않을 수 있다. 때문에 API 개발 시 요청 값에 대한 Validation 및 예외 처리를 꼼꼼하게 하여 정확한 오류 내용을 클라이언트에게 전달하는 것이 중요하다고 생각한다. RESTful API 개념과 HTTP Method인 GET, POST, PUT, DELETE에 대한 이해도가 많이 늘었지만 에러가 났을 때 어떻게 처리해야 하는지 어떤 응답을 주어야 하는지에 대해서는 고민이 많이 필요하다. 그렇다면 Spring에서 어떻게 해야 예외를 잘 처리하고 오류에 대한 응답 표준을 정의할 수 있을까? RFC 7807 오류 응답 형식응답 표준에 대한 고민을 하며 찾아본 결과 RFC 7807에..
SpringBoot 2.0부터 HikariCP가 디폴트가 된 이유SpringBoot 2.0 이전 버전까지는 tomcat-jdbc pool을 사용했지만 스프링부트 2.0 이후 버전부터는 HikariCP를 기본으로 사용되도록 변경되었습니다. 위의 성능 그래프를 보시는 것처럼 다른 오픈소스보다 성능적으로 우수하다는 것을 알 수 있습니다. 이로 인해 스프링부트는 애플리케이션 기동 시 더 빠른 초기화 속도와 높은 처리량을 제공할 수 있게 되었습니다. HikariCP가 경량화된 빠른 속도와 높은 성능으로 유명한 이유는 다음과 같습니다.매우 적은 메모리를 사용해 초기화 및 연결 시간이 짧다.빠르게 연결을 생성하고 반환하기 때문에 처리량이 매우 높다.코드 베이스가 작기 때문에 구성이 간단하다.다양한 구성 옵션을 제공해..
개요 API를 개발하다 보면 클라이언트에게 제공해야 하는 Response에 대해 고민하게 됩니다. 프론트엔드 혹은 서버 간의 API 통신에서 HTTP 응답은 클라이언트가 쉽게 이해하고 처리할 수 있는 형태여야 하며, 표준화된 인터페이스를 제공해야 합니다. 이번 포스팅에서는 제가 실무에서 회원 서비스를 개발하면서 얻은 지식을 발전시켜 일관된 응답 포맷을 만들고 스프링 AOP 기술을 활용하여 예외 상황에 따른 HTTP 상태 코드를 제어하는 방법을 정리해보았습니다. 코드를 보기 앞서 Http Response에 대해 알아보겠습니다. Http Response Http Response는 위의 이미지와 같은데요. 각각 하나씩 살펴보겠습니다. Status Line Status line에는 HTTP 버전, HTTP 응..
최근 토이 프로젝트에서만 진행하던 TDD방식을 실무에 적용하기 위해 Eclipse + Maven Project 개발환경에 TDD환경을 구성해 보았다. Spring Boot 프로젝트를 생성하면 junit이 자동으로 세팅되고 @SpringBootTest만 붙여주면 됬는데 우리 회사 프로젝트는 Eclipse 메이븐 프로젝트이기 때문에 스프링 컨테이너를 생성해주고, 생성된 스프링 컨테이너에 빈을 추가해주는 어노테이션을 붙어주어야 됬다.(환경을 구성하면서 TDD와 조금은 친해진거 같다..) 환경 Eclipse + Maven Project Spring & Egov Junit4 진행 순서 라이브러리 추가 테스트 파일 생성 1. 라이브러리 추가 org.springframework spring-test ${spring...
목표 영속성 전이(Cascade) 종류에 대해 알아보기 영속성 전이에 대해 알아보기 고아객체 영속성 전이(Cascade) 종류 ALL(모두적용) PERSIST(영속) REMOVE(삭제) MERGE(병합) REFRESH DETACH 영속성 전이 영속성 전이란? 특정 엔티티를 영속 상태로 만들때 연관된 엔티티도 함께 영속 상태로 만들고 싶을때 사용합니다. public class RentalApplyManage { @Id @GeneratedValue private Long rentalApplyId; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @OneToMany(mappedBy = "rental..
목표 다양한 의존 관계 주입 방법 알아보기 의존 관계 주입 방법 장단점 비교 생성자 주입을 사용해야 하는 이유 의존관계 주입 방법 3가지 필드 주입 수정자 주입 생성자 주입 필드 주입 @Service public class MemberServiceImpl implements MemberService { @Autowired private final MemberRepositoy memberRepositoy; 과거에 많이 이용되는 주입 방법이다. 하지만 필드 주입은 외부에서 접근이 불가능하다는 단점이 존재하는데, 테스트 코드의 중요성이 부각됨에 따라 필드의 객체를 수정할 수 없는 필드 주입은 지양해야된다. 또한 구체 클래스에서 직접 주입하기 때문에 강력한 의존 관계를 갖게 된다. 장점 코드가 간결해진다. 단점..
proGun
'spring' 태그의 글 목록