Transcript
Page 1: 네이버 오픈세미나 백엔드_아키텍쳐

네이버����������� ������������������  웹서비스를����������� ������������������  지탱하는����������� ������������������  백엔드����������� ������������������  아키텍쳐����������� ������������������  

작성자:����������� ������������������  정민우����������� ������������������  

소속팀/����������� ������������������  상위부서����������� ������������������  :����������� ������������������  웹플랫폼개발랩����������� ������������������  /����������� ������������������  네이버����������� ������������������  랩스����������� ������������������  

ⓒ����������� ������������������  NAVER����������� ������������������  Corp.����������� ������������������  

Page 2: 네이버 오픈세미나 백엔드_아키텍쳐

1.개요����������� ������������������  

Page 3: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

3����������� ������������������  /����������� ������������������  97����������� ������������������  

1.1����������� ������������������  사용자����������� ������������������  

����������� ������������������  

����������� ������������������  

?

Page 4: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

4����������� ������������������  /����������� ������������������  97����������� ������������������  

1.2����������� ������������������  데이터����������� ������������������  ����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 5: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

5����������� ������������������  /����������� ������������������  97����������� ������������������  

1.3����������� ������������������  서비스����������� ������������������  규모����������� ������������������  ����������� ������������������  

?

Page 6: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

6����������� ������������������  /����������� ������������������  97����������� ������������������  

1.3����������� ������������������  서비스����������� ������������������  규모����������� ������������������  ����������� ������������������  

?

?

Page 7: 네이버 오픈세미나 백엔드_아키텍쳐

2.����������� ������������������  개발����������� ������������������  환경����������� ������������������  

Page 8: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

8����������� ������������������  /����������� ������������������  97����������� ������������������  

2.1����������� ������������������  OS����������� ������������������  ����������� ������������������  

Page 9: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

9����������� ������������������  /����������� ������������������  97����������� ������������������  

2.2����������� ������������������  프로그래밍����������� ������������������  언어����������� ������������������  ����������� ������������������  

Page 10: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

10����������� ������������������  /����������� ������������������  97����������� ������������������  

2.3����������� ������������������  IDE����������� ������������������  ����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 11: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

11����������� ������������������  /����������� ������������������  97����������� ������������������  

2.4����������� ������������������  빌드����������� ������������������  툴����������� ������������������  ����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 12: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

12����������� ������������������  /����������� ������������������  97����������� ������������������  

2.5����������� ������������������  VCS(Version����������� ������������������  Control����������� ������������������  System)����������� ������������������  ����������� ������������������  

Page 13: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

13����������� ������������������  /����������� ������������������  97����������� ������������������  

2.6����������� ������������������  CI(continuous����������� ������������������  Integration)����������� ������������������  ����������� ������������������  

Page 14: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

14����������� ������������������  /����������� ������������������  97����������� ������������������  

2.6����������� ������������������  CI(continuous����������� ������������������  Integration)����������� ������������������  ����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Hudson

Page 15: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

15����������� ������������������  /����������� ������������������  97����������� ������������������  

2.6����������� ������������������  CI(continuous����������� ������������������  Integration)����������� ������������������  ����������� ������������������  

Page 16: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

16����������� ������������������  /����������� ������������������  97����������� ������������������  

2.6����������� ������������������  CI(continuous����������� ������������������  Integration)����������� ������������������  ����������� ������������������  

Page 17: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

17����������� ������������������  /����������� ������������������  97����������� ������������������  

2.7����������� ������������������  배포����������� ������������������  서버����������� ������������������  ����������� ������������������  

d e v

S ta g e

re a l

B u ild&

D e p lo y

Page 18: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

18����������� ������������������  /����������� ������������������  97����������� ������������������  

2.8����������� ������������������  빌드����������� ������������������  배포����������� ������������������  ����������� ������������������  

one����������� ������������������  click����������� ������������������  

Page 19: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

19����������� ������������������  /����������� ������������������  97����������� ������������������  

2.8����������� ������������������  빌드����������� ������������������  배포����������� ������������������  ����������� ������������������  

d e v

S ta g e

re a l

B u ild&

D e p lo y

Page 20: 네이버 오픈세미나 백엔드_아키텍쳐

3.����������� ������������������  웹����������� ������������������  서비스����������� ������������������  구조����������� ������������������  

Page 21: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

21����������� ������������������  /����������� ������������������  97����������� ������������������  

