스터디/Spring Boot

[Spring Boot] 스프링 스터디 3일차

dekoms 2023. 11. 14. 12:42

DB의 값을 자바에서 객체로 처리하기 위해 Domain을 사용함.

데이터베이스로부터 값을 읽어와서 자바에서 Domain의 하나의 클래스로 정의내린 후 값이 변화하면 안 됨.

 

주요 3계층: Controller, Service, DAO

주요 3계층간에 움직일 때, 보안성이 있고 일부의 데이터만 가지는 DTO를 사용함.

 

패러다임과 속성이 약간 다른 것들

Controller, Service, DAO: 자바에서 값을 다룸...?

DTO, Domain: 데이터베이스의 값을 다룸...?

 

데이터베이스: 테이블 사용

Spring: Domain 사용

 

 

💯💯💯

과제 해결 중 이해한 것

사용자 -> Controller     -> 데이터베이스
dto로 입력 ↓↑ @Entity를 활용하여 domain으로 변환 Dto 스프링에서 정의된 계층간의 이동에 사용되는 데이터베이스의 일부값  
  Service      
dto로 출력 ↓↑ @Transactional을 활용하여 스프링과 데이터베이스간의 원자성 지킴 Domain 데이터베이스의 값을 스프링에서 활용할 수 있도록 객체의 형식으로 데이터를 가짐.  
<- Dao     <-

 

계층간의 값 전달은 Dto를 활용해 이루어진다. Ex) UserReq, UserRes

 

id, created_at, updated_at의 값은 데이터베이스가 값을 자동으로 채워준다.

=> 데이터베이스의 주키에서 auto_increment, dto에서 @CreatedDate, @LastModifiedDate 설정을 해주었기 때문.

 

※ 소소한 팁

Dao의 관례 표현식: UserRepositoy

static을 활용하는 정적 메소드: 문서화 /** */를 편하게 할 수 있음, 생성자에는 사용하지 못함.