SlideShare a Scribd company logo
Design Pattern-2
Creational Design Pattern-1
์ž„๊ด‘๊ทœ
(lahuman@daum.net)
๋ชฉ์ฐจ
โ€ข Singleton Pattern
โ€ข Factory Pattern
โ€ข Abstract Factory Pattern
โ€ข Builder Pattern
โ€ข Prototype Pattern
Singleton Pattern-1
What's Sligleton?
โ€ข JVM ์—์„œ ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์กด์žฌ ํ•˜
๋„๋ก ์ œํ•œ
โ€ข ๋งค์šฐ ๋‹จ์ˆœํ•œ ๋””์ž์ธ ํŒจํ„ด
โ€ข ๋‹ค๋ฅธ ๊ตฌํ˜„๋“ค๊ณผ ๋งŽ์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง
โ€ข logging, driver objects, caching, thread pool
๋“ฑ์œผ๋กœ ์ฃผ์š” ์‚ฌ์šฉ
Singleton Pattern-2
How can make?
I. ์ƒ์„ฑ์ž๋ฅผ private์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ๋‹ค๋ฅธ ํด๋ž˜
์Šค์—์„œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์„ ์ œํ•œ
II.ํ•ด๋‹น class๋ฅผ private static ์ „์—ญ ๋ณ€์ˆ˜๋กœ ์„ ์–ธ
ํ›„ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ• ๋‹น
III.public static method ๋ฅผ ํ†ตํ•˜์—ฌ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ
return
Singleton Pattern-3
Implementation
โ€ข Eager initialization โ€“ ๋น ๋ฅธ ์ดˆ๊ธฐํ™”
โ€ข static block initialization โ€“ static block ์ดˆ๊ธฐํ™”
โ€ข Lazy initialization โ€“ ๋Šฆ์€ ์ดˆ๊ธฐํ™”
โ€ข Thread Safe Singleton โ€“ Thread Safe ์‹ฑ๊ธ€ํ†ค
โ€ข Bill Pugh Singleton Implementation
โ€“ Bill Pugh ์‹ฑ๊ธ€ํ†ค ๊ตฌํ˜„
โ€ข Using Reflection to destroy Singleton Pattern
โ€“ reflection ์ด์šฉํ•œ ์‹ฑ๊ธ€ํ†ค ํŒŒ๊ดด
โ€ข Enum Singleton โ€“ Enum ์‹ฑ๊ธ€ํ†ค
โ€ข Serialization and Singleton โ€“ ์ง๋ ฌํ™”์™€ ์‹ฑ๊ธ€ํ†ค
Eager initialization
-๋น ๋ฅธ์ดˆ๊ธฐํ™”-
I. ๋น ๋ฅธ ์ดˆ๊ธฐํ™”๋Š” ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ๋˜๋Š” ์ˆœ๊ฐ„ instance๊ฐ€ ์ƒ์„ฑ
II. getInstance()๋ฅผ ํ˜ธ์ถœ ํ•˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ return
๋‹ค๋งŒ ๊ฐ์ฒด ์ƒ์„ฑ์— ์‹คํŒจ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณต ํ•˜์ง€ ์•Š๋Š”๋‹ค.
static block initalization
-static block ์ดˆ๊ธฐํ™”-
โ— ๋น ๋ฅธ ์ดˆ๊ธฐํ™”์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ ๋˜๋Š” ์ˆœ๊ฐ„ instance๊ฐ€ ์ƒ์„ฑ
ํด๋ž˜์Šค ์ƒ์„ฑ์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณต
Lazy initalization
-๋Šฆ์€ ์ดˆ๊ธฐํ™”-
โ— ๋Šฆ์€ ์ดˆ๊ธฐํ™”๋Š” getInstance() method๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์ˆœ๊ฐ„
instance๊ฐ€ ์ƒ์„ฑ ํ›„ ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ด
๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ๋งŒ์•ฝ if ๊ตฌ๋ฌธ์„ ๋™์‹œ์— ์ ‘๊ทผ ํ•˜๊ฒŒ ๋˜๋ฉด
๋‘ ์“ฐ๋ ˆ๋“œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๊ฐ€์งˆ๊ฒŒ ๋จ
Thread Safe Singleton
-๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ์—์„œ ์•ˆ์ „ํ•œ ์‹ฑ๊ธ€ํ†ค-
โ— ๋Šฆ์€ ์ดˆ๊ธฐ์™€ ๊ฐ™์ด getInstance()
method๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์ˆœ๊ฐ„ instance
๊ฐ€ ์ƒ์„ฑ ํ›„ ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ด
๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ์ฒด๋ฅผ
์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋™๊ธฐํ™” ๊ตฌ๋ฌธ์„ ์ด์šฉ
โ— ๋™๊ธฐํ™” ๊ตฌ๋ฌธ์„ ์ด์šฉํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ์— ์•ˆ์ข‹์Œ
๋”๋ธ” ์ฒดํฌ ๋ฝํ‚น ์›์น™์„ ์ด์šฉํ•œ ์˜ค๋ฒ„ํ•ด๋“œ ๊ฐ์†Œ
๋‹จ! ๋”๋ธ”์ฒดํฌ ๋ฝํ‚น์€ JAVA 5 ์ด์ƒ์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ
์ฐธ๊ณ  :
http://blog.javarouka.me/2012/04/volatile-keyword-in-
java.html
Bill Pugh Singleton
-๋นŒ ํ“จ ์‹ฑ๊ธ€ํ†ค-
JDK 5.0 ์ดํ•˜ ๋ฒ„์ ผ์—์„œ๋Š” ๋Šฆ์€ ์ดˆ๊ธฐํ™” ์‚ฌ์šฉ์‹œ, ๋‘๊ฐœ ์ด์ƒ์˜ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— Singleton ํด๋ž˜์Šค์— ์ธ์Šค
ํ„ด์Šค ์š”์ฒญ ํ•  ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ํ• ๋‹น ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ
โ— ๋นŒ ํ“จ๋Š” ๋‚ด๋ถ€ ์ •์  ๋„์šฐ๋ฏธ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ฑ๊ธ€ํ†ค์„ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์ œ์‹œ
I. BillPugh ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ ๋˜์–ด๋„ ์ธ์Šคํ„ด์Šค๋Š” ์ƒ์„ฑ ๋˜์ง€ ์•Š์Œ
II. getInstance๊ฐ€ ํ˜ธ์ถœ๋˜์–ด์•ผ SingletoneHeplper ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑ๋˜์–ด BillPugh์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ
์ด ๋ฐฉ๋ฒ•์ด ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ด์œ ๋Š” ๋™๊ธฐํ™”(synchronization) ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ
reflection to destroy singleton
- reflection ์„ ์ด์šฉํ•œ ์‹ฑ๊ธ€ํ†ค ํŒŒ๊ดด -
โ— reflection์„ ์ด์šฉํ•˜๋ฉด ์–ธ์ œ๋“  singleton ํŒจํ„ด์„ ํŒŒ๊ดด ํ•  ์ˆ˜ ์žˆ์Œ
โ— reflection ๋งค์šฐ ๊ฐ•๋ ฅ ํ•˜๋ฉฐ spring, hibernate ๋“ฑ์˜ ๋‹ค์ˆ˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ์— ์‚ฌ์šฉ
Enum Singleton
-Enum ์‹ฑ๊ธ€ํ†ค-
โ— reflection์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ๋Š” enum์„ ์ด์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ
โ— enum์€ java program์—์„œ ์˜ค์ง ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋งŒ ์กด์žฌ
โ— ๋‹ค๋งŒ ๋Šฆ์€ ์ดˆ๊ธฐํ™”๋Š” ์ง€์› ํ•˜์ง€ ์•Š์Œ
Serialization and Singleton
-์ง๋ ฌํ™”์™€ ์‹ฑ๊ธ€ํ†ค-
โ— ์—ญ์ง๋ ฌํ™”์‹œ ๋™์ผํ•œ ๊ฐ์ฒด์˜ ๋ฆฌํ„ด ํ•ด์•ผํ•จ
โ— readResolve ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•˜์—ฌ ์ฒ˜๋ฆฌ
โ— ์ง๋ ฌํ™” & ์—ญ์ง๋ ฌํ™” ์ฐธ๊ณ  :
http://stackoverflow.com/questions/447898/what-is-object-serialization
Factory Pattern-1
-What is Factory Pattern?-
โ€ข ์ƒ์„ฑ ํŒจํ„ด ์ค‘ ๋งŽ์ด ์‚ฌ์šฉ
Spring์ด๋‚˜ struts๊ณผ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์—๋„ ์‚ฌ์šฉ ๋งŽ์ด ์‚ฌ์šฉ ๋˜์–ด์ง
โ€ข ์Šˆํผ ํด๋ž˜์Šค๊ฐ€ ๋ฉ€ํ‹ฐ ์„œ๋ธŒ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๊ณ 
์žˆ๊ณ , ๊ธฐ๋ณธ ์ž…๋ ฅ์œผ๋กœ ์„œ๋ธŒ ํด๋ž˜์Šค๋ฅผ ๋ฆฌํ„ดํ• 
๋•Œ ์‚ฌ์šฉ
โ€ข ์ด ํŒจํ„ด์€ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ํŒฉ
ํ† ๋ฆฌ ํด๋ž˜์Šค์—์„œ ๊ฐ€์ง
Factory Pattern-2
- How can make?-
โ— Computer๋ผ๋Š” ์Šˆํผ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌ
โ— Computer ํด๋ž˜์Šค๋ฅผ ์ƒ์† ๋ฐ›์€
PC์™€ SERVER๋ผ๋Š” ์„œ๋ธŒ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌ
โ— ํ•ด๋‹น ์„œ๋ธŒ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ return ํ•˜๋Š”
ComputerFactory ์— ๋Œ€ํ•ด ๊ตฌํ˜„
Factory Pattern-3
- How can make?-
Factory Pattern-4
-Summary-
โ€ข ๊ฐ์ฒด ์ƒ์„ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” ํŒฉํ† ๋ฆฌ ํด๋ž˜์Šค๋ฅผ ๋งŒ
๋“ค์–ด์„œ ์ค‘๋ณต์„ ์ตœ์†Œํ™”
โ€ข ์ถ”ํ›„ ํด๋ž˜์Šค ์ƒ์„ฑ์— ๋Œ€ํ•œ ๊ด€๋ฆฌ๋ฅผ ํ•œ ๊ณณ์—์„œ
๊ด€๋ฆฌ ๊ฐ€๋Šฅ
โ€ข ์ „์ฒด ์„ค๊ณ„๊ฐ€ ์ถ”์ƒํ™” ํด๋ž˜์Šค์— ์˜์กดํ•˜๊ฒŒ ๋˜
์–ด ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์ด ๋›ฐ์–ด๋‚œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค
์ˆ˜ ์žˆ์Œ
Abstract Factory Pattern-1
- What is Abstract Factory Pattern?-
โ€ข ํŒฉํ† ๋ฆฌ ํŒจํ„ด๊ณผ ๊ฑฐ์˜ ํก์‚ฌ
โ€ข ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ถ€๋ถ„์„ ์ถ”์ƒํ™” ํ•˜์—ฌ ์—ฌ๋Ÿฌ
์„œ๋ธŒ ํด๋ž˜์Šค๊ฐ€ ์ƒ์†/๊ตฌํ˜„ ๋ฐ›์•„์„œ ๊ฐ์ฒด๋ฅผ ๊ตฌ
์„ฑํ•˜๋Š” ๋ถ€๋ถ„์„ ๋™์ผ์‹œ ํ•˜๋Š” ๋ฐฉ๋ฒ•
โ€ข ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํด๋ž˜์Šค๋“ค์ด ์žˆ์„๋•Œ ๊ตฌํ˜„
๋‚ด์šฉ์€ ํ‹€๋ฆฌ์ง€๋งŒ ์ƒ์„ฑ ๊ณต์ •์ด ๊ฐ™๋‹ค๋ฉด ๊ทธ ๋ถ€
๋ถ„์„ ์ถ”์ƒํ™”ํ•˜์—ฌ ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒƒ
Abstract Factory Pattern-2
- How can make?-
Factory Pattern Class ์™€ ๋™์ผFactory Pattern Class ์™€ ๋™์ผ
Abstract Factory Pattern-3
- Summary -
โ€ข ํŒฉํ† ๋ฆฌ ํŒจํ„ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” if-else๋ฅผ ์‚ฌ์šฉํ•˜
์ง€ ์•Š๊ณ  ์ฒ˜๋ฆฌ
โ€ข ์†Œ์Šค ์ˆ˜์ • ์—†์ด ์„œ๋ธŒ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€
โ€ข ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ์— ๋Œ€ํ•œ
์ผ๊ด€์„ฑ์„ ์œ ์ง€
์ฐธ๊ณ 
โ—
์ถœ์ฒ˜ :
http://www.journaldev.com/1827/java-
design-patterns-example-tutorial#singleton-
pattern
โ€ข GITHUB : https://github.com/lahuman/
study4DesignPattern.git

