23
아키텍처는 설계하는 것이 아니라 선택하는 것이다.

2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

아키텍처는 설계하는 것이 아니라 선택하는 것이다.

Page 2: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

1. 시스템 개발 절차

2. 아키텍처 설계의 목표

3. 정보와 정보관리 시스템

4. 아키텍처 설계

5. 요약

목차

Page 3: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 2/175 -

Target Application

1. 시스템 개발 절차

ü개발 프로세스의 목표는 현실 세계의 필요를 충족하는데 필요한 시스템을 구축하는 것입니다. ü개발이란 현실 세계에 존재하는 개념들을 필터링, 변환, 번역 과정을 거쳐서 작은 시스템 무대로 이동시키는 것입니다. ü일련의 과정에서 서로 다른 언어(자연어 à 모델링 언어 à 프로그래밍 언어)로의 연속적인 변환이 이루어집니다. ü개발 기술과 프로세스는 소프트웨어 개발의 특성을 반영하여야 합니다. ß 소통이 중요한 이유입니다.

Requirement spec:프로젝트

Requirement spec:프로젝트

Application:시스템 세계Application:시스템 세계

설계 모델서버 컴포넌트

자연 언어(natural language)자연 언어(natural language) 기계어기계어모델링 언어(UML)모델링 언어(UML) 프로그래밍 언어프로그래밍 언어

도메인 모델(분석 모델)

모델 결합

아키텍처 모델

변환

기능

요구

채움

빌드

POC

Needs + Hope:현실 세계

Needs + Hope:현실 세계

필터링 품질

요구

RIRI 확장

컴포넌트, 데이터모델

UI 모델

프론트 엔드 모델

레이아웃,와이어프레임모델 결합

POC

프론트-엔드컴포넌트

채움

Page 4: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 3 / 22 -2014년 소프트웨어 아키텍트 대회

2. 아키텍처 설계의 목표

ü 잘 설계된 애플리케이션은 Loose coupling, High cohesion 원칙을 잘 지켰을 겁니다. ü 서로 다른 시스템 구성 요소인 도메인과 기술이 잘 분리되었을 겁니다. 분리와 결합이 자유롭습니다. ü 기술 요소의 변화는 레이어를 기준으로 자유로우며, 도메인은 기술의 변화에 영향을 받지 않습니다. ü 도메인 컴포넌트는 각 레이어 기술 요소로부터 중립적이며, 의존성을 갖지 않습니다.

자원모듈자원모듈자원 접근모듈자원 접근모듈비즈로직 모듈비즈로직 모듈

서비스 발행 모듈서비스 발행 모듈프리젠테이션 모듈프리젠테이션 모듈UI 모듈UI 모듈

자원모듈자원모듈자원 접근모듈자원 접근모듈서비스 발행 모듈서비스 발행 모듈

외부 시스템외부 시스템자원 접근모듈자원 접근모듈

프리젠테이션 모듈프리젠테이션 모듈UI 모듈UI 모듈

프리젠테이션 모듈프리젠테이션 모듈UI 모듈UI 모듈

외부 시스템외부 시스템자원 접근모듈자원 접근모듈

1 2 3

4

5 6도메인 컴포넌트

Page 5: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 4 / 22 -2014년 소프트웨어 아키텍트 대회

3. 정보와 정보관리 시스템

ü 아키텍트 관점에서 정보의 정의는 무엇일까요?ü 정보에 대한 충분한 개념, 영속성을 갖기 위한 기록, 유용성을 갖기 위한 제시, 세 가지를 생각할 수 있습니다. ü 이런 정보의 특성에 대한 이해는 정보 시스템을 설계하는데 도움이 됩니다. ü 정보 관리 시스템은 이 세 가지 특성을 기반으로 설계합니다.

Order정의 기록

정보란 개념이 정의되어야 하고, 영속성을 가져야 하고, 필요할 때 제시할 수 있어야 한다.

Page 6: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 5 / 22 -2014년 소프트웨어 아키텍트 대회

4. 아키텍처 설계

