자바 서버 애플리케이션 아키텍처 안티 패턴

Sungchul Park
Sungchul ParkTeam Leader at SK Planet
불안의 원인들
애플리케이션 아키텍처 안티 패턴
‑ 박성철 ‑
안녕하세요(‑.‑)
生卽苦
(생 즉 고)
아키텍처
아키텍처
아키텍처 = 비전 + 구조
애플리케이션 아키텍처 구조
자바 서버 애플리케이션 아키텍처 안티 패턴
자바 서버 애플리케이션 아키텍처 안티 패턴
자바 서버 애플리케이션 아키텍처 안티 패턴
학습곡선
발단, 도약, 고원, 해구, 하향
심판관
DRY & OCP
“모든 시스템은 그 시스템이 살아 있는 한 평생
변경이 된다. ”
DRY, 중복배제원칙
Donʹt Repeat Yourself
“모든 지식의 단편은 시스템 안에 단일의, 명백
한, 권위있는 표상을 가져야 한다.”
Once and Only Once
Abstraction Principle
OCP, 개방폐쇄원칙
Open‑Closed Principal
“소프트웨어의 구성요소(클래스, 모듈, 함수 등)
은 확장은 가능하지만 수정은 불가능해야 한다.”
시스템 아키텍처와 로직
A long time ago in a galaxy far, far away...
다중 계층 아키텍처
오늘날의 전형적인 애플리케이션
아키텍처,
추상화 수준에 따라 애플리케이션
을 여러 그룹으로 분해하여 애플리
케이션의 구조를 체계화
표현 계층
비지니스 계층
데이터 계층
단일 티어
대형/중형 컴퓨터 + 천공카드 or 더미 터미털
중앙 집중 처리
이중 티어
PC, 워크스테이션 + 미니 컴퓨터
클라이언트‑서버 모델
스마트 UI ‑ 안티패턴
N‑티어
Post PC & Internet
Application Server
표현 계층 ‑ 비지니스 계층 ‑ 데이터 계층
다중 계층 아키텍처
트랜잭션 스크립트
아키텍처 패턴
애플리케이션 = 트랜잭션의 묶음
안티패턴 #1
연통 배관
(Stovepiping)
연통 배관
애플리케이션의 각 모듈이 독립적으로 개발되어 다른 모듈과
로직이나 데이터를 공유하지도 않고 상호작용하지도 않는다.
자동 연통 대량 생산
연통 배관에서 반복적으로 같은 구조가 나타나면 생산성을
높이고자 소스 코드 자동 생성기를 사용해서 중복된 코드를
대량으로 생산한다.
코드 중복 가속화
구조가 바뀌어야 할 경우 모든 코드를 변경해야 함
추상화로 해결해야 할 문제
수동 연통 대량 생산 (복봍 방법론)
관심사에 따른 계층 설계
관심사 분리 원칙에 따라 계층도 각 계층의 관심사에 따라 설
계
안티패턴 #2
스마트 DAO
스마트 DAO
대부분의 비지니스 로직을 프로그래밍 언어가 아닌 SQL에 담
고 프로그래밍 언어는 이 SQL를 준비하고 실행하고 결과를
받는 작업만 수행하는 데 사용
중복
재사용 할 수 없는 1회용(ad‑hoc) 쿼리 사용으로 로직의 중복
이 발생하고 유지보수성이 떨어짐
SELECT username, secword FROM users WHERE uid=1;
SELECT uid, username, secword, firstname, lastname, regidate, birth, gender, rate
FROM users WHERE UID=1;
로직표현
SQL로 표현되는 비지니스 로직
애플리케이션은 SQL에 매개변수를 전달하고 쿼리 결과를
가공할 뿐
SELECT username, secword
FROM users
WHERE UID=1 AND birday > "20000101" AND gender='F' AND rate > 40
UPDATE users
SET rate = rate + 10
WHERE UID=112 AND gender='F' AND rate > 40 AND status='T';
SW의 복잡도를 다루는 기술
Abstraction
Encapsulation
Information Hiding
Modularization
Separation of Concerns
Coupling and Cohesion
Divide‑and‑Conquer
SQL 추상화 기술
ORM(Hibernate, JDO, JPA)
Active Record
Query Builder(JooQ, QueryDSL)
Table Data Gateway
무거운 서비스
(Fat Service)
안티패턴 #3
무거운 서비스
뒤범벅 아키텍처
(Jumble Architecture)
뒤범벅 아키텍처
애플리케이션의 횡적인 설계 요소와 종적인 설계 요소가 혼
합되어서 변경에 취약한 아키텍처가 만들어짐
사용자의 기능 요청을 구현하는 종적인 관심
여러 기능에 공통적으로 적용되어야 하는 횡적인 관심
횡적 요소의 모듈화로 재사용성과 안정성 확보 필요
뒤범벅 아키텍처 해법1
파이프 & 필터 패턴
여러 단위 처리 모듈(필터)을 순서대로 나열하고 한 필터에 데
이터를 입력해 얻은 출력을 그 다음 필터의 입력으로 삼도록
구성하는 아키텍처 패턴
해법 1‑1
애플리케이션 계층 추가
추가 계층을 만들어서 횡적 요소와 종적 요소를 조립
애플리케이션 서비스 계층과 비지니스 서비스 계층 분리
횡적 관심사의 모듈화
Pipe & Filter Pattern
해법 1‑2
위임
로직을 비니지스 객체로 분리하고 서비스는 비니지스 객체
로 위임
애플리케이션 서비스 계층 추가와 사실상 동일
아키텍처가 아닌 객체 설계로 해결
Pipe & Filter Pattern
뒤범벅 아키텍처 해법2
관점 지향 프로그래밍(AOP)
기능에 직교적인 횡적 관심사를 분리해 모듈화 수준을 높이
는 기술
안티패턴 #4
무거운 서비스
긴 공개 메서드
(Long Method)
긴 공개 메서드
클래스에 공개 메서드 뿐, 각 메서드의 크기가 너무 길다.
미미한 기능 분화, 낮은 유지 보수성
중복 다량 발생
단일 책임 원칙 위반
기능 분화로 재사용 코드 발견, 추상화의 기회
조합 메서드
public String renderPage(PageData data, boolean isSuite) {
ResultPage result = prepareResultPage(isSuite);
if(isTestPage(data)) {
result.includeSetup(data);
result.includeTeardown(data);
}
return result.getHtml();
}
긴 공개 메서드
프로그래밍 = DSL 개발
(Domain Specific Langage)
ʺ프로그래밍 대가는 시스템을 작성할 프로그램이 아니
라 말하고 싶은 이야기로 생각한다. 그들은 프로그래밍
언어의 장치를 사용해서 더 표현력이 풍성하고 강한 언
어를 만들고 그 언어로 이야기를 말한다.ʺ
‑ 로버트 C 마틴 ‑
긴 공개 메서드
함수 작성법
공개 메서드는 이야기(의도, 작업 흐름) 흐름을 나타내라
비공개 메서드는 이야기의 의미를 정의하라
작게 만들고 한가지만 하라(SRP)
함수내 동일한 추상화 수준 유지
서술적인 이름 사용
명령/조회의 분리
고차 함수를 사용함 함수 수준 추상화(람다식)
안티패턴 #5
무거운 서비스
하는 놈 따로, 아는 놈 따로
(Doer & Knower)
하는 놈 따로, 아는 놈 따로
OOP 언어를 사용하고 클래스를 만들지만 사실은 여전히 구
조적으로 프로그래밍을 하므로 로직과 데이터가 애플리케이
션 전체적으로 분리되어 있다.
DB 의존적 애플리케이션
모든 상태를 DB에만 보관
상태 조작은 SQL로 처리
애플리케이션 코드는 단순히 인자와 SQL 결과를 전달
도메인 모델 도입
도메인 모델: 행위와 데이터를 포함하는 비지니스 영역의
객체 모델
객체와 객체의 관계망으로 비지니스 영역을 집합적으로 서
술
복잡한 비지니스 로직을 표현 가능
Active Record 또는 ORM
상태의 영속화
도메인 모델이 도입되면 상태를 메모리에서 관리
데이터의 저장은 메모리상 상태의 영속화 개념으로 바뀜
많은 상태 조작이 메모리에서 수행됨
프로그래밍 언어의 복잡도를 관리하는 기능 활용
빈약한 도메인 모델
(Anemic Domain Model)
단순 데이터 접근 메서드만 있는 도메인 모델
도메인 모델을 도입하는데 드는 비용만 들고 이점을 하나
도 못 누림
모든 로직은 서비스에 몰려 있음, 트랜잭션 스크립트
무법천지
비지니스 규칙이 체계적으로 관리되지 않고 비지니스 로직
곳곳에 중복 분산
도메인 모델 객체 활용
Specification 모델링 패턴
BRE(비지니스 룰 엔진) 사용
if(user.age() > AGE_ADULT && user.isMale() && user.getLoyalty() > LOYALTY_VIP) {
giveGift(user);
}
안티패턴 #6
무거운 서비스
단일 객체 서비스
(Single Class Service)
단일 객체 서비스
서비스가 객체 하나로 구성되어 있고 적절하게 분화하지 않
음
서비스 객체의 용도
경계 객체
컨트롤러
파싸드(Facade)
낮은 응집도 높은 결합
코드의 중복이 많고 추상화 수준이 낮아서 코드를 수정함으
로서 발생하는 영향을 예측하기 어렵고 단일 요구사항으로
인한 변경 지점이 흩어져 있다.
클래스 추가 공포증
클래스를 추가하면 클래스 설계가 복잡해진다는 믿음
OOD에 대한 경험 부족
영어...
지나치게 엄격한 아키텍처
 
높은 응집도 낮은 결합
지역적 변경(SRP)
중복 최소화(DRY)
로직과 데이터 근거리 보관
변경 주기에 따른 응집
메시지 = 인터페이스
빈약한 추상화
추상화: SW의 복잡도를 다루는 기술(OOP, FP, 메타 프로그래밍)
인터페이스(완전 추상 클래스) 없는 컴포넌트 경계(정적 바
인딩)
일반화와 특화의 구분 부재
과도한 중복으로 견고성, 신뢰성, 재사용성, 가독성에 문제
발생
서비스 객체는 비니지스 계층의 경계 객체 또는 Facade
비지니스 계층은 넓은 영역
잘못된 의존 관계
정적 바인딩
전역 변수
하드 코딩
싱글턴 남용
인터페이스 미사용
무거운 서비스 정리
AOP를 사용해서 종적 관심사와 횡적 관심사 분리
조합 메서드를 활용하고 DSL을 개발하라
도메인 모델을 도입하라
큰 서비스를 작은 클래스로 분해하고 위임하라
높은 응집도와 낮은 결합도를 갖도록 설계하라
기타
과잉 일반화(Over Generalizing)
Object, 문자열, Map 같이 지나치게 일반적인 타입의 과용
하나님 객체(God Object)
과도한 재사용 시도
Super~
여러 기능에 공통적으로 적용되어야 하는 횡적인 관심
가독성과 변경이 자주 일어나며 (횡적 요소의) 재사용성과
신뢰성이 떨어짐
황금 망치 증후군
편의 객체 상속
편의 객체를 상속함으로써 소중한 상속의 기회를 낭비
기반 클래스가 하나님 객체가 될 위험이 큼
위임으로 해결 가능
과잉 최신 기술 준수
(Over Buzzword Compliance)
온갖 최신 기술로 도배된 아키텍처
검증되지 않은 위험한 기술
교육비용 발생
고객의 잘못된 요구를 무비판적으로 수용
프로젝트 수행 여력이 부족해짐
클라우드
클라우드 적합성
매우 기민하고 가용성이 높은 서비스를 단명하고 망가질 것
으로 예상되는 컴포넌트로 구축
클라우드 특성
전통적 인프라 클라우드
n‑tier SOA, MSA
수직확장성 수평확장성
장애 예방 장애 예상
트랜잭션내 정합성 결과적 정합성
경직성 기민/유연성
수동 운영 자동 운영
낮은 신뢰성 자가 복구
점검 운영 중단 무중단
클라우드 성숙도
결론
연통 배관
스마트 DAO
뒤범벅 아키텍처
긴 공개 메서드
하는 놈 따로, 아는 놈 따로
단일 객체 서비스
과잉 일반화
하나님 객체
편의 객체 상속
과잉 최신 기술 준수
1 of 69

Recommended

[수정본] 우아한 객체지향 by
[수정본] 우아한 객체지향[수정본] 우아한 객체지향
[수정본] 우아한 객체지향Young-Ho Cho
20.1K views173 slides
DDD 구현기초 (거의 Final 버전) by
DDD 구현기초 (거의 Final 버전)DDD 구현기초 (거의 Final 버전)
DDD 구현기초 (거의 Final 버전)beom kyun choi
37.4K views70 slides
애플리케이션 아키텍처와 객체지향 by
애플리케이션 아키텍처와 객체지향 애플리케이션 아키텍처와 객체지향
애플리케이션 아키텍처와 객체지향 Young-Ho Cho
14.5K views109 slides
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 by
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015
AWS로 사용자 천만 명 서비스 만들기 (윤석찬)- 클라우드 태권 2015 Amazon Web Services Korea
16.7K views72 slides
객체지향적인 도메인 레이어 구축하기 by
객체지향적인 도메인 레이어 구축하기객체지향적인 도메인 레이어 구축하기
객체지향적인 도메인 레이어 구축하기Young-Ho Cho
5.1K views94 slides
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들 by
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들Chris Ohk
31.4K views44 slides

More Related Content

What's hot

도메인구현 KSUG 20151128 by
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128beom kyun choi
18K views78 slides
우아한 모노리스 by
우아한 모노리스우아한 모노리스
우아한 모노리스Arawn Park
6.7K views59 slides
도메인 주도 설계의 본질 by
도메인 주도 설계의 본질도메인 주도 설계의 본질
도메인 주도 설계의 본질Young-Ho Cho
48.5K views95 slides
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A... by
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...Amazon Web Services Korea
1.6K views52 slides
역삼역, 이마트 AI_v최종.pdf by
역삼역, 이마트 AI_v최종.pdf역삼역, 이마트 AI_v최종.pdf
역삼역, 이마트 AI_v최종.pdfDeukJin Jeon
933 views74 slides
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트) by
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon Web Services Korea
11.1K views75 slides

What's hot(20)

도메인구현 KSUG 20151128 by beom kyun choi
도메인구현 KSUG 20151128도메인구현 KSUG 20151128
도메인구현 KSUG 20151128
beom kyun choi18K views
우아한 모노리스 by Arawn Park
우아한 모노리스우아한 모노리스
우아한 모노리스
Arawn Park6.7K views
도메인 주도 설계의 본질 by Young-Ho Cho
도메인 주도 설계의 본질도메인 주도 설계의 본질
도메인 주도 설계의 본질
Young-Ho Cho48.5K views
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A... by Amazon Web Services Korea
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...
역삼역, 이마트 AI_v최종.pdf by DeukJin Jeon
역삼역, 이마트 AI_v최종.pdf역삼역, 이마트 AI_v최종.pdf
역삼역, 이마트 AI_v최종.pdf
DeukJin Jeon933 views
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트) by Amazon Web Services Korea
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
Amazon ECS/ECR을 활용하여 마이크로서비스 구성하기 - 김기완 (AWS 솔루션즈아키텍트)
파이썬 플라스크 이해하기 by Yong Joon Moon
파이썬 플라스크 이해하기 파이썬 플라스크 이해하기
파이썬 플라스크 이해하기
Yong Joon Moon19.8K views
AWS 클라우드 비용 최적화를 위한 모범 사례-AWS Summit Seoul 2017 by Amazon Web Services Korea
AWS 클라우드 비용 최적화를 위한 모범 사례-AWS Summit Seoul 2017AWS 클라우드 비용 최적화를 위한 모범 사례-AWS Summit Seoul 2017
AWS 클라우드 비용 최적화를 위한 모범 사례-AWS Summit Seoul 2017
이벤트 기반 분산 시스템을 향한 여정 by Arawn Park
이벤트 기반 분산 시스템을 향한 여정이벤트 기반 분산 시스템을 향한 여정
이벤트 기반 분산 시스템을 향한 여정
Arawn Park13.6K views
컨테이너 기술 ( Container Technology ) 발표 자료 다운로드 by Opennaru, inc.
컨테이너 기술 ( Container Technology ) 발표 자료 다운로드컨테이너 기술 ( Container Technology ) 발표 자료 다운로드
컨테이너 기술 ( Container Technology ) 발표 자료 다운로드
Opennaru, inc. 10.6K views
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017 by Amazon Web Services Korea
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
Amazon ECS를 통한 도커 기반 콘테이너 서비스 구축하기 - AWS Summit Seoul 2017
[221] 이미지를 이해하는 이미지검색: 텍스트기반 이미지검색에 CNN 이용하기 by NAVER D2
[221] 이미지를 이해하는 이미지검색: 텍스트기반 이미지검색에 CNN 이용하기[221] 이미지를 이해하는 이미지검색: 텍스트기반 이미지검색에 CNN 이용하기
[221] 이미지를 이해하는 이미지검색: 텍스트기반 이미지검색에 CNN 이용하기
NAVER D22K views
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다 by Arawn Park
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
잘 키운 모노리스 하나 열 마이크로서비스 안 부럽다
Arawn Park17.9K views
Fargate 를 이용한 ECS with VPC 1부 by Hyun-Mook Choi
Fargate 를 이용한 ECS with VPC 1부Fargate 를 이용한 ECS with VPC 1부
Fargate 를 이용한 ECS with VPC 1부
Hyun-Mook Choi6.6K views
Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017 by Amazon Web Services Korea
Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017
Amazon S3 이미지 온디맨드 리사이징을 통한 70% 서버 비용 줄이기 - AWS Summit Seoul 2017
AEM and Sling by Lo Ki
AEM and SlingAEM and Sling
AEM and Sling
Lo Ki1.9K views
FIFA 온라인 3의 MongoDB 사용기 by Jongwon Kim
FIFA 온라인 3의 MongoDB 사용기FIFA 온라인 3의 MongoDB 사용기
FIFA 온라인 3의 MongoDB 사용기
Jongwon Kim16.9K views
Data platform data pipeline(Airflow, Kubernetes) by 창언 정
Data platform data pipeline(Airflow, Kubernetes)Data platform data pipeline(Airflow, Kubernetes)
Data platform data pipeline(Airflow, Kubernetes)
창언 정1.6K views
webservice scaling for newbie by DaeMyung Kang
webservice scaling for newbiewebservice scaling for newbie
webservice scaling for newbie
DaeMyung Kang21.8K views
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기 by NAVER D2
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
NAVER D23.6K views

Viewers also liked

변경에 강한 애플리케이션, 유기적 애플리케이션 by
변경에 강한 애플리케이션, 유기적 애플리케이션변경에 강한 애플리케이션, 유기적 애플리케이션
변경에 강한 애플리케이션, 유기적 애플리케이션Sungchul Park
4.5K views49 slides
Design patterns by
Design patternsDesign patterns
Design patternsJoshua Yoon
553 views123 slides
동영상입문 by
동영상입문동영상입문
동영상입문Sukjin Yun
465 views13 slides
HolubOnPatterns/chapter2_2 by
HolubOnPatterns/chapter2_2HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2SeungHyun Hwang
769 views52 slides
Builder, prototype, singleton pattern by
Builder, prototype, singleton patternBuilder, prototype, singleton pattern
Builder, prototype, singleton patternYoonJong Choi
559 views21 slides
IoC and DI Pattern by
IoC and DI PatternIoC and DI Pattern
IoC and DI PatternSangwon Ko
1.5K views27 slides

Viewers also liked(20)

변경에 강한 애플리케이션, 유기적 애플리케이션 by Sungchul Park
변경에 강한 애플리케이션, 유기적 애플리케이션변경에 강한 애플리케이션, 유기적 애플리케이션
변경에 강한 애플리케이션, 유기적 애플리케이션
Sungchul Park4.5K views
동영상입문 by Sukjin Yun
동영상입문동영상입문
동영상입문
Sukjin Yun465 views
Builder, prototype, singleton pattern by YoonJong Choi
Builder, prototype, singleton patternBuilder, prototype, singleton pattern
Builder, prototype, singleton pattern
YoonJong Choi559 views
IoC and DI Pattern by Sangwon Ko
IoC and DI PatternIoC and DI Pattern
IoC and DI Pattern
Sangwon Ko1.5K views
프레임워크와 어플리케이션 동시에 구축하기 by Sangwon Ko
프레임워크와 어플리케이션 동시에 구축하기프레임워크와 어플리케이션 동시에 구축하기
프레임워크와 어플리케이션 동시에 구축하기
Sangwon Ko739 views
Servlet design pattern by Sukjin Yun
Servlet design patternServlet design pattern
Servlet design pattern
Sukjin Yun986 views
Hibernate5.x by visual khh
Hibernate5.xHibernate5.x
Hibernate5.x
visual khh867 views
[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩 by XpressEngine
[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩
[XECon2016] A-1 정규창 [React] Immutable한 양방향 데이터 바인딩
XpressEngine1.3K views
Servlet Architecture by JU Chae
Servlet ArchitectureServlet Architecture
Servlet Architecture
JU Chae602 views
Anatomy of a Data Product and Lending Club Data by Sri Ambati
Anatomy of a Data Product and Lending Club DataAnatomy of a Data Product and Lending Club Data
Anatomy of a Data Product and Lending Club Data
Sri Ambati3.4K views
Hibernate start (하이버네이트 시작하기) by visual khh
Hibernate start (하이버네이트 시작하기)Hibernate start (하이버네이트 시작하기)
Hibernate start (하이버네이트 시작하기)
visual khh14.4K views
Starpl 20111012 스타플5를_만들기_시작하며 by DK Lee
Starpl 20111012 스타플5를_만들기_시작하며Starpl 20111012 스타플5를_만들기_시작하며
Starpl 20111012 스타플5를_만들기_시작하며
DK Lee1.3K views
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!) by DK Lee
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
DK Lee2.5K views

Similar to 자바 서버 애플리케이션 아키텍처 안티 패턴

[Dev rookie]designpattern by
[Dev rookie]designpattern[Dev rookie]designpattern
[Dev rookie]designpattern대영 노
59 views54 slides
프로그래밍 방식의 변천 과정 by
프로그래밍 방식의 변천 과정프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정중선 곽
2.6K views22 slides
OOP - Object Oriendted Programing by
OOP - Object Oriendted ProgramingOOP - Object Oriendted Programing
OOP - Object Oriendted ProgramingChangHyeon Bae
97 views19 slides
소프트웨어설계론 by
소프트웨어설계론소프트웨어설계론
소프트웨어설계론JeongDong Kim
1.5K views127 slides
대규모 구조 by
대규모 구조대규모 구조
대규모 구조ukjinkwoun
555 views24 slides
11장 시스템 by
11장 시스템11장 시스템
11장 시스템kidoki
576 views18 slides

Similar to 자바 서버 애플리케이션 아키텍처 안티 패턴(18)

[Dev rookie]designpattern by 대영 노
[Dev rookie]designpattern[Dev rookie]designpattern
[Dev rookie]designpattern
대영 노59 views
프로그래밍 방식의 변천 과정 by 중선 곽
프로그래밍 방식의 변천 과정프로그래밍 방식의 변천 과정
프로그래밍 방식의 변천 과정
중선 곽2.6K views
OOP - Object Oriendted Programing by ChangHyeon Bae
OOP - Object Oriendted ProgramingOOP - Object Oriendted Programing
OOP - Object Oriendted Programing
ChangHyeon Bae97 views
소프트웨어설계론 by JeongDong Kim
소프트웨어설계론소프트웨어설계론
소프트웨어설계론
JeongDong Kim1.5K views
대규모 구조 by ukjinkwoun
대규모 구조대규모 구조
대규모 구조
ukjinkwoun555 views
11장 시스템 by kidoki
11장 시스템11장 시스템
11장 시스템
kidoki576 views
OOP SOLID PRINCIPLE(KOREAN) by Daeyeon Kim
OOP SOLID PRINCIPLE(KOREAN)OOP SOLID PRINCIPLE(KOREAN)
OOP SOLID PRINCIPLE(KOREAN)
Daeyeon Kim27 views
소프트웨어 아키텍처 문서화 by 영기 김
소프트웨어 아키텍처 문서화소프트웨어 아키텍처 문서화
소프트웨어 아키텍처 문서화
영기 김13.8K views
[강의] OOP 개요 by Nohyun Kee
[강의] OOP 개요[강의] OOP 개요
[강의] OOP 개요
Nohyun Kee1.2K views
소프트웨어 아키텍처 by 영기 김
소프트웨어 아키텍처소프트웨어 아키텍처
소프트웨어 아키텍처
영기 김29.1K views
IRIS by ymtech
IRISIRIS
IRIS
ymtech1.2K views
실용주의 아키텍트 by Haeil Yi
실용주의 아키텍트실용주의 아키텍트
실용주의 아키텍트
Haeil Yi600 views
[스프링 스터디 1일차] 오브젝트와 의존관계 by AnselmKim
[스프링 스터디 1일차] 오브젝트와 의존관계[스프링 스터디 1일차] 오브젝트와 의존관계
[스프링 스터디 1일차] 오브젝트와 의존관계
AnselmKim310 views
SoftwareEngeneering3rd by 영진 박
SoftwareEngeneering3rdSoftwareEngeneering3rd
SoftwareEngeneering3rd
영진 박1.4K views
스프링보다 중요한 스프링 이야기 by Sungchul Park
스프링보다 중요한 스프링 이야기스프링보다 중요한 스프링 이야기
스프링보다 중요한 스프링 이야기
Sungchul Park12.8K views
소프트웨어 설계 악취: 기술 부채 관리 방법 by Jay Park
소프트웨어 설계 악취: 기술 부채 관리 방법소프트웨어 설계 악취: 기술 부채 관리 방법
소프트웨어 설계 악취: 기술 부채 관리 방법
Jay Park9.9K views
도메인 주도 설계 - 16 대규모 구조 by SH Park
도메인 주도 설계 - 16 대규모 구조도메인 주도 설계 - 16 대규모 구조
도메인 주도 설계 - 16 대규모 구조
SH Park972 views
[Uws] enterprise application architecture, msa, java9, spring 소개 by HYUN-JOO LEE
[Uws] enterprise application architecture, msa, java9, spring 소개[Uws] enterprise application architecture, msa, java9, spring 소개
[Uws] enterprise application architecture, msa, java9, spring 소개
HYUN-JOO LEE289 views

More from Sungchul Park

애자일 안한 이야기 by
애자일 안한 이야기애자일 안한 이야기
애자일 안한 이야기Sungchul Park
2.9K views39 slides
Java null survival guide by
Java null survival guideJava null survival guide
Java null survival guideSungchul Park
4K views67 slides
자바에서 null을 안전하게 다루는 방법 by
자바에서 null을 안전하게 다루는 방법자바에서 null을 안전하게 다루는 방법
자바에서 null을 안전하게 다루는 방법Sungchul Park
19.7K views38 slides
Java.next by
Java.nextJava.next
Java.nextSungchul Park
2.8K views51 slides
자바 테스트 자동화 by
자바 테스트 자동화자바 테스트 자동화
자바 테스트 자동화Sungchul Park
7.2K views91 slides
Geeks at SK Planet by
Geeks at SK PlanetGeeks at SK Planet
Geeks at SK PlanetSungchul Park
2.1K views46 slides

More from Sungchul Park(18)

애자일 안한 이야기 by Sungchul Park
애자일 안한 이야기애자일 안한 이야기
애자일 안한 이야기
Sungchul Park2.9K views
자바에서 null을 안전하게 다루는 방법 by Sungchul Park
자바에서 null을 안전하게 다루는 방법자바에서 null을 안전하게 다루는 방법
자바에서 null을 안전하게 다루는 방법
Sungchul Park19.7K views
자바 테스트 자동화 by Sungchul Park
자바 테스트 자동화자바 테스트 자동화
자바 테스트 자동화
Sungchul Park7.2K views
Beyond Java: 자바 8을 중심으로 본 자바의 혁신 by Sungchul Park
Beyond Java: 자바 8을 중심으로 본 자바의 혁신Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Sungchul Park10.3K views
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처 by Sungchul Park
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처 스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
스프링 코어 강의 3부 - 웹 애플리케이션 아키텍처
Sungchul Park6.8K views
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용 by Sungchul Park
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
스프링 코어 강의 2부 - Java 구성을 활용한 스프링 코어 사용
Sungchul Park6.5K views
스프링 코어 강의 1부 - 봄 맞이 준비 운동 by Sungchul Park
스프링 코어 강의 1부 - 봄 맞이 준비 운동스프링 코어 강의 1부 - 봄 맞이 준비 운동
스프링 코어 강의 1부 - 봄 맞이 준비 운동
Sungchul Park10.5K views
자바8 나머지 공개 by Sungchul Park
자바8 나머지 공개자바8 나머지 공개
자바8 나머지 공개
Sungchul Park2.9K views
자바8 람다 나머지 공개 by Sungchul Park
자바8 람다 나머지 공개자바8 람다 나머지 공개
자바8 람다 나머지 공개
Sungchul Park9.3K views
java 8 람다식 소개와 의미 고찰 by Sungchul Park
java 8 람다식 소개와 의미 고찰java 8 람다식 소개와 의미 고찰
java 8 람다식 소개와 의미 고찰
Sungchul Park58K views
Open Source가 바꾼 자바 by Sungchul Park
Open Source가 바꾼 자바Open Source가 바꾼 자바
Open Source가 바꾼 자바
Sungchul Park1.5K views

자바 서버 애플리케이션 아키텍처 안티 패턴