Skip to content

Latest commit

 

History

History
38 lines (24 loc) · 2.02 KB

week5.md

File metadata and controls

38 lines (24 loc) · 2.02 KB

week5.md

[섹션 6: DB 접근 기술]

  • GB Bc 로 개발 -> 완전 노가다 ( 순수 )
  • spring 이 gdbc 템플릿을 만들어서, SQL 용이하게 함
  • SQL 을 JPA 기술을 사용해서, 쿼리 없이 객체를 저장하고 관리 가능 (+Spring Data JPA .)
  • 코드 적으면서 헷갈림, 강조 하신 부분들:
    • MemberMemory Repository의 sequence == 데이터 베이스에 자동으로 동기화 시키는 코드

#1. 순수 Jbdc

  • 스프링을 쓰는 이유=”다형성” 이 좋아서 객체지향 구현에 유리함.
    • DI 덕분에 의존관계에 따라, 개발자가 따로 수정해줄 필요없이, 오직 application 설정 코드 ( =assembly 코드)만 수정해주면 됨. (; 구현 클래스 변경 )

#2. 스프링 통합 “test” 구현

→ 단일 테스트 와 다르게 스프링을 끌어다가 사용하면 번거로움을 줄일 수 있음.

  • 스프링을 사용하여 구현할때, 데이터 베이스(전체 데이터 베이스가 아니라, “테스트” 데이터 베이스이다. 는 기본적으로 트렌젝션이 있어서, 수동으로 커밋을 매번 해줘야함.

    • 해결하기 위해 사용하는 것: “@Transectional”
      • 테스트가 끝나면 자동으로 롤벡 후, 테스트 데이터 베이스의 정보들을 지워줌.
    💡 **@SpringBootTest** : 스프링 컨테이너와 테스트를 함께 실행한다. **@Transactional** : 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다.

    ..

    Q. 그럼 스프링 없이 하는 단위테스트는 번거로우니 할 필요가 없지 않은가?

    A. 단위테스트: 사실 훨씬 더 좋은 테스트임. 훨씬 정교함. 따라서, 스프링 컨테이너 사용하지 않고 단위테스트로 구현하는 것에도 익숙해져야함.