-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation
Description
📅 2024.08.12 - 간단한 비즈니스 로직 구현
📝 학습 내용 요약
- 주요 주제: 비즈니스 로직을 구현하는 방법 소개
🧠 이해한 내용
- 핵심 개념: 도메인 모델 패턴을 배우기에 앞서 비즈니스 로직 패턴의 기반인 트랜잭션 스크립트 방식과 액티브 레코드 방식을 배운다.
- 트랜잭션 스크립트: 절차지향 스크립트 방식으로 구현한다.
@Service
class UserService(
private val userDao: UserDao,
private val teamDao: TeamDao
) {
@Transactional
fun createUserWithTeam(name: String) {
val team = Team()
teamDao.save(team)
val user = User(name, team.id)
userDao.save(user);
}
}- 액티브 레코드: 데이터베이스 접근을 캡슐화하고 해당 데이터에 메인 로직을 추가한다.
- 빈약한 도메인 모델 안티패턴이라고도 불린다.
class User(
val name: String,
val email: String
) {
fun create() {
save(this)
}
private fun save(user: User) {
// DB 저장 로직
}
}- 위 패턴들은 단순한 상황에서 사용이 가능하다. 로직이 복잡하다면 도메인 모델 패턴을 사용해야함
❓ 궁금한 점 및 논의할 주제
- 질문 1: 데이터를 단순히 조회하는 상황에서는 항상 트랜잭션 스크립트 방식을 사용하는 것이 올바를까?
🔍 추가 참고 자료
🗒 기타 메모
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
documentationImprovements or additions to documentationImprovements or additions to documentation