ü정보의 특성을 바탕으로 정보를 관리하거나 처리하는 시스템의 아키텍처를 설계해 봅니다. ü시스템은 크게 세 부분으로 나뉘게 됩니다. ß 설계 원칙(Separation of concern)ü시스템에서 가장 중요한 것은 정보 그 자체와 정보를 처리하는 부분입니다. ü보여 주기와 저장하기는 기술의 특성을 많이 타는 부분입니다.

개념 정의 및 처리보여 주기 저장하기

Page 7: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 6 / 22 -2014년 소프트웨어 아키텍트 대회

4.1 도메인 모델 보호

ü기술의 변화가 빠를 수록, 비즈니스 환경이 복잡할 수록 “도메인 모델”의 중요성은 더 커져 갑니다. ü도메인 모델과 도메인 컴포넌트를 기술로부터 보호하도록 설계하는 것은 아키텍트의 의무입니다. ü세 가지 영역은 서로 다른 설계 개념을 가지고 있습니다.

도메인 모델(도메인 객체)도메인 모델

(도메인 객체)

[UI]보여주는 방법 ? [데이터]저장하는 방법 ?정의하고 처리하는 방법 ?

Blog

Comment

Post

Page 8: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 7 / 22 -2014년 소프트웨어 아키텍트 대회

4.2 컴포넌트 구조 설계

ü도메인 객체 모델을 담을 컴포넌트 모델을 어떤 구조로 할 것인지 선택해야 합니다.

ü목표 시스템이 어느 수준의 기술 독립성을 가져야 하는 지, 팀원의 기술 수준 등에 따라 컴포넌트 모델을 결정합니다.

ü컴포넌트를 구현할 언어와 컴포넌트 플랫폼을 선택해야 합니다.

ü도메인 모델링과 도메인 컴포넌트 구현은 분석가가 할 수도 있습니다.

Platform Dependent Component

Domain Component Model

Domain Component

Domain Component

Domain Object Model

컴포넌트 모델 ?선택

프로그래밍 언어 ?선택

컴포넌트 플랫폼 ?선택

Page 9: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 8 / 22 -2014년 소프트웨어 아키텍트 대회

4.3 비즈니스 로직 레이어 모듈 (1/2)

ü도메인 컴포넌트를 감싸고 있는 플랫폼 종속적인 컴포넌트는 비즈니스 로직이 됩니다.

ü각 레이어 모듈에서 선택 가능한 요소는 대략 여섯 가지 정도입니다.

ü플랫폼, 프레임워크/라이브러리, 표현 언어, 사용자 정의 모델, 모델 구현체, 외부로의 연결 등은 모두 선택 사항입니다.

개념 정의 및 처리보여 주기 저장하기

JavaL

Spring DI

JVM

F

P

비즈니스 로직 레이어 모듈

DD 컴포넌트 구현I

DD 컴포넌트 모델M

인터

페이

터페

이스

C C

L

F

P

I

M

Page 10: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 9 / 22 -2014년 소프트웨어 아키텍트 대회

4.3 비즈니스 로직 레이어 모듈 (2/2)

ü여섯 가지 선택 요소는 결국 레이어 모듈의 특징을 결정하게 합니다. ü비즈니스 로직 레이어를 구성하는 모듈은 컴포넌트 모델과 플랫폼 선택에 따라 다음과 같이 다양할 수 있습니다. ü우리는 POJO 기반의 Domain [Driven] Component를 선택했습니다.

비즈로직 모듈

POJO-DDC

EJB-Proc

EJB-BCF

OSGi-BCF

POJO-BCF

POJSO-BCF

EJB-Proc

EJB-BCF

POJSO-Proc

...

Page 11: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 10 / 22 -2014년 소프트웨어 아키텍트 대회

4.4 자원접근 레이어 모듈 (1/3)

ü다음은 플랫폼 컴포넌트로부터 자원에 접근하는 구조를 설계합니다.

ü자원 접근 영역이 완전히 투명해야 하는가 아니면 어느 정도의 의존성을 허용하는가에 대해 고민을 합니다.

ü어떤 경우든 자원 접근 모듈을 대체 가능하도록 설계하는 것이 필요합니다.

접근방법은 ?D

라이브러리/프레임워크?D

연결방식 ?D

Platform Component

Domain Component

Platform Component

myBATIS Perister<<interface>>Persister

Page 12: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 11 / 22 -2014년 소프트웨어 아키텍트 대회

4.4 자원접근 레이어 모듈 (2/3)

ü고객의 요구와 시스템 환경 등을 고려하여 두 가지 접근 방법을 선택합니다.

ü읽기 쓰기는 오라클 DB로 읽기 전용은 MongoDB로 접근하도록 설계를 했습니다.

ü이 모듈은 동일한 Persister 인터페이스를 구현하므로, 필요할 경우 서로 대체할 수 있습니다.

개념 정의 및 처리보여 주기 저장하기

JavaL

myBATIS

JVM

F

P

자원 접근 레이어 모듈

Persister 컴포넌트 구현I

Persister 컴포넌트 모델M

터페

이스

Ora

cle

JDB

CD

rive

r

C C

L

F

P

I

M

JavaL

Java Driver API

JVM

F

P

자원 접근 레이어 모듈

Persister 컴포넌트 구현I

Persister 컴포넌트 모델M

터페

이스

Mon

goD

BJa

va

Dri

ver

C C

L

F

P

I

M

Page 13: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 12 / 22 -2014년 소프트웨어 아키텍트 대회

4.4 자원접근 레이어 모듈 (3/3)

ü자원 모듈과 자원 접근은 매우 밀접한 관계가 있으므로 함께 선택합니다.

ü선택 가능한 자원 접근 방법 중에 두 가지를 선택했습니다.

ü트랜잭션 등에 대한 고민은 틀을 완성할 때까지는 뒤로 미룹니다.

자원모듈자원 접근모듈비즈로직 모듈

POJO-DDC

EJB-Proc

EJB-BCF

OSGi-BCF

POJO-BCF

POJSO-BCF

EJB-Proc

EJB-BCF Java-ODM

Java-File Access

Java-Mem

js-module Access

js-file Access

Java-DAO

js-MemoryMap

Java-SQLMap

Java-ORM

...

RDBMS

KeyValue Store

Graph Store

Column Store

File

Document Store

Memory Map

POJSO-Proc

...

...

Page 14: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 13 / 22 -2014년 소프트웨어 아키텍트 대회

4.6 서비스 발행 레이어 모듈 (1/2)

ü정의한 정보나 처리된 결과 정보를 외부로 내보내는 레이어입니다. ü UI나 프리젠테이션 레이어로부터 직접 플랫폼 컴포넌트에 접근한다면 레이어 모듈은 “None”입니다. ü웹 페이지의 Javascript 모듈에서 REST 서비스를 이용하여 데이터를 가져가는 경로도 준비했습니다.

개념 정의 및 처리보여 주기 저장하기

JavaL

Jersey

JVM

F

P

서비스 발행 레이어 모듈

서비스 자원 구현I

Service 자원 모델M

RES

Tful

서비

터페

C C

L

F

P

I

M

None

서비스 발행 레이어 모듈

Page 15: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 14 / 22 -2014년 소프트웨어 아키텍트 대회

4.6 서비스 발행 레이어 모듈 (2/2)

ü프리젠테이션 모듈에서 컴포넌트로 직접 접근 경로와 RESTful 서비스로 접근하는 경로를 선택했습니다. ü그 외 다양한 서비스 발행 방법이 있습니다. ü요즘은 Node.js 기반의 Javascript RESTful 서비스 발행도 많이 선택되고 있습니다.

자원모듈자원 접근모듈비즈로직 모듈

POJO-DDC

EJB-Proc

EJB-BCF

OSGi-BCF

POJO-BCF

POJSO-BCF

EJB-Proc

EJB-BCF Java-Socket

Java-File Access

Java-Mem

js-module Access

js-file Access

Java-DAO

js-MemoryMap

Java-SQLMap

Java-ORM

...

RDBMS

KeyValue Store

Graph Store

Column Store

File

Document Store

Memory Map

POJSO-Proc

...

...

서비스 발행 모듈

Java WebService

Java Socket

js RESTful

None

Java RESTful

...

EAI

ESB/SCA

Page 16: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 15 / 22 -2014년 소프트웨어 아키텍트 대회

4.7 프리젠테이션 레이어 모듈 (1/2)

ü프리젠테이션 모듈은 두 가지를 선택하였습니다. ü Java와 Web Application Framework 위의 Presenter 모듈이 페이지 단위 UI 요청 처리를 합니다. ü웹 브라우저에 내려가 있는 jQuery 모듈이 서버와 Ajax 통신을 하여 데이터를 가져 옵니다.

개념 정의 및 처리보여 주기 저장하기

JavaL

Spring MVC

JVM

F

P

프리젠테이션 레이어 모듈

Presenter 구현I

Presenter 모델M

HTT

P

터페

C C

L

F

P

I

M

JavascriptL

jQuery

웹 브라우저

F

P

프리젠테이션 레이어 모듈

Presenter 구현I

Presenter 모델M

js

인터

페이

Xm

lHttp

Req

uest

C C

L

F

P

I

M

보안 모듈

Page 17: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 16 / 22 -2014년 소프트웨어 아키텍트 대회

4.7 프리젠테이션 레이어 모듈 (2/2)

ü프리젠테이션 레이어는 UI 레이어와의 구분이 어려운 레이어입니다. ü프리젠테이션 레이어에서는 두 개의 서로 다른 경로를 선택했습니다. ü WAF는 서버 사이드에서, Javascript RESTful 클라이언트는 웹 브라우저에서 동작합니다.

자원모듈자원 접근모듈비즈로직 모듈

POJO-DDC

EJB-Proc

EJB-BCF

OSGi-BCF

POJO-BCF

POJSO-BCF

EJB-Proc

EJB-BCF Java-Socket

Java-File Access

Java-Mem

js-module Access

js-file Access

Java-DAO

js-MemoryMap

Java-SQLMap

Java-ORM

...

RDBMS

KeyValue Store

Graph Store

Column Store

File

Document Store

Memory Map

POJSO-Proc

...

...

서비스 발행 모듈

Java WebService

Java Socket

js RESTful

None

Java RESTful

...

EAI

프리젠테이션 모듈

WAF

WebService클라이언트

EAI 클라이언트

js REST 클라이언트

외부시스템

External client

...

Java REST 클라이언트

Java Socket 클라이언트

Page 18: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 17 / 22 -2014년 소프트웨어 아키텍트 대회

4.8 UI 레이어 모듈 (1/2)

ü UI 레이어를 위한 플랫폼으로 웹 브라우저와 JVM을 선택했습니다. ü하나는 전형적인 웹 아키텍처에 AJAX 기능 보완한 구조를 가지고 있습니다. ü또 다른 하나는 관리자를 위한 모니터링 기능을 제공하기 위해 eclipse RCP를 선택하였습니다.

개념 정의 및 처리보여 주기 저장하기

HTML/CSS/Javascript

L

jQuery/Bootstrap

Web browser

F

P

UI 레이어 모듈

UI 구현/이미지I

UI 모델/디자인M

Hum

an

HTT

P/X

MLH

ttpR

eque

st

C C

L

F

P

I

M

JavaL

RCP, SWT

JVM

F

P

UI 레이어 모듈

UI 구현/이미지I

UI 모델/디자인MH

uman

HTT

P/X

MLH

ttpR

eque

st

C C

L

F

P

I

M

Page 19: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 18 / 22 -2014년 소프트웨어 아키텍트 대회

프리젠테이션 모듈

WAF

WebService클라이언트

EAI 클라이언트

js REST 클라이언트

외부시스템

External client

...

Java REST 클라이언트

Java Socket 클라이언트

4.8 UI 레이어 모듈 (2/2)

ü다양한 UI 중에 두 가지를 선택하였습니다. 일반 사용자용 웹 UI와 관리자용 RCP UI입니다.ü이제 여섯 개의 레이어의 모듈을 모두 [설계 | 선택] 했습니다. ü서비스나 프리젠테이션 레이어에서 도메인 컴포넌트의 인터페이스를 사용할 것인가에 대한 선택이 남아 있습니다. ü각 레이어 진입점(connector) 에 필요한 장치들에 대한 선택이 남아 있습니다.

자원모듈자원 접근모듈비즈로직 모듈

POJO-DDC

EJB-Proc

EJB-BCF

OSGi-BCF

POJO-BCF