3.1����������� ������������������  구조����������� ������������������  ����������� ������������������  

W e bS e v e r

W e bA p p lic a t io nS e rv e r

D a t a b a seH t tp

N A V E R

Page 22: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

22����������� ������������������  /����������� ������������������  97����������� ������������������  

3.2����������� ������������������  구조����������� ������������������  -����������� ������������������  Multi����������� ������������������  Server����������� ������������������  ����������� ������������������  

W e bS e v e r

H t tp

N A V E RW eb A p p lica t io n S e rv e r

D a ta b a se

Page 23: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

23����������� ������������������  /����������� ������������������  97����������� ������������������  

3.3����������� ������������������  구조����������� ������������������  -����������� ������������������  Add����������� ������������������  Swich����������� ������������������  ����������� ������������������  

W e bS e v e r

H t tp

N A V E R

W eb A p p lica t io n S e rv e r

W e bS e v e r

W e b A p p lica t io n S e rv e r

Page 24: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

24����������� ������������������  /����������� ������������������  97����������� ������������������  

3.4����������� ������������������  구조����������� ������������������  -����������� ������������������  Add����������� ������������������  Cache����������� ������������������  ����������� ������������������  

W e bS e v e r

H t tp

N A V E R

W eb A p p lica t io n S e rv e r

D a ta b a se

C a ch e S e rv e r

Page 25: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

25����������� ������������������  /����������� ������������������  97����������� ������������������  

3.5����������� ������������������  구조����������� ������������������  -����������� ������������������  Add����������� ������������������  Batch����������� ������������������  ����������� ������������������  

W e bS e v e r

H t tp

N A V E R

W eb A p p lica t io n S e rv e r

D a tab a s e

C a c h e S e rv e r

B a tc h S e rv e r

Page 26: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

26����������� ������������������  /����������� ������������������  97����������� ������������������  

3.6����������� ������������������  구조����������� ������������������  -����������� ������������������  Add����������� ������������������  Logic����������� ������������������  Server����������� ������������������  ����������� ������������������  

W e bS e v e r

H t tp

N A V E R

W e b A p p l ic a t io n S e rv e r

D a tab a s e

C a ch e S e rv e r

B at c h S e rv e r

B u sin e ss L o g ic S e rv e r

Page 27: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

27����������� ������������������  /����������� ������������������  97����������� ������������������  

3.7����������� ������������������  구조����������� ������������������  -����������� ������������������  NAVER����������� ������������������  서비스����������� ������������������  연동����������� ������������������  ����������� ������������������  

W e bS e v e r

H t t p

A se rv ice

W A S

D a ta b a se

C ac h e S e r v e r

B a t c h S e rv e r

B u sin e ss L o g ic S e rv e r

B se rv ic e C se rv ic e D se rv ice

Page 28: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

28����������� ������������������  /����������� ������������������  97����������� ������������������  

3.8����������� ������������������  구조����������� ������������������  -����������� ������������������  Protocol����������� ������������������  ����������� ������������������  

W e bS e v e r

H t t p

A se rv ice

W A S

D a ta b a se

C ac h e S e r v e r

B a t c h S e rv e r

B u sin e ss L o g ic S e rv e r

B se rv ic e C se rv ic e

쑈둬 ᆺ백혤폭사내����������� ������������������  프로토콜����������� ������������������  

Page 29: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

29����������� ������������������  /����������� ������������������  97����������� ������������������  

3.9����������� ������������������  구조����������� ������������������  -����������� ������������������  외부����������� ������������������  서비스����������� ������������������  연동����������� ������������������  ����������� ������������������  

A se rv ice

Page 30: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

30����������� ������������������  /����������� ������������������  97����������� ������������������  

3.10����������� ������������������  구조����������� ������������������  -����������� ������������������  etc����������� ������������������  ����������� ������������������  

- ����������� ������������������  모니터링����������� ������������������  

- ����������� ������������������  게이트웨이����������� ������������������  

- ����������� ������������������  서버����������� ������������������  파일����������� ������������������  정보����������� ������������������  수집����������� ������������������  

-����������� ������������������  한사람이����������� ������������������  모든걸����������� ������������������  담당?!����������� ������������������  ����������� ������������������  

Page 31: 네이버 오픈세미나 백엔드_아키텍쳐

4.����������� ������������������  웹����������� ������������������  프레임워크����������� ������������������  

Page 32: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

32����������� ������������������  /����������� ������������������  97����������� ������������������  

4.1����������� ������������������  어떤걸����������� ������������������  쓰는가����������� ������������������  

Language����������� ������������������  Only?!����������� ������������������  ����������� ������������������  

����������� ������������������  

Page 33: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

33����������� ������������������  /����������� ������������������  97����������� ������������������  

4.2����������� ������������������  정의����������� ������������������  ����������� ������������������  

•  플랫폼����������� ������������������  

•  프레임워크����������� ������������������  

•  라이브러리����������� ������������������  

Page 34: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

34����������� ������������������  /����������� ������������������  97����������� ������������������  

4.3����������� ������������������  웹����������� ������������������  프레임워크����������� ������������������  

Page 35: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

35����������� ������������������  /����������� ������������������  97����������� ������������������  

4.4����������� ������������������  오픈소스����������� ������������������  프레임워크����������� ������������������  -����������� ������������������  MVC����������� ������������������  

Page 36: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

36����������� ������������������  /����������� ������������������  97����������� ������������������  

4.4����������� ������������������  오픈소스����������� ������������������  프레임워크����������� ������������������  ­–����������� ������������������  DAO(Data����������� ������������������  Access����������� ������������������  Object)����������� ������������������  

Page 37: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

37����������� ������������������  /����������� ������������������  97����������� ������������������  

4.5����������� ������������������  NAVER����������� ������������������  프레임워크����������� ������������������  -����������� ������������������  LUCY����������� ������������������  

����������� ������������������  

����������� ������������������  

LUCY����������� ������������������  

Page 38: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

38����������� ������������������  /����������� ������������������  97����������� ������������������  

4.5����������� ������������������  NAVER����������� ������������������  프레임워크����������� ������������������  -����������� ������������������  BLOC����������� ������������������  

BLOC����������� ������������������  Business����������� ������������������  Logic����������� ������������������  Object����������� ������������������  Container����������� ������������������  

비즈니스����������� ������������������  로직을����������� ������������������  제공하는����������� ������������������  서비스����������� ������������������  컨테이너����������� ������������������  플랫폼����������� ������������������  

����������� ������������������  

Page 39: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

39����������� ������������������  /����������� ������������������  97����������� ������������������  

4.5����������� ������������������  NAVER����������� ������������������  프레임워크����������� ������������������  -����������� ������������������  BLOC����������� ������������������  

Page 40: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

40����������� ������������������  /����������� ������������������  97����������� ������������������  

4.5����������� ������������������  NAVER����������� ������������������  프레임워크����������� ������������������  -����������� ������������������  BLOC����������� ������������������  

B L O C

Page 41: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

41����������� ������������������  /����������� ������������������  97����������� ������������������  

4.6����������� ������������������  Batch����������� ������������������  

Batch����������� ������������������  processing����������� ������������������  is����������� ������������������  ����������� ������������������  

the����������� ������������������  execution����������� ������������������  of����������� ������������������  a����������� ������������������  series����������� ������������������  of����������� ������������������  programs����������� ������������������  ����������� ������������������  

on����������� ������������������  a����������� ������������������  computer����������� ������������������  without����������� ������������������  manual����������� ������������������  intervention.����������� ������������������  ����������� ������������������  

����������� ������������������  

Page 42: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

42����������� ������������������  /����������� ������������������  97����������� ������������������  

4.6����������� ������������������  Batch����������� ������������������  -����������� ������������������  프레임워크����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 43: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

43����������� ������������������  /����������� ������������������  97����������� ������������������  

4.6����������� ������������������  Batch����������� ������������������  -����������� ������������������  관리����������� ������������������  

����������� ������������������  

����������� ������������������  

Hudson

Page 44: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

44����������� ������������������  /����������� ������������������  97����������� ������������������  

4.6����������� ������������������  Batch����������� ������������������  -����������� ������������������  관리����������� ������������������  

•  Build����������� ������������������  trigger����������� ������������������  schedule����������� ������������������  

• History����������� ������������������  

• Authentication����������� ������������������  

•  Batch����������� ������������������  on����������� ������������������  Time����������� ������������������  

•  Batch����������� ������������������  time����������� ������������������  check����������� ������������������  

•  SMS,����������� ������������������  e-mail����������� ������������������  Notifier����������� ������������������  

•  Spring����������� ������������������  batch����������� ������������������  repository����������� ������������������  view����������� ������������������  

• Master����������� ������������������  ­–Slave����������� ������������������  

•  Etc����������� ������������������  

Page 45: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

45����������� ������������������  /����������� ������������������  97����������� ������������������  

4.7����������� ������������������  프레임워크����������� ������������������  업그레이드����������� ������������������  &����������� ������������������  마이그레이션����������� ������������������  

• Major����������� ������������������  버전����������� ������������������  업그레이드����������� ������������������  

• 간단하게����������� ������������������  툴����������� ������������������  실행으로����������� ������������������  ����������� ������������������  가능?!����������� ������������������  

• 한번에����������� ������������������  전환?!����������� ������������������  ����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  URL,����������� ������������������  기능별����������� ������������������  

����������� ������������������  ����������� ������������������  -����������� ������������������  Servlet����������� ������������������  등록����������� ������������������  

• Batch����������� ������������������  마이그레이션����������� ������������������  

• Etc����������� ������������������  

Page 46: 네이버 오픈세미나 백엔드_아키텍쳐

5.����������� ������������������  데이터베이스����������� ������������������  

Page 47: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

47����������� ������������������  /����������� ������������������  97����������� ������������������  

5.1����������� ������������������  어떤걸����������� ������������������  쓰는가����������� ������������������  

Page 48: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

48����������� ������������������  /����������� ������������������  97����������� ������������������  

5.2����������� ������������������  CUBRID����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 49: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

49����������� ������������������  /����������� ������������������  97����������� ������������������  

5.3����������� ������������������  샤딩,����������� ������������������  파티셔닝����������� ������������������  

•  대용량����������� ������������������  데이터����������� ������������������  

•  많은����������� ������������������  사용자����������� ������������������  

•  빠른����������� ������������������  응답속도����������� ������������������  

•  Transaction����������� ������������������  ����������� ������������������  

����������� ������������������  

Page 50: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

50����������� ������������������  /����������� ������������������  97����������� ������������������  

5.4����������� ������������������  응답속도����������� ������������������  

•  Cache����������� ������������������  

•  Search����������� ������������������  Platform����������� ������������������  

•  Key/Value����������� ������������������  DB����������� ������������������  

Page 51: 네이버 오픈세미나 백엔드_아키텍쳐

6.����������� ������������������  테스트����������� ������������������  

Page 52: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

52����������� ������������������  /����������� ������������������  97����������� ������������������  

6.1����������� ������������������  Unit����������� ������������������  Test����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 53: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

53����������� ������������������  /����������� ������������������  97����������� ������������������  

6.2����������� ������������������  Functional����������� ������������������  Test����������� ������������������  ­–����������� ������������������  FitNesse,����������� ������������������  NTAF,����������� ������������������  Selenium����������� ������������������  

Page 54: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

54����������� ������������������  /����������� ������������������  97����������� ������������������  

6.3����������� ������������������  Performance����������� ������������������  Test����������� ������������������  

Page 55: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

55����������� ������������������  /����������� ������������������  97����������� ������������������  

6.3����������� ������������������  Performance����������� ������������������  Test����������� ������������������  

Page 56: 네이버 오픈세미나 백엔드_아키텍쳐

7.����������� ������������������  모니터링����������� ������������������  

Page 57: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

57����������� ������������������  /����������� ������������������  97����������� ������������������  

7.1����������� ������������������  24/7����������� ������������������  

Page 58: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

58����������� ������������������  /����������� ������������������  97����������� ������������������  

7.1����������� ������������������  24/7����������� ������������������  

Page 59: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

59����������� ������������������  /����������� ������������������  97����������� ������������������  

7.2����������� ������������������  자동화����������� ������������������  

Page 60: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

60����������� ������������������  /����������� ������������������  97����������� ������������������  

7.2����������� ������������������  자동화����������� ������������������  

Page 61: 네이버 오픈세미나 백엔드_아키텍쳐

8.����������� ������������������  트러블����������� ������������������  슈팅����������� ������������������  

Page 62: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

62����������� ������������������  /����������� ������������������  97����������� ������������������  

8.1����������� ������������������  자동화����������� ������������������  툴?!����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 63: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

63����������� ������������������  /����������� ������������������  97����������� ������������������  

8.1����������� ������������������  자동화����������� ������������������  툴?!����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

그런거����������� ������������������  없다!!����������� ������������������  

Page 64: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

64����������� ������������������  /����������� ������������������  97����������� ������������������  

8.1����������� ������������������  자동화����������� ������������������  툴?!����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 65: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

65����������� ������������������  /����������� ������������������  97����������� ������������������  

8.2����������� ������������������  종류����������� ������������������  

• NullPointException����������� ������������������  

• Invalid����������� ������������������  Value����������� ������������������  

• Server����������� ������������������  ����������� ������������������  Configuration����������� ������������������  

• Not����������� ������������������  Search����������� ������������������  

• Library����������� ������������������  Version����������� ������������������  Upgrade����������� ������������������  

• Etc����������� ������������������  ����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 66: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

66����������� ������������������  /����������� ������������������  97����������� ������������������  

8.2����������� ������������������  종류����������� ������������������  

•  Concurrent����������� ������������������  

•  Connector����������� ������������������  

•  Thread����������� ������������������  Pool����������� ������������������  

•  DB����������� ������������������  Error����������� ������������������  

•  Deadlock����������� ������������������  

•  Transaction����������� ������������������  

•  query����������� ������������������  timeout����������� ������������������  

•  Hang����������� ������������������  

•  OOM(out����������� ������������������  of����������� ������������������  memory)����������� ������������������  

•  GC����������� ������������������  

•  Etc����������� ������������������  

Page 67: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

67����������� ������������������  /����������� ������������������  97����������� ������������������  

8.2����������� ������������������  종류����������� ������������������  

W e bS e v e r

H t t p

A se rv ice

W A S

D a ta b a se

C ac h e S e r v e r

B a t c h S e rv e r

B u sin e ss L o g ic S e rv e r

B se rv ic e C se rv ic e D se rv ice

Page 68: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

68����������� ������������������  /����������� ������������������  97����������� ������������������  

8.3����������� ������������������  해결����������� ������������������  

Page 69: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

69����������� ������������������  /����������� ������������������  97����������� ������������������  

8.3����������� ������������������  해결����������� ������������������  

•  알아야����������� ������������������  될����������� ������������������  것도����������� ������������������  

•  봐야����������� ������������������  할����������� ������������������  것도����������� ������������������  

•  Debug,����������� ������������������  코드����������� ������������������  리뷰����������� ������������������  

•  경험,����������� ������������������  노하우����������� ������������������  

•  툴����������� ������������������  

•  범위����������� ������������������  좁히기����������� ������������������  

•  재현����������� ������������������  ->����������� ������������������  원인����������� ������������������  ->����������� ������������������  해결����������� ������������������  

Page 70: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

70����������� ������������������  /����������� ������������������  97����������� ������������������  

8.3����������� ������������������  해결����������� ������������������  ­–����������� ������������������  툴(APM)����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 71: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

71����������� ������������������  /����������� ������������������  97����������� ������������������  

8.3����������� ������������������  해결����������� ������������������  ­–����������� ������������������  툴(JAVA)����������� ������������������  

•  GC����������� ������������������  :����������� ������������������  jstat����������� ������������������  ����������� ������������������  

•  Memory����������� ������������������  :����������� ������������������  jmap,����������� ������������������  jhat����������� ������������������  

•  Thread����������� ������������������  :����������� ������������������  jstack����������� ������������������  

Page 72: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

72����������� ������������������  /����������� ������������������  97����������� ������������������  

8.3����������� ������������������  해결����������� ������������������  ­–����������� ������������������  툴(GC)����������� ������������������  

•  Hpjmeter����������� ������������������  

•  GC����������� ������������������  Viewer����������� ������������������  

•  IBM����������� ������������������  Pattern����������� ������������������  Modeling����������� ������������������  and����������� ������������������  Analysis����������� ������������������  Tool����������� ������������������  

•  JVisualVM의����������� ������������������  VisualGC����������� ������������������  plugin����������� ������������������  

Page 73: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

73����������� ������������������  /����������� ������������������  97����������� ������������������  

8.3����������� ������������������  해결����������� ������������������  ­–����������� ������������������  툴(Heap)����������� ������������������  

•  Eclipse����������� ������������������  Memory����������� ������������������  Analyzer����������� ������������������  

•  IBM����������� ������������������  HeapAnalyzer����������� ������������������  

Page 74: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

74����������� ������������������  /����������� ������������������  97����������� ������������������  

