나홀로 DDD
Workshop

스프링 프레임워크를 활용한 게임 제작 프로젝트로
도메인 주도 설계부터 JPA까지 익히는 2일 정복 코스

#DDD #JPA#도메인이벤트

ddd9

교육기간 & 일정

 2019. 9. 21 – 9. 22 (총 2회)
토/일 14:00-18:00
(회 당 4시간, 총 8시간)

장소 & 준비물

패스트캠퍼스 강남강의장
강남역 4번 출구, 미왕빌딩
개인 노트북

담당자 & 문의

장명희 매니저
02-501-9396
help.camp.dev@fastcampus.co.kr

스프링 프레임워크를 활용해 간단한 포켓몬 게임을 직접 만들어보며
도메인 주도 설계부터 JPA 까지 모두 가져가세요!

세로이미지1_수정본

#강의 특징

설계 방법론을 넘어 소스코드 구현까지

DDD를 넘어 JPA까지

setOrderState( ) → completePayment( )

DDD 방식을 쉽게 적용하기 위해 ‘JAVA의 ORM 기술에 대한 API 표준명세’인 JPA를 선택했습니다. 따라서 DDD를 배우며 설계 방법론만 학습하는 것이 아닌, Java 웹 프로그래밍에서 필요한 추가 기술인 JPA(ORM)까지 함께 이해할 수 있습니다.

클린아키텍쳐 적용하기

개발 프로세스를 체계적으로 정비 합니다

DDD를 적용한 소프트웨어는 구현에 필요한 각각의 부분들이 서로 독립적으로 존재합니다. 즉, 사소한 변경이 설계한 모델 전체에 영향을 주지 않으므로 한가지 기능을 수정하려고 전체를 고칠 필요가 없습니다.

회사가 원하는 DDD

도메인 주도 설계를 이해하는 분?

JAVA를 기반으로 하는 기업에서 도메인 주도 설계를 도입하고 있습니다. 개발자를 찾는 채용공고 우대사항에는 DDD를 알고 있는 분을 원한다고 적혀 있습니다. 「나홀로 DDD Workshop」은 협업에 필요한 트랜디한 개발 스킬 더할 수 있는 고급 강의입니다.

DDD가 끝이 아닙니다

#JPA #ORM #MSA

하나, DDD 방식을 쉽게 적용하기 위해 ‘JAVA의 ORM 기술에 대한 API 표준명세’인 JPA를 선택했습니다. 따라서 DDD를 배우며 JPA(ORM)까지 함께 이해할 수 있습니다. 둘, MSA를 잘할 수 있습니다. 마이크로 서비스 아키텍쳐를 설계할 때 그 경계를 설정하는 것이 핵심입니다. DDD 패턴 학습으로 작게 나눈 DB 설계 구조와 도메인의 복잡성을 이해할 수 있습니다.

배너 DDD

#학습방법

게임을 만들며 익히는 DDD

포켓몬 게임을 만들며 익히는 DDD

포켓몬 게임의 요구사항을 파악해,
DDD를 적용하여 실제 코드로 구현하는
실습을 진행하며 익힙니다.

이틀동안 하나의 프로젝트를

라이브코딩으로 이틀동안 함께
하나의 프로젝트를 완성하며,
도메인 주도 설계가 무엇인지 확실하게 익힙니다.

프로젝트로 완성하는 DDD

포켓몬

[매주 목요일 실습] 포켓몬 게임 프로젝트를 스프링 프레임워크로 직접 만들며 DDD를 정복합니다

– DDD를 실제 업무에 적용할 수 있도록 이론강의를 바탕으로 라이브코딩 및 실습을 진행합니다
– 요구사항을 함께 분석하고, DDD 기본 요소 만들기부터 데이터베이스·외부 라이브러리 연동까지 코드를 구현합니다
– 프론트엔드 코드를 제공합니다

process

[1주차]
– 용어 사전 만들기
– 설계 문서 만들기
– 포켓몬 도메인 모델 구현하기
– 트레이너 도메인 모델 구현하기
– 아이템 도메인 모델 구현하기

[2주차]
– 테스트를 위한 의존성 설정
– 도메인 모델에 대한 단위 테스트
– 포켓몬 잡기 기능 구현하기
– 응용 계층에 대한 단위 테스트
– 표현 계층에 대한 단위 테스트

[3주차]
– 회원 기능 구현하기
– 포켓몬 무작위 등장 기능 구현하기

[4주차]
– 이벤트를 활용한 리팩터링
– 포켓몬 게임 기록 보기 기능 구현하기

국내 유일
DDD 프로젝트 2일 완성 코스!
「나홀로 DDD Workshop」

#커리큘럼

DDD 프로젝트 완성, 2일 만에

[1일차 – 도메인 주도 설계 이해]

– 도메인 주도 설계의 등장 배경
– 도메인 주도 설계 아키텍처 개요
– 도메인 주도 설계 기본 요소 : Entity, Value Object, Aggregate, Repository
– 유비쿼터스 언어
– 효과적인 모델링
– 요구사항 분석

image_07

[1일차 – 스프링부트 시작하기]

– 스프링 부트 소개
– 스프링 웹 MVC 소개
– 도메인 주도 설계 기본 요소 만들기
– JUnit과 Mockito를 이용한 유닛 테스트
– 다룰 어노테이션 : @SpringBootApplication, @Controller, @RestController, @Service, @Repository, @Autowired, @SpringBootTest, @MockBean

image_08

[2일차 – 스프링 데이터 JPA]

– 객체와 관계형 데이터베이스의 패러다임 불일치
– JPA 소개
– 스프링 데이터 JPA 소개
– 데이터베이스 연동
– 외부 라이브러리 연동
– 다룰 어노테이션 : @Transactional, @Entity, @Table, @Id, @GeneratedValue, @Column, @Embeddable, @Embedded, @AttributeOverrides, @AttributeOverride, @Enumerated, @DataJpaTest

image_09

[2일차 – 도메인 이벤트]

– 느슨한 결합과 강한 결합
– 이벤트 소개
– 스프링 ApplicationEvent 소개
– 도메인 사이의 이벤트 전달
– 다룰 어노테이션 : @EventListener

[adv] CQRS (명령 및 쿼리 책임 분리)
– 단일 모델의 단점
– CQRS 소개
– MyBatis 소개
– CQRS 패턴 적용

image_10

#수강대상

DDD가 필요한 모든 분을 위해

icon_woman1_3_oh-1-150x150

Java 및 Spring에 대한 이해가 있는 개발자

icon_man3_3_oh-150x150

Java 웹 프로그래밍 분야로 취업을 준비하고 있는 취업준비생

icon_man4_3_oh-150x150

DDD 개념은 들어봤지만, 직접 적용하여
프로젝트를 진행해본 경험은 없는 개발자

샘플코드 1

샘플코드 2

#강사소개

DDD의 세계로 안내합니다

재성님프로필

강사

박재성

– 현| 우아한형제들 교육코스 개발팀
– 2017.10-현| 패스트캠퍼스「프로그래밍유치원」강사
– 2016.09-2019.03| NHN PAYCO 광고플랫폼 개발팀

도메인 주도 설계를 바탕으로 DDD 아키텍처를 적극 반영한 레거시 코드 개선 작업을 하고 있습니다.
‘좋은 코드’란 1년이 지나도, 10년이 지나도 재사용될 수 있는 코드라고 생각합니다. 저는 클린 아키텍처에 관심이 많고, 재사용할 수 있는 코드를 추구하고 있습니다. 따라서 코드 자체도 충분히 문서화가 가능하며, 코드를 통해 도메인에 대해 깊게 이해할 수 있다고 생각합니다. ‘유용한 소프트웨어를 개발하고 싶다면 도메인에 귀를 기울여라’라고 이야기한 Eric Evans의 말처럼 더 좋은 소프트웨어를 개발하는 방법을 고민하고, 공유하고 싶습니다.

#수강료안내

매주 목요일 할인률이 변경됩니다

조기마감!
₩200,000

정가 : ₩200,000
※이번기수는 조기마감되었습니다. 출시알림을 신청해주세요!
※원활한 진행을 위해 결제 순으로 신청이 마감됩니다.

출시알림

프로젝트팀
만들어서 신청하면
추가할인!

DDD프로젝트를 함께하고싶은
동료, 친구와 함께
3~4인 팀을 만들면
최대 할인가로 동반 수강신청이 가능합니다.

card_171120

#강의장안내

강남역 4번 출구 앞

조기마감 되었습니다!