POJSO-BCF

EJB-Proc

EJB-BCF Java-ODM

Java-File Access

Java-Mem

js-module Access

js-file Access

Java-DAO

js-MemoryMap

Java-SQLMap

Java-ORM

...

RDBMS

KeyValue Store

Graph Store

Column Store

File

Document Store

Memory Map

POJSO-Proc

...

...

서비스 발행 모듈

Java WebService

Java Socket

js RESTful

None

Java RESTful

...

EAI

UI 모듈

Web UI

RCP UI

iOS UI

Android UI

Mobile Web UI

Web Client

CLI

...

Page 20: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 19 / 22 -2014년 소프트웨어 아키텍트 대회

4.9 아키텍처 설계 회고

ü 하지만, 우리는 레이어를 잘 분리해서 멋지게 설계한 시스템을 본적이 별로 없습니다. ü 체계적인 설계 역량이 부족하거나, 시간이 부족하거나, 관심이 부족하기 때문이겠죠. ü 아무렇게나 지어도 사람이 들어가서 살 수 있듯이, 아무렇게 개발해도 실행되기 때문입니다. ü 우리는 아키텍처 설계에 대한 고민을 많이 하지 않았으며, 그 결과로 유연성 없는 불량 시스템을 양산하고 있습니다.

자원모듈자원모듈자원 접근모듈자원 접근모듈비즈로직 모듈비즈로직 모듈서비스 발행 모듈서비스 발행 모듈프리젠테이션 모듈프리젠테이션 모듈UI 모듈UI 모듈

1. 구분 없음 !!

2. 이해 못함

3. 필요성 모름

4. 대체로 없음

5. 도메인 객체 실종

6. 분리 불가 !!

7. 다양성 없음

9. 오직 RDB !!

8. 도메인이 여기에 !!

10 왜 분리해야 하지?

Page 21: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 20 / 22 -2014년 소프트웨어 아키텍트 대회

5. 요약 (1/2)

ü정보를 정의하고 처리하며, 저장하고, 제시하기 위한 시스템에 대한 설계를 마쳤습니다. ü기술 종속을 완전히 제거한 도메인 컴포넌트를 기반으로 선택하여 조합 가능한 레이어 구조로 설계를 하였습니다. ü일련의 과정을 살펴보면, 현대의 아키텍처 설계란 것이 “Design” 보다는 “Selection”에 가까운 것 같습니다. ü SW 설계 기술이 발전할 수록 선택의 단위는 커질 것 같습니다.

Target Application

Requirement spec:프로젝트

Requirement spec:프로젝트

Application:시스템 세계Application:시스템 세계

설계 모델서버 컴포넌트

자연 언어(natural language)자연 언어(natural language) 기계어기계어모델링 언어(UML)모델링 언어(UML) 프로그래밍 언어프로그래밍 언어

도메인 모델(분석 모델)

모델 결합

아키텍처 모델

변환

기능

요구

채움

빌드

POC

Needs + Hope:현실 세계

Needs + Hope:현실 세계

필터링 품질

요구

RIRI 확장

컴포넌트, 데이터모델

UI 모델

프론트 엔드 모델

레이아웃,와이어프레임모델 결합

POC

프론트-엔드컴포넌트

채움

Page 22: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 21 / 22 -2014년 소프트웨어 아키텍트 대회

5. 요약 (2/2)

ü정보를 처리하는 시스템의 아키텍처 설계는, § 레이어 개수 및 구성에 대한 선택, 레이어 모듈 유형 선택, 레이어 모듈 내부 구성 요소 선택

ü등과 같은 일련의 선택 활동이었습니다. ü이러한 선택을 통해 설계가 가능한 것은 선택할 수 있는 아키텍처 자산이 풍부하기 때문입니다.

Page 23: 2014-아키텍트대회-송태국-아키텍처는설계가아니라선택이다.pptx ... · 2015-06-01 · 2014년소프트웨어아키텍트대회-6/ 22 - 4.1 도메인모델보호

- 22 / 22 -2014년 소프트웨어 아키텍트 대회

토의

ü 질의 응답

ü 토론

v넥스트리컨설팅(주)

vCEO 송태국 / 대표 컨설턴트

[email protected]