Comment @Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Comment extends BaseEntity { private Long roomId; @Column(length = 500) private String comment; @ManyToOne(targetEntity = Member.class, fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; ... } Member @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Me..
물리 트랜잭션 실제 데이터 베이스에 적용되는 트랜잭션 논리 트랜잭션 트랜잭션 매니저를 통해 트랜잭션을 사용하는 단위 @Transactional(propagation = Propagation.REQUIRED) 부모 : REQUIRED 자식 : REQUIRED 물리 트랜잭션 : 1개 예외 발생 부모 트랜잭션이 존재한다면 부모 트랜잭션에 합류, 그렇지 않다면 새로운 트랜잭션을 만든다. 중간에 자식/부모에서 rollback이 발생된다면 자식과 부모 모두 rollback 한다. @Transactional(propagation = Propagation.MANDATORY) 부모 : REQUIRED 자식 : MANDATORY 물리 트랜잭션 : 1개 부모 : NULL 자식 : MANDATORY 부모 트랜잭션이 존재한다면..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bxuNSd/btswcM4yFth/1EOnfVKyGKAuXF5rBHnBx0/img.png)
SQL Injection 이란? 악의적인 SQL문을 실행되게 함으로써 데이터베이스를 비정상적으로 조작하는 코드 인젝션 공격 방법이다. 2017년 3월에 일어난 "여기어때" 의 대규모 개인정보 유출 사건도 SQL Injectrion 으로 인해 피해가 발생하였다. SQL Injectrion 공격은 공격은 쉬운데, 이로 인한 파급효과는 매우크다. 그렇다면 JPA는 SQL Injection 으로 부터 안전할까? SQL Injection 방어하는법 PreparedStatement 사용 Prepared Statement를 사용하면 인자를 넣어주기 전의 쿼리를 DBMS가 미리 컴파일하여 대기하므로 이후, 인자에 대해서는 쿼리가 아닌 단순 문자열로 인식하기 때문에 안전하다. JPA는 SQL Injection으로 부터 ..
- Total
- Today
- Yesterday
- setDateFormat
- HandlesTypes
- CreatedDate
- Attribute Converter
- BasicBinder
- DispatcherServletInitializer
- FormProperty
- WebFlux 의존성
- dto 위치
- feignClient
- org.springframework:spring-webflux
- CreationTimestamp
- JPA SQL Injection
- 구글 OpenID
- @ElementCollection
- entity 검증
- @FormProperty
- ServletContainerInitializer
- dto 검증
- ValidateException
- Spring Boot 3
- @Converter
- java 17
- User Scenario
- 구글 소셜로그인
- HTTPInterface
- 유저 시나리오
- defer-datasource-initialization
- 레이어드 아키텍처
- 유저 스토리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |