- ORM
- AWS
- 문자열
- spring boot
- 데이터베이스
- jpa
- join
- session
- Django
- mysql
- 스프링
- PYTHON
- Git
- @transactional
- DI
- string
- spring security 6
- 스프링부트
- SSL
- select
- 프로그래머스
- 자바
- sql
- spring
- 1차원 배열
- spring mvc
- springboot
- nginx
- Docker
- java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록Java (80)
개발하는 자몽
Notice Spring Boot 3.2.5, Spring Security 6.2.5 기반으로 작성한 글입니다. 아래 포스팅들을 먼저 보면 좋습니다.Spring Security 6 - Architecture → Security Exception 처리하기[Spring Security] 토큰 기반 로그인/로그아웃 구현하기 이 글의 목표는 Spring Security에서 토큰 기반 인증을 진행할 때 발생한 예외를 `@RestControllerAdvice`로 처리하는 것입니다. 시큐리티 예외 처리 구현Spring Security에서 예외 처리는 다음과 같은 아키텍처로 이루어진다. FilterChainSpring Security는 `FilterChain`으로 구성되어 있으며, 각 필터는 요청을 처리하거나..
Notice Spring Boot 3.2.5, Spring Security 6.2.5 기반으로 작성한 글입니다. 지난 포스팅에서 이어집니다.[Spring Security]토큰 기반 로그인/로그아웃 구현하기 역할과 권한사용자의 역할(role)과 권한(permission/authority)을 구현하여 기능 접근에 제약을 둘 수 있다. 만일 권한이 없는 기능에 접근하면 403 Forbidden이 발생한다. 역할 및 권한 구현 시 다음과 같은 것들을 고려해야 한다. 한 역할은 여러 개의 권한을 가질 수 있다.여러 명의 사용자는 여러 개의 역할을 가질 수 있다. → 다대다 관계역할을 하나의 Entity로 두어 구현할 수 있지만, 이 경우에 고려할 것이 많아진다. 다대다 관계 매핑 → `@ManyToMany`중..
Notice Spring Boot 3.2.5, Spring Security 6.2.5 기반으로 작성한 글입니다. Notice 24.07.06 로그인 구현 부분 `JwtAuthenticationFilter` 잘못된 내용 수정 Spring Security Authentication ArchitectureSpring Security를 기반으로 보안 관련 기능을 구현하기 위해서는 위의 그림을 이해해야 한다. 아래는 로그인을 예시로 한 Spring Security 인증 과정이다. 1. 사용자가 로그인 정보와 함께 인증을 요청한다. 2. `AuthenticationFilter`가 요청을 가로채어 인증에 사용될 UsernamePasswordAuthenticationToken 객체를 생성한다....public ..
Spring Security 6 - Architecture 공식 문서를 번역했습니다. 필요에 의해 설명을 추가한 부분도 있습니다. Architecture :: Spring SecurityThe Security Filters are inserted into the FilterChainProxy with the SecurityFilterChain API. Those filters can be used for a number of different purposes, like authentication, authorization, exploit protection, and more. The filters are executed in a specdocs.spring.io 🔖목차🔖Spring Security..
스프링 부트 - 핵심 원리와 활용 | 김영한 - 인프런김영한 | 실무에 필요한 스프링 부트는 이 강의 하나로 모두 정리해드립니다., 백엔드 개발자를 위한 스프링 부트 끝판왕! 실무에 필요한 내용을 모두 담았습니다. [임베딩 영상] 김영한의 스www.inflearn.com외부설정과 프로필1 오랜만에 Spring을 공부하고 있는데 설정 분리 등을 다 잊어버린 것 같아서 복기 겸 간단하게 정리한다. DB 설정값을 코드 내부가 아닌 개발 서버와 운영 서버에 `application.properties`와 같은 파일을 두어 설정을 주입할 수 있다. 하지만 각 서버에 저장된 설정 파일을 관리하거나 변경 이력을 확인하기 어렵다. 이러한 문제점은 설정 파일을 프로젝트 내부에 포함해서 관리하여 해결할 수 있다. 설..
아래 블로그 글을 참고하여 정리했습니다. Spring DeleteAllBy...In 호출시 에러 ( TransactionRequiredException ) 문제 상황 : deleteAllByIdxIn 호출 시 entitymanager가 왜 없을까? JPA OSIV라면 기본적으로 트랜잭션 범위는 서비스 단까지 있을테고, entity manager는 생성됐을 것이다. 그런데 왜 아래와 같은 에러가 났을까 happyer16.tistory.com 상황 에러 문구 javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably proce..
build.gradle plugins { id 'java' id 'org.springframework.boot' version '3.1.0' id 'io.spring.dependency-management' version '1.1.0' } group = 'com.jaamong' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { ... //querydsl implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' an..
findById() 메서드로 L엔티티를 조회하고 가져온 엔티티의 getter 메서드에 접근했더니 아래와 같은 에러가 발생했다. org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role 위 에러는 엔티티는 잘 가져왔지만, 이후 해당 엔티티를 통해 어떤 메소드를 호출하려고 할 때 이미 영속성 컨텍스트가 닫혀서 지연로딩을 할 수 없을 때 발생한다. 상황 application.yml ... spring.jpa.open-in-view=false ... spring.jpa.open-in-view 옵션에 관하여는 이 글을 참고하자 ( https://velog.io/@dnwlsrla40/JPA-Open-In-Vi..
Spring Data JPA를 사용하여 만든 업데이트 API를 테스트하다가 변경이 아닌 새롭게 생성되는 것을 확인했다. 이와 관련하여 무엇이 문제였는지, 어떻게 해결할 수 있는지 작성해 보자. 상황 Article Entity import jakarta.persistence.*; import lombok.*; @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity @Table(name = "articles") public class Article { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String writer; private Strin..
이전에 패키지 구조에 관한 글을 쓴 적이 있다. [Spring Boot] 패키지 구조 여러 글을 찾아봤는데 크게 두 가지 방식으로 패키지 구조를 구성한다. 도메인형 패키지 구조 계층형 패키지 구조 개발의 규모나 성격, 회사에서 진행하는 방식에 따라 정해지는 것으로 보인다. backend-jaamong.tistory.com 요즘 들어 다시 패키지 구조를 생각해 보는데, 이전 글에서 좀 더 변화한 부분이 있어서 아예 새로 글을 쓴다. ※이 글은 주관적으로 작성된 글입니다. 틀리거나 추가적으로 보충할 내용이 있다면 댓글로 알려주세요. 이전에 알던 패키지 구조 패키지를 설계할 때 도메인형이든 계층형이든 내부적으로는 크게 변하지 않는 것 같다. 예를 들어 도메인 형이라고 했을 때 User라는 엔티티가 있다고 하자..