8.3����������� ������������������  해결����������� ������������������  ­–����������� ������������������  툴(Thread)����������� ������������������  

•  IBM����������� ������������������  Thread����������� ������������������  and����������� ������������������  Monitor����������� ������������������  Dump����������� ������������������  Analyzer����������� ������������������  

•  TDA(Thread����������� ������������������  Dump����������� ������������������  Analyzer)����������� ������������������  

Page 75: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

75����������� ������������������  /����������� ������������������  97����������� ������������������  

8.4����������� ������������������  예방����������� ������������������  

• ����������� ������������������  Log����������� ������������������  

• ����������� ������������������  JVM����������� ������������������  Option����������� ������������������  

• ����������� ������������������  Monitoring����������� ������������������  

• ����������� ������������������  Etc����������� ������������������  ����������� ������������������  

Page 76: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

76����������� ������������������  /����������� ������������������  97����������� ������������������  

8.5����������� ������������������  노하우����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  네이버����������� ������������������  개발자����������� ������������������  블로그����������� ������������������  

����������� ������������������  Hello����������� ������������������  world����������� ������������������  ����������� ������������������  

Page 77: 네이버 오픈세미나 백엔드_아키텍쳐

9.����������� ������������������  늘어나는����������� ������������������  사용자,����������� ������������������  요청량,����������� ������������������  데이터����������� ������������������  ����������� ������������������  

Page 78: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

78����������� ������������������  /����������� ������������������  97����������� ������������������  

9.1����������� ������������������  갑자기����������� ������������������  문제����������� ������������������  발생����������� ������������������  

어느날����������� ������������������  갑자기!!����������� ������������������  

전에는����������� ������������������  잘����������� ������������������  됐는데ㅠㅠ����������� ������������������  

Page 79: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

79����������� ������������������  /����������� ������������������  97����������� ������������������  

9.1����������� ������������������  갑자기����������� ������������������  문제����������� ������������������  발생����������� ������������������  

• 동시����������� ������������������  요청량����������� ������������������  증가����������� ������������������  

• 점점����������� ������������������  쌓이는����������� ������������������  데이터����������� ������������������  

• 커진����������� ������������������  로그����������� ������������������  파일����������� ������������������  

• 장비����������� ������������������  문제����������� ������������������  

• 간헐적����������� ������������������  동시성����������� ������������������  문제����������� ������������������  

• 네트워크����������� ������������������  오류����������� ������������������  

• 기타����������� ������������������  

Page 80: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

80����������� ������������������  /����������� ������������������  97����������� ������������������  

9.2����������� ������������������  이중화����������� ������������������  

•  IDC����������� ������������������  

•  Master����������� ������������������  Slave����������� ������������������  DB����������� ������������������  

•  RAID����������� ������������������  

Page 81: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

81����������� ������������������  /����������� ������������������  97����������� ������������������  

9.3����������� ������������������  로그����������� ������������������  

로그����������� ������������������  수집����������� ������������������  시스템����������� ������������������  

Page 82: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

82����������� ������������������  /����������� ������������������  97����������� ������������������  

9.4����������� ������������������  서버����������� ������������������  증설����������� ������������������  

one����������� ������������������  click����������� ������������������  

Page 83: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

83����������� ������������������  /����������� ������������������  97����������� ������������������  

9.5����������� ������������������  무정지����������� ������������������  서비스����������� ������������������  

Read����������� ������������������  Only����������� ������������������  Service����������� ������������������  

Page 84: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

84����������� ������������������  /����������� ������������������  97����������� ������������������  

9.6����������� ������������������  Read,����������� ������������������  Write����������� ������������������  

분리����������� ������������������  

Page 85: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

85����������� ������������������  /����������� ������������������  97����������� ������������������  

9.7����������� ������������������  배포����������� ������������������  

•  서버수����������� ������������������  증가����������� ������������������  

•  동시에����������� ������������������  

•  한번에����������� ������������������  ����������� ������������������  

•  롤백����������� ������������������  

•  헬스����������� ������������������  체크����������� ������������������  

Page 86: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

86����������� ������������������  /����������� ������������������  97����������� ������������������  

9.8����������� ������������������  Hadoop����������� ������������������  

Page 87: 네이버 오픈세미나 백엔드_아키텍쳐

10.����������� ������������������  Etc����������� ������������������  

Page 88: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

88����������� ������������������  /����������� ������������������  97����������� ������������������  

10.1����������� ������������������  오픈소스����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 89: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

89����������� ������������������  /����������� ������������������  97����������� ������������������  

10.2����������� ������������������  기술����������� ������������������  트렌드����������� ������������������  

����������� ������������������  

����������� ������������������  

����������� ������������������  

Page 90: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

90����������� ������������������  /����������� ������������������  97����������� ������������������  

����������� ������������������  ����������� ������������������  

Don’t����������� ������������������  worry,����������� ������������������  

No����������� ������������������  one����������� ������������������  knows����������� ������������������  everything.����������� ������������������  

Page 91: 네이버 오픈세미나 백엔드_아키텍쳐

Thank����������� ������������������  you����������� ������������������  

Page 92: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

92����������� ������������������  /����������� ������������������  97����������� ������������������  

참조����������� ������������������  

•  http://story.pxd.co.kr/732����������� ������������������  

•  http://hdscreen.me/walls/computers/microsoft-windows-pc-windows-8-2503558-1680x1050.jpg����������� ������������������  

•  http://agtb.net/articles/centoscubes-error-message����������� ������������������  

•  http://www.mtgeconomist.com/en/instalar-bots-de-magic-online-virtualizacion-en-mac-os-x-parte-8-4/����������� ������������������  

•  http://intersog.com/blog/Programming-Languages-Ranking-January-2014-vs-January-2013����������� ������������������  

•  http://www.inspiredtechies.com/setting-up-svn-server/����������� ������������������  

•  http://www.calliflower.com/one-click-recording/����������� ������������������  

•  http://www.gopivotal.com/http://www.slideshare.net/mraible/comparing-jvm-web-frameworks-february-2014����������� ������������������  

•  http://www.ranorex.com/blog/integrating-ranorex-automation-in-jenkins-continuous-integration-process����������� ������������������  

•  http://helloworld.naver.com/helloworld/1114����������� ������������������  

•  https://issues.jenkins-ci.org/browse/JENKINS-4177����������� ������������������  

•  http://confluence.goldpitcher.co.kr/pages/viewpage.action?pageId=68354072����������� ������������������  

•  http://db-engines.com/en/ranking����������� ������������������  

•  http://exortech.github.io/presentations/test_driven_decoupling/index.html#/9����������� ������������������  http://cs.calvin.edu/books/processing/references/

eclipse/junit.html����������� ������������������  

•  http://fitnesse4idea.sourceforge.net/����������� ������������������  

Page 93: 네이버 오픈세미나 백엔드_아키텍쳐

일반����������� ������������������  

����������� ������������������  

93����������� ������������������  /����������� ������������������  97����������� ������������������  

참조����������� ������������������  

•  http://www.slideshare.net/mraible/comparing-jvm-web-frameworks-february-2014����������� ������������������  

•  http://www.ranorex.com/blog/integrating-ranorex-automation-in-jenkins-continuous-integration-process����������� ������������������  

•  http://helloworld.naver.com/helloworld/1114����������� ������������������  

•  https://issues.jenkins-ci.org/browse/JENKINS-4177����������� ������������������  

•  http://confluence.goldpitcher.co.kr/pages/viewpage.action?pageId=68354072����������� ������������������  

•  http://db-engines.com/en/ranking����������� ������������������  

•  http://exortech.github.io/presentations/test_driven_decoupling/index.html#/9����������� ������������������  http://cs.calvin.edu/books/processing/references/

eclipse/junit.html����������� ������������������  

•  http://fitnesse4idea.sourceforge.net/����������� ������������������  

•  http://docs.seleniumhq.org/����������� ������������������  

•  http://serversitters.com/touchsupport-vs-server-sitters.html����������� ������������������  

•  http://ipnrstatus.in/blog/indain-railways-pnr-status-sms-alert/����������� ������������������  

•  http://www.logicmonitor.com/monitoring/applications/memcached/����������� ������������������  

•  http://sidnoe.tistory.com/159����������� ������������������  

•  http://blog.wishket.com/tag/%EC%98%A4%ED%94%88%EC%86%8C%EC%8A%A4/����������� ������������������  

•  http://www.cio.co.ke/analysis/2012-Year-of-fast-changes-for-IT-professionals����������� ������������������  

•  http://linecorp.com/en/press/2014/0402714����������� ������������������  


Top Related