본문 바로가기
  • 실행력이 모든걸 결정한다
개발 프로젝트/[팀] Web - SQL 교육 사이트

[팀 프로젝트] SQL 교육 사이트 - 20220801 강의 정리

by 김코더 김주역 2022. 8. 2.
반응형

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 설정 파일

 

 

 

이해 안되는 내용이 있으면 이 포스팅에 댓글을 달거나 단톡에 남길 것!

 

 

반응형

댓글