More Related Content

What's hot

[125]reactแ„…แ…ฉแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…ก2แ„†แ…งแ†ผแ„‹แ…ตแ„‘แ…ณแ†ฏแ„…แ…ขแ†บแ„‘แ…ฉแ†ท4แ„€แ…ขแ„…แ…ณแ†ฏแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„’แ…กแ„‚แ…ณแ†ซแ„‹แ…ตแ„‹แ…ฃแ„€แ…ต แ„‰แ…ตแ†ทแ„‰แ…กแ†ผแ„†แ…ตแ†ซ
[125]reactแ„…แ…ฉแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…ก2แ„†แ…งแ†ผแ„‹แ…ตแ„‘แ…ณแ†ฏแ„…แ…ขแ†บแ„‘แ…ฉแ†ท4แ„€แ…ขแ„…แ…ณแ†ฏแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„’แ…กแ„‚แ…ณแ†ซแ„‹แ…ตแ„‹แ…ฃแ„€แ…ต แ„‰แ…ตแ†ทแ„‰แ…กแ†ผแ„†แ…ตแ†ซ[125]reactแ„…แ…ฉแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…ก2แ„†แ…งแ†ผแ„‹แ…ตแ„‘แ…ณแ†ฏแ„…แ…ขแ†บแ„‘แ…ฉแ†ท4แ„€แ…ขแ„…แ…ณแ†ฏแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„’แ…กแ„‚แ…ณแ†ซแ„‹แ…ตแ„‹แ…ฃแ„€แ…ต แ„‰แ…ตแ†ทแ„‰แ…กแ†ผแ„†แ…ตแ†ซ
[125]reactแ„…แ…ฉแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…ก2แ„†แ…งแ†ผแ„‹แ…ตแ„‘แ…ณแ†ฏแ„…แ…ขแ†บแ„‘แ…ฉแ†ท4แ„€แ…ขแ„…แ…ณแ†ฏแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„’แ…กแ„‚แ…ณแ†ซแ„‹แ…ตแ„‹แ…ฃแ„€แ…ต แ„‰แ…ตแ†ทแ„‰แ…กแ†ผแ„†แ…ตแ†ซ
NAVER D2
ย 
Vingle tech talk #1
Vingle tech talk #1Vingle tech talk #1
Vingle tech talk #1
Tylor Shin
ย 
[D2 campus]แ„Žแ…กแ†จ แ„’แ…กแ„†แ…งแ†ซ แ„Žแ…ฅแ†จ! chak แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณ แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
[D2 campus]แ„Žแ…กแ†จ แ„’แ…กแ„†แ…งแ†ซ แ„Žแ…ฅแ†จ! chak แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณ แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต[D2 campus]แ„Žแ…กแ†จ แ„’แ…กแ„†แ…งแ†ซ แ„Žแ…ฅแ†จ! chak แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณ แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
[D2 campus]แ„Žแ…กแ†จ แ„’แ…กแ„†แ…งแ†ซ แ„Žแ…ฅแ†จ! chak แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณ แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
NAVER D2
ย 
Ngui3 5 5 localization
Ngui3 5 5 localizationNgui3 5 5 localization
Ngui3 5 5 localization
Je Lyoung Kim
ย 
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
NAVER D2
ย 
Electron mainprocess
Electron mainprocessElectron mainprocess
Electron mainprocess
Daehwan Lee
ย 
[D2 CAMPUS] tech meet up(Back-end) - ๊ต๋‚ด ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ผ์ง€ (๋ฐ•์€์ฐฌ๋‹˜)
[D2 CAMPUS] tech meet up(Back-end) - ๊ต๋‚ด ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ผ์ง€ (๋ฐ•์€์ฐฌ๋‹˜)[D2 CAMPUS] tech meet up(Back-end) - ๊ต๋‚ด ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ผ์ง€ (๋ฐ•์€์ฐฌ๋‹˜)
[D2 CAMPUS] tech meet up(Back-end) - ๊ต๋‚ด ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ผ์ง€ (๋ฐ•์€์ฐฌ๋‹˜)
NAVER D2
ย 
ํ‹ฐ์ผ“๋ชฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•œ PHP ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•
ํ‹ฐ์ผ“๋ชฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•œ PHP ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•ํ‹ฐ์ผ“๋ชฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•œ PHP ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•
ํ‹ฐ์ผ“๋ชฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•œ PHP ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•
Young D
ย 
๋ชจ๋‘์˜ ํด๋ผ์šฐ๋“œ ๋”ฅ๋Ÿฌ๋‹
๋ชจ๋‘์˜ ํด๋ผ์šฐ๋“œ ๋”ฅ๋Ÿฌ๋‹๋ชจ๋‘์˜ ํด๋ผ์šฐ๋“œ ๋”ฅ๋Ÿฌ๋‹
๋ชจ๋‘์˜ ํด๋ผ์šฐ๋“œ ๋”ฅ๋Ÿฌ๋‹
NAVER Engineering
ย 
Share some development
Share some developmentShare some development
Share some development
Ji Heon Kim
ย 
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
NAVER D2
ย 
Spring di chapter1
Spring di chapter1Spring di chapter1
Spring di chapter1
ํฅ๋ž˜ ๊น€
ย 
ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐ
ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐ
ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐ
ํฅ๋ž˜ ๊น€
ย 
Vuejs๋ฅผ์ด์šฉํ•œ์„œ๋น„์Šค๊ตฌ์ถ•
Vuejs๋ฅผ์ด์šฉํ•œ์„œ๋น„์Šค๊ตฌ์ถ•Vuejs๋ฅผ์ด์šฉํ•œ์„œ๋น„์Šค๊ตฌ์ถ•
Vuejs๋ฅผ์ด์šฉํ•œ์„œ๋น„์Šค๊ตฌ์ถ•
Dexter Jung
ย 
vuetiful korea ๋ฐœํ‘œ์ž๋ฃŒ
vuetiful korea ๋ฐœํ‘œ์ž๋ฃŒvuetiful korea ๋ฐœํ‘œ์ž๋ฃŒ
vuetiful korea ๋ฐœํ‘œ์ž๋ฃŒ
์น˜์›… ์ด
ย 
[114]angularvs react แ„€แ…ตแ†ทแ„’แ…ฎแ†ซแ„†แ…ตแ†ซแ„‰แ…ฉแ†ซแ„Žแ…กแ†ซแ„‹แ…ฎแ†จ
[114]angularvs react แ„€แ…ตแ†ทแ„’แ…ฎแ†ซแ„†แ…ตแ†ซแ„‰แ…ฉแ†ซแ„Žแ…กแ†ซแ„‹แ…ฎแ†จ[114]angularvs react แ„€แ…ตแ†ทแ„’แ…ฎแ†ซแ„†แ…ตแ†ซแ„‰แ…ฉแ†ซแ„Žแ…กแ†ซแ„‹แ…ฎแ†จ
[114]angularvs react แ„€แ…ตแ†ทแ„’แ…ฎแ†ซแ„†แ…ตแ†ซแ„‰แ…ฉแ†ซแ„Žแ…กแ†ซแ„‹แ…ฎแ†จ
NAVER D2
ย 
์œค์„์ฃผ, ์ธํ•˜์šฐ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ Jul8 ์ œ์ž‘๊ธฐ, NDC2018
์œค์„์ฃผ, ์ธํ•˜์šฐ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ Jul8 ์ œ์ž‘๊ธฐ, NDC2018์œค์„์ฃผ, ์ธํ•˜์šฐ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ Jul8 ์ œ์ž‘๊ธฐ, NDC2018
์œค์„์ฃผ, ์ธํ•˜์šฐ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ Jul8 ์ œ์ž‘๊ธฐ, NDC2018
devCAT Studio, NEXON
ย 
Akka actor model
Akka actor modelAkka actor model
Akka actor model
ssuserf36ea6
ย 
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ตProject anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Dong Chan Shin
ย 
Effective java 1 and 2
Effective java 1 and 2Effective java 1 and 2
Effective java 1 and 2
์ค‘์„  ๊ณฝ
ย 

What's hot (20)

[125]reactแ„…แ…ฉแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…ก2แ„†แ…งแ†ผแ„‹แ…ตแ„‘แ…ณแ†ฏแ„…แ…ขแ†บแ„‘แ…ฉแ†ท4แ„€แ…ขแ„…แ…ณแ†ฏแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„’แ…กแ„‚แ…ณแ†ซแ„‹แ…ตแ„‹แ…ฃแ„€แ…ต แ„‰แ…ตแ†ทแ„‰แ…กแ†ผแ„†แ…ตแ†ซ
[125]reactแ„…แ…ฉแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…ก2แ„†แ…งแ†ผแ„‹แ…ตแ„‘แ…ณแ†ฏแ„…แ…ขแ†บแ„‘แ…ฉแ†ท4แ„€แ…ขแ„…แ…ณแ†ฏแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„’แ…กแ„‚แ…ณแ†ซแ„‹แ…ตแ„‹แ…ฃแ„€แ…ต แ„‰แ…ตแ†ทแ„‰แ…กแ†ผแ„†แ…ตแ†ซ[125]reactแ„…แ…ฉแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…ก2แ„†แ…งแ†ผแ„‹แ…ตแ„‘แ…ณแ†ฏแ„…แ…ขแ†บแ„‘แ…ฉแ†ท4แ„€แ…ขแ„…แ…ณแ†ฏแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„’แ…กแ„‚แ…ณแ†ซแ„‹แ…ตแ„‹แ…ฃแ„€แ…ต แ„‰แ…ตแ†ทแ„‰แ…กแ†ผแ„†แ…ตแ†ซ
[125]reactแ„…แ…ฉแ„€แ…ขแ„‡แ…กแ†ฏแ„Œแ…ก2แ„†แ…งแ†ผแ„‹แ…ตแ„‘แ…ณแ†ฏแ„…แ…ขแ†บแ„‘แ…ฉแ†ท4แ„€แ…ขแ„…แ…ณแ†ฏแ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณแ„’แ…กแ„‚แ…ณแ†ซแ„‹แ…ตแ„‹แ…ฃแ„€แ…ต แ„‰แ…ตแ†ทแ„‰แ…กแ†ผแ„†แ…ตแ†ซ
ย 
Vingle tech talk #1
Vingle tech talk #1Vingle tech talk #1
Vingle tech talk #1
ย 
[D2 campus]แ„Žแ…กแ†จ แ„’แ…กแ„†แ…งแ†ซ แ„Žแ…ฅแ†จ! chak แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณ แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
[D2 campus]แ„Žแ…กแ†จ แ„’แ…กแ„†แ…งแ†ซ แ„Žแ…ฅแ†จ! chak แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณ แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต[D2 campus]แ„Žแ…กแ†จ แ„’แ…กแ„†แ…งแ†ซ แ„Žแ…ฅแ†จ! chak แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณ แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
[D2 campus]แ„Žแ…กแ†จ แ„’แ…กแ„†แ…งแ†ซ แ„Žแ…ฅแ†จ! chak แ„‰แ…ฅแ„‡แ…ตแ„‰แ…ณ แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
ย 
Ngui3 5 5 localization
Ngui3 5 5 localizationNgui3 5 5 localization
Ngui3 5 5 localization
ย 
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
[123] electron แ„€แ…ตแ†ทแ„‰แ…ฅแ†ผแ„’แ…ฎแ†ซ
ย 
Electron mainprocess
Electron mainprocessElectron mainprocess
Electron mainprocess
ย 
[D2 CAMPUS] tech meet up(Back-end) - ๊ต๋‚ด ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ผ์ง€ (๋ฐ•์€์ฐฌ๋‹˜)
[D2 CAMPUS] tech meet up(Back-end) - ๊ต๋‚ด ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ผ์ง€ (๋ฐ•์€์ฐฌ๋‹˜)[D2 CAMPUS] tech meet up(Back-end) - ๊ต๋‚ด ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ผ์ง€ (๋ฐ•์€์ฐฌ๋‹˜)
[D2 CAMPUS] tech meet up(Back-end) - ๊ต๋‚ด ์›น์„œ๋น„์Šค ๊ฐœ๋ฐœ ์ผ์ง€ (๋ฐ•์€์ฐฌ๋‹˜)
ย 
ํ‹ฐ์ผ“๋ชฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•œ PHP ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•
ํ‹ฐ์ผ“๋ชฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•œ PHP ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•ํ‹ฐ์ผ“๋ชฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•œ PHP ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•
ํ‹ฐ์ผ“๋ชฌ์Šคํ„ฐ๋ฅผ ์œ„ํ•œ PHP ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ•
ย 
๋ชจ๋‘์˜ ํด๋ผ์šฐ๋“œ ๋”ฅ๋Ÿฌ๋‹
๋ชจ๋‘์˜ ํด๋ผ์šฐ๋“œ ๋”ฅ๋Ÿฌ๋‹๋ชจ๋‘์˜ ํด๋ผ์šฐ๋“œ ๋”ฅ๋Ÿฌ๋‹
๋ชจ๋‘์˜ ํด๋ผ์šฐ๋“œ ๋”ฅ๋Ÿฌ๋‹
ย 
Share some development
Share some developmentShare some development
Share some development
ย 
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
์ œ 5ํšŒ D2 CAMPUS SEMINAR - Swiftแ„…แ…ฉ แ„†แ…กแ†ซแ„ƒแ…ณแ†ซ serverframework แ„€แ…ขแ„‡แ…กแ†ฏแ„€แ…ต
ย 
Spring di chapter1
Spring di chapter1Spring di chapter1
Spring di chapter1
ย 
ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐ
ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐ
ํ•œ๊ธ€ ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ํ™œ์šฉํ•˜๊ธฐ
ย 
Vuejs๋ฅผ์ด์šฉํ•œ์„œ๋น„์Šค๊ตฌ์ถ•
Vuejs๋ฅผ์ด์šฉํ•œ์„œ๋น„์Šค๊ตฌ์ถ•Vuejs๋ฅผ์ด์šฉํ•œ์„œ๋น„์Šค๊ตฌ์ถ•
Vuejs๋ฅผ์ด์šฉํ•œ์„œ๋น„์Šค๊ตฌ์ถ•
ย 
vuetiful korea ๋ฐœํ‘œ์ž๋ฃŒ
vuetiful korea ๋ฐœํ‘œ์ž๋ฃŒvuetiful korea ๋ฐœํ‘œ์ž๋ฃŒ
vuetiful korea ๋ฐœํ‘œ์ž๋ฃŒ
ย 
[114]angularvs react แ„€แ…ตแ†ทแ„’แ…ฎแ†ซแ„†แ…ตแ†ซแ„‰แ…ฉแ†ซแ„Žแ…กแ†ซแ„‹แ…ฎแ†จ
[114]angularvs react แ„€แ…ตแ†ทแ„’แ…ฎแ†ซแ„†แ…ตแ†ซแ„‰แ…ฉแ†ซแ„Žแ…กแ†ซแ„‹แ…ฎแ†จ[114]angularvs react แ„€แ…ตแ†ทแ„’แ…ฎแ†ซแ„†แ…ตแ†ซแ„‰แ…ฉแ†ซแ„Žแ…กแ†ซแ„‹แ…ฎแ†จ
[114]angularvs react แ„€แ…ตแ†ทแ„’แ…ฎแ†ซแ„†แ…ตแ†ซแ„‰แ…ฉแ†ซแ„Žแ…กแ†ซแ„‹แ…ฎแ†จ
ย 
์œค์„์ฃผ, ์ธํ•˜์šฐ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ Jul8 ์ œ์ž‘๊ธฐ, NDC2018
์œค์„์ฃผ, ์ธํ•˜์šฐ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ Jul8 ์ œ์ž‘๊ธฐ, NDC2018์œค์„์ฃผ, ์ธํ•˜์šฐ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ Jul8 ์ œ์ž‘๊ธฐ, NDC2018
์œค์„์ฃผ, ์ธํ•˜์šฐ์Šค ์›น ํ”„๋ ˆ์ž„์›Œํฌ Jul8 ์ œ์ž‘๊ธฐ, NDC2018
ย 
Akka actor model
Akka actor modelAkka actor model
Akka actor model
ย 
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ตProject anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
Project anarchyแ„…แ…ฉ 3d แ„€แ…ฆแ„‹แ…ตแ†ท แ„†แ…กแ†ซแ„ƒแ…ณแ†ฏแ„€แ…ต part_2_vforgeแ„‘แ…ตแ„’แ…กแ„€แ…ต
ย 
Effective java 1 and 2
Effective java 1 and 2Effective java 1 and 2
Effective java 1 and 2
ย 

