목차 스프링 부트(Spring Boot)로 개발을 진행할 때, 설정 파일에 정의된 값을 쉽게 주입하기 위해 @Value 어노테이션을 자주 사용한다. 이 어노테이션은 특정 클래스에 값을 주입하여 환경별로 달라질 수 있는 값을 유연하게 관리할 수 있는 유용한 방법을 제공한다. 이 글에선 @Value 어노테이션의 사용법과 함께 주의해야 할 몇 가지 사항에 대해 간단히 살펴보자. 선 요약 기본 사용법: @Value("${property.key}") 형식으로 설정 파일의 값을 주입한다.프로파일 적용 가능: 스프링 프로파일을 사용해 환경별 다른 값을 주입할 수 있다.주입 방식: 필드 주입, 생성자 주입, 세터 주입 중 상황에 맞게 선택하여 사용한다. -> 생성자 주입이 안전하고 테스트에 유리함.@Configurat..
목차 평소에 관성적으로 써오면서도 정확히 무슨 역할을 하는지 몰랐던 애너테이션 몇 개를 정리하고 넘어가려고 한다. 대상은 아래와 같다. @Lazy @LazyCollection @JsonManagedReference @JsonBackReference @JsonIgnoreProperties @JsonProperty @Lazy 스프링 프레임워크를 사용하면 소프트웨어 시작시 애플리케이션 컨텍스트 로드와 함께 등록된 모든 빈들이 생성된다. 따라서 코드의 규모가 커지고 빈의 개수가 많아질수록 필연적으로 메모리 점유율이 올라가고 시작시간이 느려질 수밖에 없는데, @Lazy는 이런 문제를 조금이라도 해결하기 위해 스프링 프레임워크에서 지원하는 애너테이션이다. 해당 애너테이션을 붙인 빈은 자동으로 지연로딩(Lazy Lo..
오늘 아침까지만 해도 그게 그거라고 생각하고 내키는 대로 사용해 왔는데, 문득 굳이 같은 기능을 두 개나 만들었을 리가 없다는 생각이 들어 알아보게 되었다. 사전지식이 필요하다면 한없이 많이 필요하고 아니라면 아니라서, 일단 딱 둘의 공통점과 차이점에 대해서만 정리하고 넘어간다. CascadeType.Remove orphanRemoval = true 공통점 부모 엔티티 삭제시 자식 엔티티도 함께 삭제 차이점 연관관계를 끊어도 자식 엔티티 유지 연관관계가 끊기면 자식 엔티티 삭제
목차 인증이 끝난 사용자를 애너테이션으로 분류하는 구현을 하다가 몇 가지 애너테이션을 만나게 되었다. 우선 (CP로)구현은 끝났는데 뭔지는 알고 넘어가야 할 것 같아서. 하나씩 알아보자. @Documented @AuthenticationPrincipal @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.PARAMETER, ElementType.TYPE}) public @interface SignInUser { } @Documented 해당 애너테이션이 메타 애너테이션으로 설정된 애너테이션을 JavaDoc에 포함시킨다. JavaDoc은 기본적으론 애너테이션에 대해선 문서화를 해주지 않는다고 한다. @AuthenticationPrincipal 인증이 끝난 ..
DI는 특정 객체가 의존할 객체나 메서드를(즉, 의존관계를) 외부에서 주입받는 디자인 패턴이다. 여기서 주입이란 위 그림에서 보듯이 의존성을 사용하려는 객체에게 전달하는 것이라 받아들이면 되며, 디자인 패턴이란 공통적인 문제에 대한 재활용 가능한 솔루션이자 컨셉이라 생각하면 편하다. 또한 DI는 스프링의 핵심 원칙인 IoC(제어 역전)를 구현하는 수단 중 하나인데, DI의 목표가 객체의 설계와 사용이라는 관심사를 분리함으로써 느슨한 관계로 이루어진 앱을 만드는 것이기 때문이다. 이는 코드의 가독성과 재사용성을 크게 높여주는 효과도 가지고 있다. 그렇다면 이렇게까지 주입하려는 의존성이란 무엇일까? 간략하게 알아보자. Dependency Dependency는 의존성, 의존관계라고 번역한다. 나는 처음엔 의존..
지난 글까지 스프링 시큐리티와 그 안에서 인증이 이뤄지는 과정을 살폈다. 2022.09.21 - [Development/Spring] - [Spring]Spring Security 2022.09.22 - [Development/Spring] - [Spring]Spring Security - 인증(Authentication) 구조 [Spring]Spring Security - 인증(Authentication) 구조 지난 글에서 스프링 시큐리티의 구조와 작업 흐름을 간략하게 살펴보았다. 2022.09.21 - [Development/Spring] - [Spring]Spring Security [Spring]Spring Security 스프링 시큐리티는 2003년 발표된 인증(Authent.. gnidinge..
지난 글에서 스프링 시큐리티의 구조와 작업 흐름을 간략하게 살펴보았다. 2022.09.21 - [Development/Spring] - [Spring]Spring Security [Spring]Spring Security 스프링 시큐리티는 2003년 발표된 인증(Authentication), 권한 부여(Authorization) 및 보안 프레임워크이다. 2022년 현재 버전 5까지 나와있으며, 스프링을 기반으로 한 엔터프라이즈 앱 보안의 사실상 표 gnidinger.tistory.com 그중 일반적인 보안 적용의 흐름을 먼저 보고 스프링 시큐리티의 필터를 끼워넣었는데, 이번 글에서는 스프링 시큐리티 필터로 요청이 전달되었을 때의 인증 절차에 대해 알아본다. Spring Security: Authentic..
스프링 시큐리티는 2003년 발표된 인증(Authentication), 권한 부여(Authorization) 및 보안 프레임워크이다. 2022년 현재 버전 5까지 나와있으며, 스프링을 기반으로 한 엔터프라이즈 앱 보안의 사실상 표준이다. 버전 3 기준으로 대략 아래와 같은 모듈 구조를 가지고 있으며, 스프링 시큐리티를 사용하면 즉시 다음과 같은 작업을 지원하기 때문에 다양한 유형(폼 로그인, 토큰 기반, OAuth 2 기반)의 인증 사용자의 역할에 따른 권한 레벨 및 리소스에 대한 접근 제어 TLS 적용 및 민감한 정보 암호화 알려진 보안 공격 차단 다양한 커스터마이징 및 유연한 확장 개발자가 직접 보안 기능을 구현할 수 있음에도 스프링 시큐리티를 사용하는 것이 안전한 선택이 된다. 진도를 더 나가기 전..
지난 글까지 작성한 앱의 API 문서를 만들었다. 2022.09.14 - [개발/Spring] - [Spring]API Documentation - Spring REST Docs 2022.09.14 - [개발/Spring] - [Spring]Controller Slice Test에 Spring REST Docs 적용 2022.09.14 - [개발/Spring] - [Spring]Snippet과 Template을 이용한 API 문서화 2022.09.15 - [개발/Spring] - [Spring]AsciiDoc, Asciidoctor [Spring]AsciiDoc, Asciidoctor 아스키독(AsciiDoc)은 플레인 텍스트 마크업 언어를 사용하는 사람이 읽을 수 있는 문서 포맷이다. 플레인 텍스트(P..
- Total
- Today
- Yesterday
- a6000
- 기술면접
- 스프링
- 알고리즘
- 세모
- RX100M5
- 동적계획법
- 스트림
- 면접 준비
- 야경
- 중남미
- Python
- 리스트
- 여행
- 남미
- spring
- BOJ
- 세계일주
- 자바
- Algorithm
- 유럽
- 지지
- 백준
- java
- Backjoon
- 세계여행
- 맛집
- 칼이사
- 유럽여행
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |