SlideShare a Scribd company logo
1 of 51
도메인주도설계
Domain-Driven
Design
2022.05.20
키트웍스 김천규
1
https://roadmap.sh/backend
2
소프트웨
어란
무엇인가?
3
소프트웨어
프로젝트의 목적은
사용자에게 가치
있는 소프트웨어를
개발하는 것입니다.
4
실상은…
5
6
도메인 주도
설계(DDD)에서는
이렇습니다.
프로젝트에 반영하기 위해서는
기술보다 도메인이 더 높은 우선순위
어떤 문제를 하기 위해서는 항상 도메인을 먼저
고민하는 것
그 도메인들을 바탕으로 설계(Design)
프로젝트에 지속적으로/반복적으로 반영하여
개발(Development)
7
도메인이란?
사용자가 사용하는 것들은 모두 도메인(Domain)
== 업무의 집합 (업무 지식이자 요구사항)
8
9
DDD 도 하나의
패러다임
Ex) 애자일 개발 방법론 =
빠르게 소통하는 것을 통해 개발 항목들과 이슈들을
정리하고 해결
• 개발해야 할 항목이 줄어들지 않습니다.
• 기존의 이슈들을 해결하더라도, 프로젝트가
진행되면서 더 많은 이슈들이 발생합니다.
• 서로 간의 의견이 달라 논의가 길어지거나 자주
발생합니다.
• 고객이 기다려주지 않습니다.
• 기존의 이슈들의 우선순위가 자주 다음으로
미루어집니다.
10
DDD 의사 소통(Communication)의 한계
1. 연관된 요소가 많을 경우
대화 주제의 범위를 소규모에서 점진적으로 확대
2. 표현의 차이가 있을 경우
=> 서로 같은 의미로 말하고 있는지 다른 의미로 말하고 있는지?
=> 도메인 지식의 숙련도 차이
11
Why?
12
그럼에도 알아야하는 이유는?
기술 관점으로만은 한계가 있다.
13
객체지향 설계, MVC 등등
Database-Driven Design…
SOLID
SOLID는 객체 지향(Object-Oriented)에서 반드시 지켜야 할 5개의
원칙
• SRP(Single Responsibility Principle, 단일 책임 원칙)
• OCP(Open-Closed Principle, 개방-폐쇄 원칙)
• LSP(Liskov Substitution Principle, 리스코프 치환 법칙)
• ISP(Interface Segregation Principle, 인터페이스 분리 원칙)
• DIP(Dependency Inversion Principle, 의존성 역전 법칙)
14
가정을 해봅시다.
1. 하나의 소프트웨어를 개발
2. 모듈(module), 변수(variable),
함수(function) 등의 의존성을
완벽하게 최소화
3. 같은 팀의 모든 개발자들이
이해하고 공유할 수
있는 프로그래밍
스타일(programming style)도
지킴
15
생각해볼 주제
• 구현 1년 후, 특정 기능에 버그가 발생했습니다. 어떤 1개의 기능에 대해 100개의
모듈이 존재한다면, 어떻게 찾아야 할까요?
• 내가 개발한 기능에서 다른 개발자가 새로운 동작을 추가해야 합니다. 기존에 이
기능과 관련된 100개의 동작이 있었습니다. 추가할 위치를 어떻게 찾고,
어떻게 추가해야 할까요?
• 내가 또는 다른 개발자가 개발한 기능을 수정하면서 side-effect가 발생하지 않을
것이라는 것을 무엇을 근거로 신뢰해야 할까요?
• 구현 1년 후, 각 요소들이 왜 그렇게 적용되었는지 어떻게 설명해야 할까요?
• 다른 개발자가 내가 개발한 기능과 함께 전체 로직을 설명해야할 상황이
발생하였습니다. 그 기능의 무엇 때문에 그렇게 구현하였는지 어떻게 설명해야
할까요?
16
이상적이여도 의구심이 생기는데?
17
현실에서는?
18
동작이 우선이다.
19
도메인 주도 설계: 온라인 음식 주문 업무
20
Step1. Domain Event 정의
기능을 우선 모두 나열하는 단계
이벤트
21
Step2. Tell the story:
도출된 이벤트로 도메인의 업무 흐름을 이해하고 토론하여 보완
22
Step3. 프로세스로 그룹핑:
이벤트들을 프로세스로 그룹핑
프로
세스
23
Step4. Command 정의
각 Domain Event를 발생시키는 명령을 현재형으로 정의하며 명령형
=> 서술식을 개조식으로 바꾸면 됨
24
Step5. Trigger 정의
Command를 일으키는 Actor와 Event를 일으키는 External System와 Policy/Rule을 정의
Actor == 구체적인 사용자 유형
External System == 연계되는 외부 시스템
Policy/Rule == 이벤트와 관련된 정책이나 규정
25
Step5. Trigger 정의
26
Step6. Aggregate 정의
Aggregate는 Entity와 VO의 집합
27
Step 7. Bounded Context정의 - "분홍색"
28
Solution Space: Context Map
Shared Kernel: 복수의 Bounded Context가 공통으로
사용하는 Bounded Context간의 관계
Upstream-Downstream: Publisher(=Upstream)와
Subscriber(=Downstream) 관계
Bounded Context의 특성 종류
Open Host Service: 여러 종류의 Downstream Bounded
Context를 고려하여 설계되는 Upstream Bounded Context
Anti Corruption Layer: 다른 Bounded Context에서 받는
데이터를 본인에 맞게 구조, Type, 통신프로토콜 등을
변환해 주는 모듈계층을 가지는 Bounded Context. 보통
Downstream Bounded Context가 ACL을 가짐.
29
도메인주도 설계와 아키텍처
• 계층형 아키텍처
• 헥사고날 아키텍처
• 클린 아키텍처
30
Layered Architecture
Service Layer
 Domain Layer와 Data Layer의 간의 제어, 연결
 Biz logic을 layer에 구현 X
Domain Layer
=> Domain Object별로 Business Logic처리를 담당
Data Layer
Database와의 CRUD처리 Layer
Spring boot, JPA에서는
Presentation Layer => @Controller, @RestController
Service Layer, Domain Layer => @Service
Data Layer => @Repository, @Entity
31
Transaction script vs Domain Model
32
DDD 관점으로 프로그래밍을 해보자
1. VO
2. Entity
3. Service
4. Repository
33
VO(값 객체)
1. 값의 불변성
2. 교환이 가능하다.
3. 등가성 비교 가능
원시 타입(number, string 등)만으로 표현할 수 없는게 있다.
금액 계산 예시
34
VO(값 객체) = Money 예시
35
그냥 더하기, 빼기는 숫자로 하면 되는 거
아니야?
36
VO(값 객체)
금액끼리는 더하기, 빼기는 되지만 곱하기, 나누기는 불가
1000 + 2000 = 3000
1000 * 2000 = 2000000 ?
음수를 처리는 어떻게? 0으로만 표기, 차액으로 표기할지?
1000 – 2000 = -1000
1000 – 2000 = 0
원화/달러/엔화 등 통화가 다를 때는 고려를 어떻게?
37
VO(값 객체) = Money 예시
38
Entity(엔티티)
1. 가변이다
2. 속성이 같아도 구분할 수 있다
3. 동일성
사람을 예시로
39
누군가를 식별할 수 있는 기준?
40
Entity
41
Entity와 VO 간 판단 기준?
엔티티에는 생애주기가 있다.
42
엔티티는 시간에 따라 계속 변한다.
43
Service(서비스)
44
Entity나 VO에서 행하기 부자연스러운 로직을 정의 해놓는 곳
예시) 회원가입 기능
User 엔티티
회원이 스스로 등록하는 거는 이상
Repository(레파지토리)
도메인 객체를 저장하고 복원하는 퍼시스턴시
DB에 쓰고/읽기 기능만 (CRUD) 책임
45
DDD가 왜
필요할까?
46
47
48
49
감사합니다.
50
출처
https://medium.com/@dreamingsandwich/도메인-주도-설계-domain-
driven-design-in-real-project-1-도메인-83a5e31c5e45
https://happycloud-lee.tistory.com/94
https://helloworld.kurly.com/blog/road-to-ddd/
https://velog.io/@teo/Javascript에서도-SOLID-원칙이-통할까
참고도서
도메인 주도 설계 철저 입문 (코드와 패턴으로 밑바닥부터 이해하는
DDD)
51

More Related Content

What's hot

객체지향적인 도메인 레이어 구축하기
객체지향적인 도메인 레이어 구축하기객체지향적인 도메인 레이어 구축하기
객체지향적인 도메인 레이어 구축하기
Young-Ho Cho
 
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon Web Services Korea
 

What's hot (20)

[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint [D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
[D2] java 애플리케이션 트러블 슈팅 사례 & pinpoint
 
Building Your Own IoT Platform using FIWARE GEis
Building Your Own IoT Platform using FIWARE GEisBuilding Your Own IoT Platform using FIWARE GEis
Building Your Own IoT Platform using FIWARE GEis
 
객체지향적인 도메인 레이어 구축하기
객체지향적인 도메인 레이어 구축하기객체지향적인 도메인 레이어 구축하기
객체지향적인 도메인 레이어 구축하기
 
Fluent Bit: Log Forwarding at Scale
Fluent Bit: Log Forwarding at ScaleFluent Bit: Log Forwarding at Scale
Fluent Bit: Log Forwarding at Scale
 
DDD로 복잡함 다루기
DDD로 복잡함 다루기DDD로 복잡함 다루기
DDD로 복잡함 다루기
 
An Introduction to Redux
An Introduction to ReduxAn Introduction to Redux
An Introduction to Redux
 
Nestjs MasterClass Slides
Nestjs MasterClass SlidesNestjs MasterClass Slides
Nestjs MasterClass Slides
 
Ksug2015 - JPA3, JPA 내부구조
Ksug2015 - JPA3, JPA 내부구조Ksug2015 - JPA3, JPA 내부구조
Ksug2015 - JPA3, JPA 내부구조
 
Introduction to Tensorflow.js
Introduction to Tensorflow.jsIntroduction to Tensorflow.js
Introduction to Tensorflow.js
 
Introducing Kogito
Introducing KogitoIntroducing Kogito
Introducing Kogito
 
JavaScript Inheritance
JavaScript InheritanceJavaScript Inheritance
JavaScript Inheritance
 
React
React React
React
 
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
[Devil's camp 2019] 혹시 Elixir 아십니까? 정.말.갓.언.어.입.니.다
 
이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
 
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
 
DSpace 7 - The Power of Configurable Entities
DSpace 7 - The Power of Configurable EntitiesDSpace 7 - The Power of Configurable Entities
DSpace 7 - The Power of Configurable Entities
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
The CQRS diet
The CQRS dietThe CQRS diet
The CQRS diet
 
Java Class Design
Java Class DesignJava Class Design
Java Class Design
 

Similar to 도메인주도설계

홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
devCAT Studio, NEXON
 
Domain driven design 8장
Domain driven design 8장Domain driven design 8장
Domain driven design 8장
kukuman
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
sung ki choi
 
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
Amazon Web Services Korea
 

Similar to 도메인주도설계 (20)

[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3
 
객체지향프로그래밍 특강
객체지향프로그래밍 특강객체지향프로그래밍 특강
객체지향프로그래밍 특강
 
예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기
 
하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기하드웨어 스타트업의 소프트웨어 이야기
하드웨어 스타트업의 소프트웨어 이야기
 
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
오픈소스 컨트리뷰톤 2020 backend.ai 발표자료
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
MSA_기초자료.pdf
MSA_기초자료.pdfMSA_기초자료.pdf
MSA_기초자료.pdf
 
Domain driven design 8장
Domain driven design 8장Domain driven design 8장
Domain driven design 8장
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리VSTS와 Azure를 이용한 팀 프로세스 관리
VSTS와 Azure를 이용한 팀 프로세스 관리
 
[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장[아꿈사/110903] 도메인주도설계 4장
[아꿈사/110903] 도메인주도설계 4장
 
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
차정민 (소프트웨어 엔지니어) 이력서 + 경력기술서
 
Lost practice : Requirement Analysis
Lost practice : Requirement AnalysisLost practice : Requirement Analysis
Lost practice : Requirement Analysis
 
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)
SAYAHAE - 상품평 분석 및 추천 서비스 (자연어 처리)
 
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
클라우드 세상에서 IT 관리자로 살아남기 - AWS Summit Seoul 2017
 
청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기청강대 특강 - 프로젝트 제대로 해보기
청강대 특강 - 프로젝트 제대로 해보기
 
재업로드주소: https://www.slideshare.net/hnki0104/gsshop-103837144
재업로드주소: https://www.slideshare.net/hnki0104/gsshop-103837144재업로드주소: https://www.slideshare.net/hnki0104/gsshop-103837144
재업로드주소: https://www.slideshare.net/hnki0104/gsshop-103837144
 
델파이 소스코드의재발견
델파이 소스코드의재발견델파이 소스코드의재발견
델파이 소스코드의재발견
 

More from Wonjun Hwang

CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
Wonjun Hwang
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
Wonjun Hwang
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
Wonjun Hwang
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
Wonjun Hwang
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
Wonjun Hwang
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
Wonjun Hwang
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
Wonjun Hwang
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Wonjun Hwang
 

More from Wonjun Hwang (20)

CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)CORS (Kitworks Team Study 양다윗 발표자료 240510)
CORS (Kitworks Team Study 양다윗 발표자료 240510)
 
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
파일 업로드(Kitworks Team Study 유현주 발표자료 240510)
 
Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)Spring HTTP Client (Kitworks Team Study)
Spring HTTP Client (Kitworks Team Study)
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)Console API (Kitworks Team Study 백혜인 발표자료)
Console API (Kitworks Team Study 백혜인 발표자료)
 
Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)Merge (Kitworks Team Study 이성수 발표자료 240426)
Merge (Kitworks Team Study 이성수 발표자료 240426)
 
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
This (Kitworks Team Study 김한솔 발표자료 2024.4.22)
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)스토리북(Storybook, Kitworks Team Study 우아라 발표)
스토리북(Storybook, Kitworks Team Study 우아라 발표)
 
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
mysql8 전환기 (Kitworks Team Study 김천규 발표자료)
 
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)Open AI SORA  (키트웍스 팀스터디 발표자료 박준기 240315)
Open AI SORA (키트웍스 팀스터디 발표자료 박준기 240315)
 
Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)Nest JS (Kitworks Team Study 이본훈 발표 240315)
Nest JS (Kitworks Team Study 이본훈 발표 240315)
 
JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)JS Event Loop (Kitworks Team Study 김동현 발표)
JS Event Loop (Kitworks Team Study 김동현 발표)
 
Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)Java Optional (Kitworks Team Study 김성호 발표)
Java Optional (Kitworks Team Study 김성호 발표)
 
XSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team StudyXSS(Cross site scripting) - Kitworks Team Study
XSS(Cross site scripting) - Kitworks Team Study
 
Flutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team StudyFlutter & Firebase (2) Kitworks Team Study
Flutter & Firebase (2) Kitworks Team Study
 
PWA
PWAPWA
PWA
 
얕은복사,깊은복사
얕은복사,깊은복사얕은복사,깊은복사
얕은복사,깊은복사
 
Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기Go언어로 디스코드 봇 만들기
Go언어로 디스코드 봇 만들기
 
완전 유용한 CSS 모음
완전 유용한 CSS 모음완전 유용한 CSS 모음
완전 유용한 CSS 모음
 

도메인주도설계