1. 발생 이슈
- H2 DB가 동일 서버에서 이미 돌아가고 있으면 H2 내장 DB를 사용하는 스프링 애플리케이션을 실행할 수 없다.
- Intellij가 인식하는 파일 확장자 변경 : https://handr95.tistory.com/2 포스팅 참고할 것
2. 오늘 알려준 내용 정리
1) AOP
- Aspect Oriented Programming의 약자
- 공통 기능을 모듈화하는 기술
- Pointcut : AOP를 적용할 메소드를 선정하는 역할
- Advisor : 공통 기능 로직
- Advisor 메소드에 @Around, @After, @Before 등의 어노테이션을 적용해서 타겟 메소드를 기준으로한 공통 기능의 실행 시점을 결정할 수 있음. @Around는 타켓 메소드를 직접 가져와서 공통 기능을 구현할 수 있음
- Advice : Pointcut + Advisor
- AOP를 적용하면 중복 코드가 훨씬 줄어들기 때문에 유지보수에도 상당히 유리하다.
2) DB
- DataSource는 DB에 연결하기 위한 연결 정보가 들어있는 객체
- EntityManager은 엔티티의 생명 주기와 트랜잭션 등을 관리하고 영속성 컨텍스트에 접근하는 객체다. 등록된 EntityManagerFactory bean으로부터 EntityManager을 생성할 수 있다.
- 엔티티에 붙는 어노테이션들은 https://kimcoder.tistory.com/356?category=964983 를 참고할 것.
- JPA에는 무조건 트랜잭션 안에서 데이터 변경이 이루어져야 하기 때문에 JpaTransactionManager을 등록해두었다.
- @Transaction 어노테이션을 적용한 메소드 자체에 트랜잭션이 적용되며, 커밋은 메소드가 끝날 때 이루어진다.
- Java에서는 카멜(Camel) 표기법을 사용하고, DB에서는 언더스코어(_) 표기법을 사용한다. 그래서 아래와 같은 설정으로 네이밍 전략을 사용하여 표기법을 자동으로 바꿔줄 수 있다.
hibernate.physical_naming_strategy=org.hibernate.boot.model.naming.CamelCaseToUnderscoresNamingStrategy
3. 추가된 프로젝트 파일 설명
(com.example.demo 기준)
- config.aop.AdvisorConfig : AOP 설정 파일
- config.jpa.DBConfig : JPA 설정 파일
이해 안되는 내용이 있으면 이 포스팅에 댓글을 달거나 단톡에 남길 것!
'개발 프로젝트 > [팀] Web - SQL 교육 사이트' 카테고리의 다른 글
[팀 프로젝트] SQL 교육 사이트 - 20220823 안내 사항 (0) | 2022.08.23 |
---|---|
[팀 프로젝트] SQL 교육 사이트 - 20220806 작업 사항 (0) | 2022.08.06 |
[팀 프로젝트] SQL 교육 사이트 - 20220724 안내 사항 (0) | 2022.07.24 |
[팀 프로젝트] SQL 교육 사이트 - 20220718 안내 사항 (0) | 2022.07.18 |
[팀 프로젝트] SQL 교육 사이트 - 20220712 안내 사항 (0) | 2022.07.12 |
댓글