
Transaction은 스프링에서 AOP로 동작하여 연결과 커밋, 롤백등을 관리한다고 한다. Transaction 내부코드를 보다보니 어떻게 AOP로 동작하는지 확인이 어려웠다. 먼저 간단한 AOP만들기를 시작으로 좀 더 내부를 파헤쳐보려고 한다. 1. AOP, 프록시 이해하기 횡단 관심사를 분리하기 위해서 AOP를 사용한다. AOP를 사용하기 위해서는 프록시 패턴을 사용한다. reflection을 사용하는 DynamicProxy 방식과 byte 코드를 조작하는 CGLIB 방식이 있다. AOP에서 사용되는 용어 Target: 어떤 대상에 부가 기능을 부여할 것인지 Advice: 어떤 부가 기능을 부여할 것인지 Join Point: 어디에 적용할 것인지 Point Cut: 실제 Advice가 적용될 시점을..
mvc, jdbc 등을 몇 개 내부코드를 살펴보았지만 아직 스프링 내부의 코드를 보는 것이 그렇게 익숙하지는 않다. Transactional 어노테이션과 관련하여 스프링에서는 트랜잭션이 어떻게 동작하는지 내부를 조금 확인해본다. DataSourceTransactionManager 아래의 코드를 보면 커넥션 맺기부터 시작하여 Transactional 어노테이션이 가지고 있는 여러 옵션들을 셋팅해주는 메소드가 있는 것을 알 수 있다. Transaction마다 커넥션이 새로 생성되는가에 대해서 크루들과 얘기해본 적이 있는데, 학습테스트를 진행한 결과에서는 propagation 설정을 주고 여러 트랜잭션을 호출할 때에도 내부 트랜잭션이 생길 때에도 커넥션이 새로 생성되었다. 그 근거로 이 내부코드에서 Trans..

[Auth] 인증과 인가 인증과 인가 인증(Authentication): 로그인 기능, 인증된 사용자인지 확인하는 것 인가(Authorization): 사용 권한이 있는지 확인하는 것 쿠키, 세션, 토큰 쿠키는 클라이언트 측의 저장소이다. 쿠키에 저장이 되면 쿠키는 서버 요청시마다 보내지게 된다. 탈취될 위험이 있어 보안적으로 중요한 내용은 저장하지 않는 편이다. 세션을 통한 인증은 서버측에서 세션저장소에 사용자를 등록하고 이것을 sessionId 값으로 관리한다. 클라이언트에 세션아이디를 알려주고 클라이언트는 세션아이디를 서버에 보내 사용자를 확인한다. 서버는 세션아이디를 가지고 세션저장소에서 인증정보를 확인한다. 사용자가 많아진다면 서버의 세션저장소의 부하가 발생한다. 서버는 토큰을 로그인한 사용자에..
학습로그 1-1 [Spring] @SpringBootApplication - 3 내용 @SpringBootApplication 는 Spring 의 기본 설정을 선언해준다. main이 들어있는 클래스 상단에 붙여준다. @ComponentScan은 @Component를 스캔하여 빈으로 등록된 것들을 찾아준다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFi..
- Total
- Today
- Yesterday
- JS
- 회고
- JPA
- Transaction
- 개발공부일지
- 객체지향
- 알고리즘
- DB
- OS
- 모의면접준비
- 네트워크
- CS
- java
- 우아한테크코스
- 내부코드
- TCP/IP
- 월간회고
- 마스터즈코스
- 운영체제
- React
- python
- 인증
- 학습로그
- Spring
- 우테코수업
- TIL
- 글쓰기미션
- javascript
- 코드스쿼드
- 카카오
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |