1. Spring EmbeddDataBase 실습 코드 작성
- Spring EmbeddDataBase
- 런타임의 데이터 메모리 상에 저장되는 DB
- Map과 같은 컬렉션에 데이터를 저장하여 안정적인 방법으로 CRUD가 가능하고 코드의 중복을 줄일 수 있다.
2. Spring NamedParameterJdbcTemplate 실습 코드 작성
- JdbcTemplate이 문자열에 "?"를 통해서 인자를 받는 방식이었지만,
- NamedParameterJdbcTemplate에서는 ":key값"으로 Map<key,value>에 저장한 value를 인자로 줄 수 있다.
- Map 콜렉션을 통해서 쿼리 문자열에 사용될 데이터를 모아서 처리할 수 있다.
3. Proxy 실습 코드 작성
- InvocationHandler를 상속받는 클래스에서 method의 전후처리 코드를 작성하고
- 실제 사용할 인터페이스와 InvocationHandler 상속 받은 클래스로 Proxy 객체를 생성
- 생성한 객체로 메소드 호출 시 전후처리가 포함된 메소드를 실행하는 것을 확인 가능
4. AoP 주요 용어 및 실습 코드 작성
- AoP(Aspect-Oriented Programming)
- Aspect 지향으로 프로그래밍하는 것
- 위 실습의 proxy를 spring에서 제공하는 Aspect 어노테이션의 클래스로 각 기능마다 부가 기능을 추가하여 작동시키는 것
- Target : 핵심 기능을 가진 모듈(전후처리가 필요한 인터페이스)
- JoinPoint : Advice를 적용할 위치(타겟의 각 메소드 위치)
- Pointcut : Target의 메서드를 선별하는 조건(정규표현식)
- Aspect
- Pointcut + Advice를 모은 클래스
- Spring에서 Aspect를 Bean으로 등록하여 사용
- Advice
- 타겟에 특정 조건인 조인포인트에 제공할 부가 기능
- @Before, @After, @Around 등이 있음
- weaving
- 타겟의 조인포인트에 어드바이스를 적용하는 과정
5. 트랜젝션 전파와 격리
- 트랜젝션 전파
- @Transactional 통해서 다음 메소드로 넘어갈 때 그 기능과 트랜젝션을 묶을지 여부를 정하는 것
- 트랜젝션 격리
- 특정 트랜젝션이 다른 트랜젝션에서 변경이 된 데이터를 읽을 수 있는지 단계를 통하여 설정하는 것
6. JVM JIT Compiler, Interpreter 조사
- 글 작성(링크)
1. DNS 동작 방식 조사
- 조사 후 글 작성
2. Command-line Application 단위 테스트 코드 작성
- 지속적으로 클래스 추가 시 만들기
3. Command-line Application 테이블 추가
- Jdbc template 활용하여 구현
- Customer 테이블 정의 및 추가
- Voucher 테이블 CRUD
오늘 한 주치 밀린 스프링 공부를 하면서 실습 코드도 많이 짜보고 시행착오를 겪으면서 많이 배웠다. 내일은 과제 코드를 통해서 자유롭게 코딩해보고 Spring Annotation 작동에 대해서 더 익숙해져야겠다.