Viewers also liked

Learn design pattern-1
Learn design pattern-1Learn design pattern-1
Learn design pattern-1
Daniel Lim
ย 
Design pattern study 4 factory pattern _ by dragor0123
Design pattern study 4 factory pattern _ by dragor0123Design pattern study 4 factory pattern _ by dragor0123
Design pattern study 4 factory pattern _ by dragor0123
dragor0123
ย 
Scalable system design patterns
Scalable system design patternsScalable system design patterns
Scalable system design patterns
Steve Min
ย 
Observer pattern dragor
Observer pattern dragorObserver pattern dragor
Observer pattern dragor
dragor0123
ย 
์˜ˆ์ œ๋กœ ๋ณด๋Š” Pattern ์—ฐ์ƒ๋ฒ•
์˜ˆ์ œ๋กœ ๋ณด๋Š” Pattern ์—ฐ์ƒ๋ฒ•์˜ˆ์ œ๋กœ ๋ณด๋Š” Pattern ์—ฐ์ƒ๋ฒ•
์˜ˆ์ œ๋กœ ๋ณด๋Š” Pattern ์—ฐ์ƒ๋ฒ•
hyun soomyung
ย 
๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด
๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด
๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด
์˜ˆ๋ฆผ ์ž„
ย 
Proxy pattern
Proxy patternProxy pattern
Proxy pattern
scor7910
ย 
๋ธ”๋ž™๋ณด๋“œ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ธฐ๋Šฅ
๋ธ”๋ž™๋ณด๋“œ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ธฐ๋Šฅ๋ธ”๋ž™๋ณด๋“œ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ธฐ๋Šฅ
๋ธ”๋ž™๋ณด๋“œ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ธฐ๋Šฅ๋ฏธ๋‚˜ ์ตœ
ย 
Team10:TenTen for blackboard
Team10:TenTen for blackboardTeam10:TenTen for blackboard
Team10:TenTen for blackboard
Jong-hoon Baek
ย 
Pattern and EA
Pattern and EAPattern and EA
Pattern and EA
YoungSu Son
ย 
Publish Subscriber messaging pattern
Publish Subscriber messaging patternPublish Subscriber messaging pattern
Publish Subscriber messaging pattern
Shirish Bari
ย 
ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด๊ณผ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด
ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด๊ณผ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ดํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด๊ณผ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด
ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด๊ณผ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด
GeniusYG
ย 
Design pattern study 6 command pattern
Design pattern study 6 command patternDesign pattern study 6 command pattern
Design pattern study 6 command pattern
dragor0123
ย 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
๊ธฐ๋™ ์ด
ย 
Design patterns ์Šคํ„ฐ๋”” - Singleton ํŒจํ„ด
Design patterns ์Šคํ„ฐ๋”” - Singleton ํŒจํ„ดDesign patterns ์Šคํ„ฐ๋”” - Singleton ํŒจํ„ด
Design patterns ์Šคํ„ฐ๋”” - Singleton ํŒจํ„ด
Hyunho-Cho
ย 
Api design for c++ pattern
Api design for c++ patternApi design for c++ pattern
Api design for c++ pattern
jinho park
ย 
Design patterns ์Šคํ„ฐ๋”” -strategyํŒจํ„ด
Design patterns ์Šคํ„ฐ๋”” -strategyํŒจํ„ดDesign patterns ์Šคํ„ฐ๋”” -strategyํŒจํ„ด
Design patterns ์Šคํ„ฐ๋”” -strategyํŒจํ„ด
Hyunho-Cho
ย 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
Markus Christen
ย 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs
๊ทผํ˜ธ ์ตœ
ย 
Publisher subscriber pattern
Publisher subscriber patternPublisher subscriber pattern
Publisher subscriber patternDaeMyung Kang
ย 

Viewers also liked (20)

Learn design pattern-1
Learn design pattern-1Learn design pattern-1
Learn design pattern-1
ย 
Design pattern study 4 factory pattern _ by dragor0123
Design pattern study 4 factory pattern _ by dragor0123Design pattern study 4 factory pattern _ by dragor0123
Design pattern study 4 factory pattern _ by dragor0123
ย 
Scalable system design patterns
Scalable system design patternsScalable system design patterns
Scalable system design patterns
ย 
Observer pattern dragor
Observer pattern dragorObserver pattern dragor
Observer pattern dragor
ย 
์˜ˆ์ œ๋กœ ๋ณด๋Š” Pattern ์—ฐ์ƒ๋ฒ•
์˜ˆ์ œ๋กœ ๋ณด๋Š” Pattern ์—ฐ์ƒ๋ฒ•์˜ˆ์ œ๋กœ ๋ณด๋Š” Pattern ์—ฐ์ƒ๋ฒ•
์˜ˆ์ œ๋กœ ๋ณด๋Š” Pattern ์—ฐ์ƒ๋ฒ•
ย 
๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด
๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด
๊ฒŒ์ž„ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋””์ž์ธ ํŒจํ„ด
ย 
Proxy pattern
Proxy patternProxy pattern
Proxy pattern
ย 
๋ธ”๋ž™๋ณด๋“œ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ธฐ๋Šฅ
๋ธ”๋ž™๋ณด๋“œ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ธฐ๋Šฅ๋ธ”๋ž™๋ณด๋“œ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ธฐ๋Šฅ
๋ธ”๋ž™๋ณด๋“œ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ธฐ๋Šฅ
ย 
Team10:TenTen for blackboard
Team10:TenTen for blackboardTeam10:TenTen for blackboard
Team10:TenTen for blackboard
ย 
Pattern and EA
Pattern and EAPattern and EA
Pattern and EA
ย 
Publish Subscriber messaging pattern
Publish Subscriber messaging patternPublish Subscriber messaging pattern
Publish Subscriber messaging pattern
ย 
ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด๊ณผ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด
ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด๊ณผ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ดํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด๊ณผ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด
ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด๊ณผ ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ํŒจํ„ด
ย 
Design pattern study 6 command pattern
Design pattern study 6 command patternDesign pattern study 6 command pattern
Design pattern study 6 command pattern
ย 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
ย 
Design patterns ์Šคํ„ฐ๋”” - Singleton ํŒจํ„ด
Design patterns ์Šคํ„ฐ๋”” - Singleton ํŒจํ„ดDesign patterns ์Šคํ„ฐ๋”” - Singleton ํŒจํ„ด
Design patterns ์Šคํ„ฐ๋”” - Singleton ํŒจํ„ด
ย 
Api design for c++ pattern
Api design for c++ patternApi design for c++ pattern
Api design for c++ pattern
ย 
Design patterns ์Šคํ„ฐ๋”” -strategyํŒจํ„ด
Design patterns ์Šคํ„ฐ๋”” -strategyํŒจํ„ดDesign patterns ์Šคํ„ฐ๋”” -strategyํŒจํ„ด
Design patterns ์Šคํ„ฐ๋”” -strategyํŒจํ„ด
ย 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
ย 
Leadweb Nodejs
Leadweb NodejsLeadweb Nodejs
Leadweb Nodejs
ย 
Publisher subscriber pattern
Publisher subscriber patternPublisher subscriber pattern
Publisher subscriber pattern
ย 

Similar to Desing Pattern-2

HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2SeungHyun Hwang
ย 
190311 factory
190311 factory190311 factory
190311 factory
Hyeon-Woo Sa
ย 
Effective java
Effective javaEffective java
Effective java
Haeil Yi
ย 
๋””์ž์ธํŒจํ„ด 1~13
๋””์ž์ธํŒจํ„ด 1~13๋””์ž์ธํŒจํ„ด 1~13
๋””์ž์ธํŒจํ„ด 1~13
Shin heemin
ย 
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
HoJun Sung
ย 
Design patterns
Design patternsDesign patterns
Design patterns
Joshua Yoon
ย 
Spring di chapter2
Spring di chapter2Spring di chapter2
Spring di chapter2
ํฅ๋ž˜ ๊น€
ย 
Concurrent programming
Concurrent programmingConcurrent programming
Concurrent programming
Byeongsu Kang
ย 
JVM Synchronization_Wh apm
JVM Synchronization_Wh apmJVM Synchronization_Wh apm
JVM Synchronization_Wh apm
์—‘์…ˆ
ย 
[Dev rookie]designpattern
[Dev rookie]designpattern[Dev rookie]designpattern
[Dev rookie]designpattern
๋Œ€์˜ ๋…ธ
ย 
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์ŠคTcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
์žฌ์ • ์ด
ย 
3์žฅ ์ดํด๋ฆฝ์Šค ๊ธฐ๋ฐ˜๊ตฌ์กฐ eclipser
3์žฅ ์ดํด๋ฆฝ์Šค ๊ธฐ๋ฐ˜๊ตฌ์กฐ eclipser3์žฅ ์ดํด๋ฆฝ์Šค ๊ธฐ๋ฐ˜๊ตฌ์กฐ eclipser
3์žฅ ์ดํด๋ฆฝ์Šค ๊ธฐ๋ฐ˜๊ตฌ์กฐ eclipserbrodiebrodie
ย 
LLVM ARC
LLVM ARCLLVM ARC
LLVM ARC
Changwook Jeong
ย 
Spring boot DI
Spring boot DISpring boot DI
Spring boot DI
Hyosang Hong
ย 
Stonze study week1
Stonze study week1Stonze study week1
Stonze study week1
Injae Lee
ย 
Node.js ๊ธฐ๋ณธ
Node.js ๊ธฐ๋ณธNode.js ๊ธฐ๋ณธ
Node.js ๊ธฐ๋ณธ
Han Jung Hyun
ย 
More Effective Python 3st (Multitask)
More Effective Python 3st (Multitask)More Effective Python 3st (Multitask)
More Effective Python 3st (Multitask)
๊ฒฝ์„ญ ์‹ฌ
ย 
Mcollective orchestration tool ์†Œ๊ฐœ
Mcollective orchestration tool ์†Œ๊ฐœMcollective orchestration tool ์†Œ๊ฐœ
Mcollective orchestration tool ์†Œ๊ฐœ
ํƒœ์ค€ ๋ฌธ
ย 
Builder, prototype, singleton pattern
Builder, prototype, singleton patternBuilder, prototype, singleton pattern
Builder, prototype, singleton pattern
YoonJong Choi
ย 
[Swift] Singleton
[Swift] Singleton[Swift] Singleton
[Swift] Singleton
Bill Kim
ย 

Similar to Desing Pattern-2 (20)

HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2HolubOnPatterns/chapter2_2
HolubOnPatterns/chapter2_2
ย 
190311 factory
190311 factory190311 factory
190311 factory
ย 
Effective java
Effective javaEffective java
Effective java
ย 
๋””์ž์ธํŒจํ„ด 1~13
๋””์ž์ธํŒจํ„ด 1~13๋””์ž์ธํŒจํ„ด 1~13
๋””์ž์ธํŒจํ„ด 1~13
ย 
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
Head first๋””์ž์ธํŒจํ„ด 1~13_ํฌ๋ฏผ_ํ˜ธ์ค€
ย 
Design patterns
Design patternsDesign patterns
Design patterns
ย 
Spring di chapter2
Spring di chapter2Spring di chapter2
Spring di chapter2
ย 
Concurrent programming
Concurrent programmingConcurrent programming
Concurrent programming
ย 
JVM Synchronization_Wh apm
JVM Synchronization_Wh apmJVM Synchronization_Wh apm
JVM Synchronization_Wh apm
ย 
[Dev rookie]designpattern
[Dev rookie]designpattern[Dev rookie]designpattern
[Dev rookie]designpattern
ย 
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์ŠคTcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
Tcpl 12์žฅ ํŒŒ์ƒํด๋ž˜์Šค
ย 
3์žฅ ์ดํด๋ฆฝ์Šค ๊ธฐ๋ฐ˜๊ตฌ์กฐ eclipser
3์žฅ ์ดํด๋ฆฝ์Šค ๊ธฐ๋ฐ˜๊ตฌ์กฐ eclipser3์žฅ ์ดํด๋ฆฝ์Šค ๊ธฐ๋ฐ˜๊ตฌ์กฐ eclipser
3์žฅ ์ดํด๋ฆฝ์Šค ๊ธฐ๋ฐ˜๊ตฌ์กฐ eclipser
ย 
LLVM ARC
LLVM ARCLLVM ARC
LLVM ARC
ย 
Spring boot DI
Spring boot DISpring boot DI
Spring boot DI
ย 
Stonze study week1
Stonze study week1Stonze study week1
Stonze study week1
ย 
Node.js ๊ธฐ๋ณธ
Node.js ๊ธฐ๋ณธNode.js ๊ธฐ๋ณธ
Node.js ๊ธฐ๋ณธ
ย 
More Effective Python 3st (Multitask)
More Effective Python 3st (Multitask)More Effective Python 3st (Multitask)
More Effective Python 3st (Multitask)
ย 
Mcollective orchestration tool ์†Œ๊ฐœ
Mcollective orchestration tool ์†Œ๊ฐœMcollective orchestration tool ์†Œ๊ฐœ
Mcollective orchestration tool ์†Œ๊ฐœ
ย 
Builder, prototype, singleton pattern
Builder, prototype, singleton patternBuilder, prototype, singleton pattern
Builder, prototype, singleton pattern
ย 
[Swift] Singleton
[Swift] Singleton[Swift] Singleton
[Swift] Singleton
ย 

More from Daniel Lim

๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ž€?
๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ž€?๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ž€?
๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ž€?
Daniel Lim
ย 
๊ฐœ๋ฐœ์ž๋ฅผ ๋„˜์–ด ๊ธฐ์ˆ  ๋ฆฌ๋”๋กœ ๊ฐ€๋Š” ๊ธธ์„ ์ฝ๊ณ 
๊ฐœ๋ฐœ์ž๋ฅผ ๋„˜์–ด ๊ธฐ์ˆ  ๋ฆฌ๋”๋กœ ๊ฐ€๋Š” ๊ธธ์„ ์ฝ๊ณ ๊ฐœ๋ฐœ์ž๋ฅผ ๋„˜์–ด ๊ธฐ์ˆ  ๋ฆฌ๋”๋กœ ๊ฐ€๋Š” ๊ธธ์„ ์ฝ๊ณ 
๊ฐœ๋ฐœ์ž๋ฅผ ๋„˜์–ด ๊ธฐ์ˆ  ๋ฆฌ๋”๋กœ ๊ฐ€๋Š” ๊ธธ์„ ์ฝ๊ณ 
Daniel Lim
ย 
แ„‰แ…ณแ„แ…ณแ„…แ…ฅแ†ท 101
แ„‰แ…ณแ„แ…ณแ„…แ…ฅแ†ท 101แ„‰แ…ณแ„แ…ณแ„…แ…ฅแ†ท 101
แ„‰แ…ณแ„แ…ณแ„…แ…ฅแ†ท 101
Daniel Lim
ย 
nodejs_101.pdf
nodejs_101.pdfnodejs_101.pdf
nodejs_101.pdf
Daniel Lim
ย 
For You
For YouFor You
For You
Daniel Lim
ย 
Nest js 101
Nest js 101Nest js 101
Nest js 101
Daniel Lim
ย 
ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ
ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ
ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ
Daniel Lim
ย 
13.code split
13.code split13.code split
13.code split
Daniel Lim
ย 
12.context api
12.context api12.context api
12.context api
Daniel Lim
ย 
11.react router dom
11.react router dom11.react router dom
11.react router dom
Daniel Lim
ย 
9.component style
9.component style9.component style
9.component style
Daniel Lim
ย 
7.component life cycle
7.component life cycle7.component life cycle
7.component life cycle
Daniel Lim
ย 
8.hooks
8.hooks8.hooks
8.hooks
Daniel Lim
ย 
6.component repeat
6.component repeat6.component repeat
6.component repeat
Daniel Lim
ย 
4.event handling
4.event handling4.event handling
4.event handling
Daniel Lim
ย 
5.ref 101
5.ref 1015.ref 101
5.ref 101
Daniel Lim
ย 
3.component 101
3.component 1013.component 101
3.component 101
Daniel Lim
ย 
2.jsx 101
2.jsx 1012.jsx 101
2.jsx 101
Daniel Lim
ย 
1.react 101
1.react 1011.react 101
1.react 101
Daniel Lim
ย 
Swagger? OAS? with NodeJS
Swagger? OAS? with NodeJSSwagger? OAS? with NodeJS
Swagger? OAS? with NodeJS
Daniel Lim
ย 

More from Daniel Lim (20)

๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ž€?
๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ž€?๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ž€?
๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋ž€?
ย 
๊ฐœ๋ฐœ์ž๋ฅผ ๋„˜์–ด ๊ธฐ์ˆ  ๋ฆฌ๋”๋กœ ๊ฐ€๋Š” ๊ธธ์„ ์ฝ๊ณ 
๊ฐœ๋ฐœ์ž๋ฅผ ๋„˜์–ด ๊ธฐ์ˆ  ๋ฆฌ๋”๋กœ ๊ฐ€๋Š” ๊ธธ์„ ์ฝ๊ณ ๊ฐœ๋ฐœ์ž๋ฅผ ๋„˜์–ด ๊ธฐ์ˆ  ๋ฆฌ๋”๋กœ ๊ฐ€๋Š” ๊ธธ์„ ์ฝ๊ณ 
๊ฐœ๋ฐœ์ž๋ฅผ ๋„˜์–ด ๊ธฐ์ˆ  ๋ฆฌ๋”๋กœ ๊ฐ€๋Š” ๊ธธ์„ ์ฝ๊ณ 
ย 
แ„‰แ…ณแ„แ…ณแ„…แ…ฅแ†ท 101
แ„‰แ…ณแ„แ…ณแ„…แ…ฅแ†ท 101แ„‰แ…ณแ„แ…ณแ„…แ…ฅแ†ท 101
แ„‰แ…ณแ„แ…ณแ„…แ…ฅแ†ท 101
ย 
nodejs_101.pdf
nodejs_101.pdfnodejs_101.pdf
nodejs_101.pdf
ย 
For You
For YouFor You
For You
ย 
Nest js 101
Nest js 101Nest js 101
Nest js 101
ย 
ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ
ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ
ํ”ผ๋“œ๋ฐฑ ์‹œ์Šคํ…œ
ย 
13.code split
13.code split13.code split
13.code split
ย 
12.context api
12.context api12.context api
12.context api
ย 
11.react router dom
11.react router dom11.react router dom
11.react router dom
ย 
9.component style
9.component style9.component style
9.component style
ย 
7.component life cycle
7.component life cycle7.component life cycle
7.component life cycle
ย 
8.hooks
8.hooks8.hooks
8.hooks
ย 
6.component repeat
6.component repeat6.component repeat
6.component repeat
ย 
4.event handling
4.event handling4.event handling
4.event handling
ย 
5.ref 101
5.ref 1015.ref 101
5.ref 101
ย 
3.component 101
3.component 1013.component 101
3.component 101
ย 
2.jsx 101
2.jsx 1012.jsx 101
2.jsx 101
ย 
1.react 101
1.react 1011.react 101
1.react 101
ย 
Swagger? OAS? with NodeJS
Swagger? OAS? with NodeJSSwagger? OAS? with NodeJS
Swagger? OAS? with NodeJS
ย 

Desing Pattern-2

  • 1. Design Pattern-2 Creational Design Pattern-1 ์ž„๊ด‘๊ทœ (lahuman@daum.net)
  • 2. ๋ชฉ์ฐจ โ€ข Singleton Pattern โ€ข Factory Pattern โ€ข Abstract Factory Pattern โ€ข Builder Pattern โ€ข Prototype Pattern
  • 3. Singleton Pattern-1 What's Sligleton? โ€ข JVM ์—์„œ ์˜ค์ง ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋งŒ ์กด์žฌ ํ•˜ ๋„๋ก ์ œํ•œ โ€ข ๋งค์šฐ ๋‹จ์ˆœํ•œ ๋””์ž์ธ ํŒจํ„ด โ€ข ๋‹ค๋ฅธ ๊ตฌํ˜„๋“ค๊ณผ ๋งŽ์€ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง โ€ข logging, driver objects, caching, thread pool ๋“ฑ์œผ๋กœ ์ฃผ์š” ์‚ฌ์šฉ
  • 4. Singleton Pattern-2 How can make? I. ์ƒ์„ฑ์ž๋ฅผ private์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ๋‹ค๋ฅธ ํด๋ž˜ ์Šค์—์„œ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์„ ์ œํ•œ II.ํ•ด๋‹น class๋ฅผ private static ์ „์—ญ ๋ณ€์ˆ˜๋กœ ์„ ์–ธ ํ›„ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ• ๋‹น III.public static method ๋ฅผ ํ†ตํ•˜์—ฌ ์ „์—ญ ๋ณ€์ˆ˜๋ฅผ return
  • 5. Singleton Pattern-3 Implementation โ€ข Eager initialization โ€“ ๋น ๋ฅธ ์ดˆ๊ธฐํ™” โ€ข static block initialization โ€“ static block ์ดˆ๊ธฐํ™” โ€ข Lazy initialization โ€“ ๋Šฆ์€ ์ดˆ๊ธฐํ™” โ€ข Thread Safe Singleton โ€“ Thread Safe ์‹ฑ๊ธ€ํ†ค โ€ข Bill Pugh Singleton Implementation โ€“ Bill Pugh ์‹ฑ๊ธ€ํ†ค ๊ตฌํ˜„ โ€ข Using Reflection to destroy Singleton Pattern โ€“ reflection ์ด์šฉํ•œ ์‹ฑ๊ธ€ํ†ค ํŒŒ๊ดด โ€ข Enum Singleton โ€“ Enum ์‹ฑ๊ธ€ํ†ค โ€ข Serialization and Singleton โ€“ ์ง๋ ฌํ™”์™€ ์‹ฑ๊ธ€ํ†ค
  • 6. Eager initialization -๋น ๋ฅธ์ดˆ๊ธฐํ™”- I. ๋น ๋ฅธ ์ดˆ๊ธฐํ™”๋Š” ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ๋˜๋Š” ์ˆœ๊ฐ„ instance๊ฐ€ ์ƒ์„ฑ II. getInstance()๋ฅผ ํ˜ธ์ถœ ํ•˜๋ฉด ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ return ๋‹ค๋งŒ ๊ฐ์ฒด ์ƒ์„ฑ์— ์‹คํŒจ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณต ํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • 7. static block initalization -static block ์ดˆ๊ธฐํ™”- โ— ๋น ๋ฅธ ์ดˆ๊ธฐํ™”์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ ๋˜๋Š” ์ˆœ๊ฐ„ instance๊ฐ€ ์ƒ์„ฑ ํด๋ž˜์Šค ์ƒ์„ฑ์— ๋Œ€ํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ œ๊ณต
  • 8. Lazy initalization -๋Šฆ์€ ์ดˆ๊ธฐํ™”- โ— ๋Šฆ์€ ์ดˆ๊ธฐํ™”๋Š” getInstance() method๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์ˆœ๊ฐ„ instance๊ฐ€ ์ƒ์„ฑ ํ›„ ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ด ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ๋งŒ์•ฝ if ๊ตฌ๋ฌธ์„ ๋™์‹œ์— ์ ‘๊ทผ ํ•˜๊ฒŒ ๋˜๋ฉด ๋‘ ์“ฐ๋ ˆ๋“œ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๊ฐ€์งˆ๊ฒŒ ๋จ
  • 9. Thread Safe Singleton -๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ์—์„œ ์•ˆ์ „ํ•œ ์‹ฑ๊ธ€ํ†ค- โ— ๋Šฆ์€ ์ดˆ๊ธฐ์™€ ๊ฐ™์ด getInstance() method๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ์ˆœ๊ฐ„ instance ๊ฐ€ ์ƒ์„ฑ ํ›„ ํ•ด๋‹น ๊ฐ์ฒด๋ฅผ ๋ฆฌํ„ด ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•˜์—ฌ ๋™๊ธฐํ™” ๊ตฌ๋ฌธ์„ ์ด์šฉ โ— ๋™๊ธฐํ™” ๊ตฌ๋ฌธ์„ ์ด์šฉํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ์— ์•ˆ์ข‹์Œ ๋”๋ธ” ์ฒดํฌ ๋ฝํ‚น ์›์น™์„ ์ด์šฉํ•œ ์˜ค๋ฒ„ํ•ด๋“œ ๊ฐ์†Œ ๋‹จ! ๋”๋ธ”์ฒดํฌ ๋ฝํ‚น์€ JAVA 5 ์ด์ƒ์—์„œ๋งŒ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅ ์ฐธ๊ณ  : http://blog.javarouka.me/2012/04/volatile-keyword-in- java.html
  • 10. Bill Pugh Singleton -๋นŒ ํ“จ ์‹ฑ๊ธ€ํ†ค- JDK 5.0 ์ดํ•˜ ๋ฒ„์ ผ์—์„œ๋Š” ๋Šฆ์€ ์ดˆ๊ธฐํ™” ์‚ฌ์šฉ์‹œ, ๋‘๊ฐœ ์ด์ƒ์˜ ์“ฐ๋ ˆ๋“œ๊ฐ€ ๋™์‹œ์— Singleton ํด๋ž˜์Šค์— ์ธ์Šค ํ„ด์Šค ์š”์ฒญ ํ•  ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ํ• ๋‹น ๋ฐ›์„ ์ˆ˜ ์žˆ์Œ โ— ๋นŒ ํ“จ๋Š” ๋‚ด๋ถ€ ์ •์  ๋„์šฐ๋ฏธ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ฑ๊ธ€ํ†ค์„ ๋งŒ๋“œ๋Š” ๋ฒ•์„ ์ œ์‹œ I. BillPugh ํด๋ž˜์Šค๊ฐ€ ๋กœ๋“œ ๋˜์–ด๋„ ์ธ์Šคํ„ด์Šค๋Š” ์ƒ์„ฑ ๋˜์ง€ ์•Š์Œ II. getInstance๊ฐ€ ํ˜ธ์ถœ๋˜์–ด์•ผ SingletoneHeplper ํด๋ž˜์Šค๊ฐ€ ์ƒ์„ฑ๋˜์–ด BillPugh์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ ์ด ๋ฐฉ๋ฒ•์ด ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ด์œ ๋Š” ๋™๊ธฐํ™”(synchronization) ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ
  • 11. reflection to destroy singleton - reflection ์„ ์ด์šฉํ•œ ์‹ฑ๊ธ€ํ†ค ํŒŒ๊ดด - โ— reflection์„ ์ด์šฉํ•˜๋ฉด ์–ธ์ œ๋“  singleton ํŒจํ„ด์„ ํŒŒ๊ดด ํ•  ์ˆ˜ ์žˆ์Œ โ— reflection ๋งค์šฐ ๊ฐ•๋ ฅ ํ•˜๋ฉฐ spring, hibernate ๋“ฑ์˜ ๋‹ค์ˆ˜์˜ ํ”„๋ ˆ์ž„์›Œํฌ์— ์‚ฌ์šฉ
  • 12. Enum Singleton -Enum ์‹ฑ๊ธ€ํ†ค- โ— reflection์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ๋Š” enum์„ ์ด์šฉํ•˜์—ฌ ์ฒ˜๋ฆฌ โ— enum์€ java program์—์„œ ์˜ค์ง ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋งŒ ์กด์žฌ โ— ๋‹ค๋งŒ ๋Šฆ์€ ์ดˆ๊ธฐํ™”๋Š” ์ง€์› ํ•˜์ง€ ์•Š์Œ
  • 13. Serialization and Singleton -์ง๋ ฌํ™”์™€ ์‹ฑ๊ธ€ํ†ค- โ— ์—ญ์ง๋ ฌํ™”์‹œ ๋™์ผํ•œ ๊ฐ์ฒด์˜ ๋ฆฌํ„ด ํ•ด์•ผํ•จ โ— readResolve ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•˜์—ฌ ์ฒ˜๋ฆฌ โ— ์ง๋ ฌํ™” & ์—ญ์ง๋ ฌํ™” ์ฐธ๊ณ  : http://stackoverflow.com/questions/447898/what-is-object-serialization
  • 14. Factory Pattern-1 -What is Factory Pattern?- โ€ข ์ƒ์„ฑ ํŒจํ„ด ์ค‘ ๋งŽ์ด ์‚ฌ์šฉ Spring์ด๋‚˜ struts๊ณผ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์—๋„ ์‚ฌ์šฉ ๋งŽ์ด ์‚ฌ์šฉ ๋˜์–ด์ง โ€ข ์Šˆํผ ํด๋ž˜์Šค๊ฐ€ ๋ฉ€ํ‹ฐ ์„œ๋ธŒ ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ๊ธฐ๋ณธ ์ž…๋ ฅ์œผ๋กœ ์„œ๋ธŒ ํด๋ž˜์Šค๋ฅผ ๋ฆฌํ„ดํ•  ๋•Œ ์‚ฌ์šฉ โ€ข ์ด ํŒจํ„ด์€ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์— ๋Œ€ํ•œ ์ฑ…์ž„์„ ํŒฉ ํ† ๋ฆฌ ํด๋ž˜์Šค์—์„œ ๊ฐ€์ง
  • 15. Factory Pattern-2 - How can make?- โ— Computer๋ผ๋Š” ์Šˆํผ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌ โ— Computer ํด๋ž˜์Šค๋ฅผ ์ƒ์† ๋ฐ›์€ PC์™€ SERVER๋ผ๋Š” ์„œ๋ธŒ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌ โ— ํ•ด๋‹น ์„œ๋ธŒ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ return ํ•˜๋Š” ComputerFactory ์— ๋Œ€ํ•ด ๊ตฌํ˜„
  • 17. Factory Pattern-4 -Summary- โ€ข ๊ฐ์ฒด ์ƒ์„ฑ์„ ๊ด€๋ฆฌํ•˜๋Š” ํŒฉํ† ๋ฆฌ ํด๋ž˜์Šค๋ฅผ ๋งŒ ๋“ค์–ด์„œ ์ค‘๋ณต์„ ์ตœ์†Œํ™” โ€ข ์ถ”ํ›„ ํด๋ž˜์Šค ์ƒ์„ฑ์— ๋Œ€ํ•œ ๊ด€๋ฆฌ๋ฅผ ํ•œ ๊ณณ์—์„œ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ โ€ข ์ „์ฒด ์„ค๊ณ„๊ฐ€ ์ถ”์ƒํ™” ํด๋ž˜์Šค์— ์˜์กดํ•˜๊ฒŒ ๋˜ ์–ด ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์ด ๋›ฐ์–ด๋‚œ ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
  • 18. Abstract Factory Pattern-1 - What is Abstract Factory Pattern?- โ€ข ํŒฉํ† ๋ฆฌ ํŒจํ„ด๊ณผ ๊ฑฐ์˜ ํก์‚ฌ โ€ข ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ถ€๋ถ„์„ ์ถ”์ƒํ™” ํ•˜์—ฌ ์—ฌ๋Ÿฌ ์„œ๋ธŒ ํด๋ž˜์Šค๊ฐ€ ์ƒ์†/๊ตฌํ˜„ ๋ฐ›์•„์„œ ๊ฐ์ฒด๋ฅผ ๊ตฌ ์„ฑํ•˜๋Š” ๋ถ€๋ถ„์„ ๋™์ผ์‹œ ํ•˜๋Š” ๋ฐฉ๋ฒ• โ€ข ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํด๋ž˜์Šค๋“ค์ด ์žˆ์„๋•Œ ๊ตฌํ˜„ ๋‚ด์šฉ์€ ํ‹€๋ฆฌ์ง€๋งŒ ์ƒ์„ฑ ๊ณต์ •์ด ๊ฐ™๋‹ค๋ฉด ๊ทธ ๋ถ€ ๋ถ„์„ ์ถ”์ƒํ™”ํ•˜์—ฌ ์‚ฌ์šฉ ํ•˜๋Š” ๊ฒƒ
  • 19. Abstract Factory Pattern-2 - How can make?- Factory Pattern Class ์™€ ๋™์ผFactory Pattern Class ์™€ ๋™์ผ
  • 20. Abstract Factory Pattern-3 - Summary - โ€ข ํŒฉํ† ๋ฆฌ ํŒจํ„ด์—์„œ ์‚ฌ์šฉ๋˜๋Š” if-else๋ฅผ ์‚ฌ์šฉํ•˜ ์ง€ ์•Š๊ณ  ์ฒ˜๋ฆฌ โ€ข ์†Œ์Šค ์ˆ˜์ • ์—†์ด ์„œ๋ธŒ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ โ€ข ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ์ฒด ์ƒ์„ฑ์— ๋Œ€ํ•œ ์ผ๊ด€์„ฑ์„ ์œ ์ง€