๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ ˆ๊ฑฐ์‹œ

2022.02.15์˜ ๊ธฐ๋ก

by GroovyArea 2022. 2. 15.

โ–ถ ์˜ค๋Š˜ ์‹คํ˜„ ๊ฐ€๋Šฅํ•œ ์„ธ๋ถ€ ๋ชฉํ‘œ

 

=>  ๊ณต๋ถ€ ๊ด€๋ จ

1) ๋ฐฐ์šด ๋‚ด์šฉ ๋ณต์Šต o

2) ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€ o

3) SOLID 5์›์น™ ์ œ๋Œ€๋กœ ์•Œ๊ธฐ o

4) ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ž€? ์š”์•ฝ ์„ค๋ช… o

5) ์ž๋ฐ”์˜ ์ •์„ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 2 o

6) ์ˆœ์ˆ˜ ์ž๋ฐ”๋กœ MVC ํŒจํ„ด ๊ตฌํ˜„์„ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋Š”์ง€ o

 

=>  ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ

1) ํŒŒ์ด๋„ ์‚ฌ์ดํŠธ ์•Œ์•„๋ณด๊ธฐ (๊ตฌ์ฒด์ ์ธ ๊ฒƒ ์งˆ๋ฌธ)

2) ๊ตฌ๊ธ€ ํฌ๋กฌ ๋””๋ฒ„๊น… ๊ณต๋ถ€

 

โ–ถ ์ˆ˜์—… ๊ณต๋ถ€ ๊ด€๋ จ

> JSON ๊ฐ์ฒด์—์„œ ๋ฐฐ์—ด๋กœ ๋ฐ›์•„์˜ฌ ๋•Œ ์—”ํ„ฐํ‚ค๋‚˜ ๋”ฐ์˜ดํ‘œ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค. (์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž๋“ค parse()๊ฐ€ ์ž์Šค ๊ฐ์ฒด๋กœ ๋ฐ”๊พธ์ง€ ๋ชปํ•จ)

 

> ์ž…๋ ฅ ๋ฐ›์€ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋Š”๊ฒŒ ์ •์„์ด๋‹ค. (๋‹ค๋ฅธ ํƒœ๊ทธ๋กœ ๋ฐ”๊ฟ” ์ถœ๋ ฅํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•จ)

 

> jQuery append : ์ž์‹์œผ๋กœ ์ƒ์„ฑํ•ด์„œ ์ถ”๊ฐ€, appendTo : ์ž์‹์œผ๋กœ ์ด๋™ ๋ฐ˜๋Œ€์ธ prepend๊ฐ€ ์žˆ์Œ

 

> xml ๋ฐ์ดํ„ฐ๋“ค์„ ์Šคํ”„๋ง์ด ์•Œ์•„์„œ ๋งŒ๋“ค์–ด์คŒ ๋งŒ๋“ค์–ด์ง€๋Š” ์„ค์ •๋งŒ ํ•ด์ฃผ๋ฉด ๋จ

 

> SI๋Š” ์ ˆ๋Œ€ ๊ฐ€์ง€๋งˆ๋ผ ๊ตฌ๊ธ€๋งํ•  ๋•Œ ์ฝ”๋“œ๋Š” ์ œ๋Œ€๋กœ ์•Œ๊ณ  ๊ฐ€์ ธ์˜ค์ž

> ๋””์ž์ธ ํŒจํ„ด์ด ๋‹ค์–‘ํ•˜๊ฒŒ ์ ์šฉ๋œ ๊ฒƒ๋„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•œ๋‹ค. 

> ๋Œ“๊ธ€์€ ์Šคํ”„๋ง์—์„œ ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ๊นŒ์ง€ ๊ตฌํ˜„ํ•  ์˜ˆ์ •

 

> RSS ์„œ๋น„์Šค : (Really Simple Syndication ๋˜๋Š” Rich Site Summary) : ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ๋˜๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋น„์Šค ex) ๋‰ด์Šค ๊ฐ™์€ ๊ฒƒ

> ajax ๊ธฐ๋Šฅ์€ ํ˜„์žฌ ์„œ๋ฒ„์— ์กด์žฌํ•˜๋Š” ์›นํ”„๋กœ๊ทธ๋žจ์„ ์š”์ฒญํ•˜์—ฌ ์‘๋‹ต๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณต๋ฐ›์•„ ์ฒ˜๋ฆฌ๋งŒ ๊ฐ€๋Šฅ => ๋‹ค๋ฅธ ์„œ๋ฒ„์— 

์กด์žฌํ•˜๋Š” ์›นํ”„๋กœ๊ทธ๋žจ์„ ์š”์ฒญํ•œ ๊ฒฝ์šฐ ์—๋Ÿฌ ๋ฐœ์ƒ -  ์—๋Ÿฌ์ฝ”๋“œ : 0

> proxy server : ์ค‘๊ณ„์ž ์—ญํ• ์„ ํ•˜๋Š” ์„œ๋ฒ„ (๋ฐ์ดํ„ฐ๋ฅผ ๋Œ€์‹  ์š”์ฒญํ•ด์„œ ๋ฐ›๊ณ  ๋„˜๊ฒจ์ฃผ๋Š” ์—ญํ• )

 

> GetMethod : Get๋ฐฉ์‹์œผ๋กœ ์›นํ”„๋กœ๊ทธ๋žจ์„ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค (๊ฐ€์ƒ์˜ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ด์šฉํ•˜์—ฌ ์›นํ”„๋กœ๊ทธ๋žจ์„ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ) 

> PostMethod : Post๋ฐฉ์‹์œผ๋กœ ์›นํ”„๋กœ๊ทธ๋žจ์„ ์š”์ฒญํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค

> HttpClient.executeMethod(Method method) : ๊ฐ€์ƒ์˜ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ด์šฉํ•˜์—ฌ ์›นํ”„๋กœ๊ทธ๋žจ์„ ์š”์ฒญํ•˜๋Š” ๋ฉ”์†Œ๋“œ

=> ์š”์ฒญ์— ๋Œ€ํ•œ ์ƒํƒœ์ฝ”๋“œ ๋ฐ˜ํ™˜

 

> Method.getResponseBodyAsString() : ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต๊ฒฐ๊ณผ๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

=> ์‘๋‹ต๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜๋ฐ›์•„ ์›ํ•˜๋Š” ๋ฌธ์žํ˜•ํƒœ(์บ๋ฆญํ„ฐ์…‹)๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ €์žฅ

 

> Method.releaseConnection() : ์š”์ฒญ ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฉ”์†Œ๋“œ

 

โ–ถ ๊ฐœ์ธ ๊ณต๋ถ€ ๊ด€๋ จ

์ธํ„ฐํŽ˜์ด์Šค์—์„œ ๋ฉ”์†Œ๋“œ ์ƒ์„ธ ์„ ์–ธ ๊ฐ€๋Šฅ ์—ฌ๋ถ€

  • ๊ธฐ๋ณธ์ ์ธ ํŠน์ง•
  1. ์ถ”์ƒํด๋ž˜์Šค๋ณด๋‹ค ์ถ”์ƒํ™” ์ •๋„๊ฐ€ ๋†’์•„์„œ ์ถ”์ƒ ํด๋ž˜์Šค์™€ ๋‹ฌ๋ฆฌ ๋ชธํ†ต์„ ๊ฐ–์ถ˜ ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ์™€ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†๋‹ค.
  2. ๊ธฐ๋Šฅ์„ ๋ช…์‹œ์ ์œผ๋กœ ์„ ์–ธํ•˜๋Š” ์—ญํ• ๋กœ ์ถ”์ƒ ๋ฉ”์„œ๋“œ์™€ ์ƒ์ˆ˜๋กœ๋งŒ!
  3. ๊ตฌํ˜„ํ•  ์ฝ”๋“œ๊ฐ€ ์—†์œผ๋ฏ€๋กœ ๋‹น์—ฐํžˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๋‹ค.
  4. ๋‹ค์ค‘ ์ƒ์†์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ธํ„ฐํŽ˜์ด์Šค ๊ฐ„์˜ ์ƒ์† ๊ด€๊ณ„๋Š” extends ํ‚ค์›Œ๋“œ ์ด์šฉ
  5. ํด๋ž˜์Šค์—์„œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด implements ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ
  • ํƒ€์ž… ์ƒ์†๊ณผ ํ˜• ๋ณ€ํ™˜ - ๋‹คํ˜•์„ฑ
  1. ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค๋Š” ์ธํ„ฐํŽ˜์ด์Šค ํƒ€์ž…์œผ๋กœ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๊ตฌํ˜„ ์ฝ”๋“œ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํƒ€์ž… ์ƒ์†์ด๋ผ๊ณ  ํ•œ๋‹ค.
  2. ํด๋ž˜์Šค๋Š” ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šคํ˜•์œผ๋กœ ๋ฌต์‹œ์  ํ˜• ๋ณ€ํ™˜์ด ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ, ํ˜• ๋ณ€ํ™˜ ๋˜์—ˆ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— ์„ ์–ธํ•œ ๋ฉ”์„œ๋“œ๋ฟ์ด๋‹ค.
  3. ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ฉ”์„œ๋“œ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ํƒ€์ž…์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๊ฐ–๋Š” ์˜๋ฏธ๋Š” ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ ์‹œ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ œ๊ณตํ•ด์•ผ ํ•œ๋‹ค.
  4. ๋ฆฌํ„ด ํƒ€์ž…์ด ์ธํ„ฐํŽ˜์ด์Šค๋ผ๋Š” ๊ฒƒ์€ ๋ฉ”์„œ๋“œ๊ฐ€ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์ธํ„ฐํŽ˜์ด์Šค์˜ ์žฅ์ 
  1. ๊ฐœ๋ฐœ ์‹œ๊ฐ„ ๋‹จ์ถ•์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์ž‘์„ฑ๋˜๋ฉด ์ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ชฝ์—์„œ๋Š” ์„ ์–ธ๋ถ€๋งŒ ์•Œ๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  2. ํ‘œ์ค€ํ™” ๊ฐ€๋Šฅํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ํ‹€์„ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ž‘์„ฑํ•œ ๋‹ค์Œ, ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋„๋ก ํ•˜๋ฉด ๋ณด๋‹ค ์ผ๊ด€๋˜๊ณ  ์ •ํ˜•ํ™”๋œ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  3. ์„œ๋กœ ๊ด€๊ณ„์—†๋Š” ํด๋ž˜์Šค๋“ค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด์ค€๋‹คํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ณตํ†ต์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋„๋ก ํ•˜์—ฌ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด ์ค„ ์ˆ˜ ์žˆ๋‹ค.
  4. ๋…๋ฆฝ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ€๋Šฅ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ํด๋ž˜์Šค์˜ ์„ ์–ธ๊ณผ ๊ตฌํ˜„์„ ๋ถ„๋ฆฌ์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ๊ตฌํ˜„์— ๋…๋ฆฝ์ ์ธ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

⇒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •์˜ํ•˜๊ณ  ์ด๋ฅผ ์ด์šฉํ•ด์„œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ฉด,๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ํ”„๋กœ๊ทธ๋žจ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋””ํดํŠธ ๋ฉ”์„œ๋“œ(default method) ⇒ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต jdk 8 ์ดํ›„ ๊ฐ€๋Šฅ
  1. ๊ธฐ๋ณธ ๊ตฌํ˜„์„ ๊ฐ€์ง€๋Š” ๋ฉ”์„œ๋“œ. ์•ž์— default ์˜ˆ์•ฝ์–ด๋ฅผ ๋ถ™์ด๋ฉฐ, ์ถ”์ƒ ๋ฉ”์„œ๋“œ์™€ ๋‹ฌ๋ฆฌ ์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ์ฒ˜๋Ÿผ ๋ชธํ†ต {} ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  2. ๋””ํดํŠธ ๋ฉ”์„œ๋“œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์— ์ด๋ฏธ ๊ตฌํ˜„๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์—์„œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ๋‹จ, ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ์—ฌ๋Ÿฌ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ ๊ฐ„์˜ ์ถฉ๋Œ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์—์„œ ๋””ํดํŠธ ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด์•ผ ํ•œ๋‹ค.
  4. ๋””ํดํŠธ ๋ฉ”์„œ๋“œ์™€ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ ๊ฐ„์˜ ์ถฉ๋Œ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๊ฐ€ ์ƒ์†๋˜๊ณ , ๋””ํดํŠธ ๋ฉ”์„œ๋“œ๋Š” ๋ฌด์‹œ๋œ๋‹ค.
  • ์ •์  ๋ฉ”์„œ๋“œ(static method) ⇒ ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต jdk 8 ์ดํ›„ ๊ฐ€๋Šฅ
  1. ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๊ณผ ์ƒ๊ด€์—†์ด ์ธํ„ฐํŽ˜์ด์Šค ํƒ€์ž…์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋ฉ”์„œ๋“œ๋‹ค.
  2. static ์˜ˆ์•ฝ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ์ ‘๊ทผ ์ œ์–ด์ž๋Š” ํ•ญ์ƒ public์ด๋ฉฐ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.
  3. ์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง์ ‘ ์ฐธ์กฐํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.
  4. ๊ตฌํ˜„ ํด๋ž˜์Šค์—์„œ ์žฌ์ •์˜ ๋ถˆ๊ฐ€๋Šฅ!

๊ฐ์ฒด์ง€ํ–ฅ SOLID 5์›์น™

1. Single Responsiblity Principle (๋‹จ์ผ ์ฑ…์ž„ ์›์น™)

  • ์†Œํ”„ํŠธ์›จ์–ด์˜ ์„ค๊ณ„ ๋ถ€ํ’ˆ(ํด๋ž˜์Šค, ํ•จ์ˆ˜ ๋“ฑ)์€ ๋‹จ ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.
  • ์—ฌ๊ธฐ์„œ ์ฑ…์ž„์ด๋ž€, '๊ธฐ๋Šฅ' ์ •๋„์˜ ์˜๋ฏธ๋กœ ํ•ด์„ํ•˜๋ฉด ๋œ๋‹ค.
  • ์„ค๊ณ„๋ฅผ ์ž˜ํ•œ ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒˆ๋กœ์šด ์š”๊ตฌ์‚ฌํ•ญ๊ณผ ํ”„๋กœ๊ทธ๋žจ ๋ณ€๊ฒฝ์— ์˜ํ–ฅ์„ ๋ฐ›๋Š” ๋ถ€๋ถ„์ด ์ ๋‹ค. ๋‹ค์‹œ๋งํ•ด, ์‘์ง‘๋„๋Š” ๋†’๊ณ  ๊ฒฐํ•ฉ๋„๋Š” ๋‚ฎ์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋œปํ•œ๋‹ค. ๋งŒ์•ฝ ํ•œ ํด๋ž˜์Šค๊ฐ€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ, ์ฆ‰ ์ฑ…์ž„์ด ๋งŽ์•„์ง„๋‹ค. ์ฑ…์ž„์ด ๋งŽ์•„์ง€๋ฉด ํด๋ž˜์Šค ๋‚ด๋ถ€์˜ ํ•จ์ˆ˜๋ผ๋ฆฌ ๊ฐ•ํ•œ ๊ฒฐํ•ฉ์„ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„์ง„๋‹ค. ์ด๋Š” ์œ ์ง€๋ณด์ˆ˜์— ๋น„์šฉ์ด ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ๋”ฐ๋ผ์„œ ์ฑ…์ž„์„ ๋ถ„๋ฆฌ์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

2. Open-Closed Principle (๊ฐœ๋ฐฉ-ํŒจ์‡„ ์›์น™)

  • ๊ธฐ์กด์˜ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ (Closed) ๊ธฐ๋Šฅ์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋„๋ก(Open) ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค.
  • OCP์— ๋งŒ์กฑํ•˜๋Š” ์„ค๊ณ„๋ฅผ ํ•  ๋•Œ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€์— ์ดˆ์ ์„ ๋งž์ถ˜๋‹ค. ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๋‚ด์šฉ์€ ์ˆ˜์ •ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ์„ค๊ณ„ ํ•˜๊ณ , ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์ˆ˜์ •๋˜๋Š” ๋‚ด์šฉ์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ํฌ์ธํŠธ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด **์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ๋ฒ•์ด ์ธํ„ฐํŽ˜์ด์Šค(Interface)**์ด๋‹ค.

⇒ ์œ„์™€ ๊ฐ™์€ ๋””์ž์ธ ํŒจํ„ด์€ Strategy Pattern (์ „๋žต ํŒจํ„ด) ํ”„๋กœ๊ทธ๋žจ

  • ๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ๋Š” SoundPlayer ํด๋ž˜์Šค์˜ ๋ณ€๊ฒฝ ์—†์ด ์žฌ์ƒ๋˜๋Š” ํŒŒ์ผ์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์œ„ ์ฝ”๋“œ๋Š” OCP๋ฅผ ๋งŒ์กฑํ•œ๋‹ค. ์•ž์„œ ๋งํ–ˆ๋“ฏ์ด OCP๋ฅผ ๋งŒ์กฑํ•œ ์„ค๊ณ„๋Š” ๋ณ€๊ฒฝ์— ์œ ์—ฐํ•˜๋ฏ€๋กœ ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์„ ์ค„์—ฌ์ฃผ๊ณ  ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ ๋˜ํ•œ ๋†’์•„์ง€๋Š” ํšจ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

3. Liskov Substitution Principle (๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™)

  • ์ž์‹ ํด๋ž˜์Šค๋Š” ๋ถ€๋ชจํด๋ž˜์Šค์—์„œ ๊ฐ€๋Šฅํ•œ ํ–‰์œ„๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
  • ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™์€ MIT ์ปดํ“จํ„ฐ ์‚ฌ์ด์–ธ์Šค ๊ต์ˆ˜์ธ ๋ฆฌ์Šค์ฝ”ํ”„๊ฐ€ ์ œ์•ˆํ•œ ์„ค๊ณ„ ์›์น™์ด๋‹ค. ๋ถ€๋ชจ ํด๋ž˜์Šค์™€ ์ž์‹ ํด๋ž˜์Šค ์‚ฌ์ด์˜ ํ–‰์œ„์—๋Š” ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋ฉฐ, ์ด๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ๋Œ€์‹  ์ž์‹ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ฐ์Šค๋ฅผ ์‚ฌ์šฉํ•ด๋„ ๋ฌธ์ œ๊ฐ€ ์—†์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์ƒ์† ๊ด€๊ณ„์—์„œ๋Š” ์ผ๋ฐ˜ํ™” ๊ด€๊ณ„(IS-A)๊ฐ€ ์„ฑ๋ฆฝํ•ด์•ผ ํ•œ๋‹ค. ์ผ๋ฐ˜ํ™” ๊ด€๊ณ„์— ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์ผ๊ด€์„ฑ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜ ์›์น™์€ ์ผ๋ฐ˜ํ™” ๊ด€๊ณ„์— ๋Œ€ํ•ด ๋ฌป๋Š” ๊ฒƒ์ด๋ผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

4. Dependency Inversion Principle (์˜์กด ์—ญ์ „ ์›์น™)

  • ์˜์กด ๊ด€๊ณ„๋ฅผ ๋งบ์„ ๋•Œ, ๋ณ€ํ™”ํ•˜๊ธฐ ์‰ฌ์šด๊ฒƒ ๋ณด๋‹จ ๋ณ€ํ™”ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ์— ์˜์กดํ•ด์•ผ ํ•œ๋‹ค๋Š” ์›์น™์ด๋‹ค.

***** JAVA ๊ฐ์ฒด ์ง€ํ–ฅ ๋””์ž์ธ ํŒจํ„ด(์ •์ธ์ƒ/์ฑ„ํ™์„ ์ง€์Œ, ํ•œ๋น›๋ฏธ๋””์–ด, 2014) p.121 ์ธ์šฉ

  • ๋ณ€ํ™”ํ•˜๊ธฐ ์‰ฌ์šด๊ฒƒ์ด๋ž€ ๊ตฌ์ฒด์ ์ธ ๊ฒƒ์„ ๋งํ•˜๊ณ , ๋ณ€ํ™”ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ์ด๋ž€ ์ถ”์ƒ์ ์ธ ๊ฒƒ์„ ๋งํ•œ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์ ์ธ ๊ด€์ ์—์„œ ๋ณด์ž๋ฉด ๋ณ€ํ™”ํ•˜๊ธฐ ์‰ฌ์šด๊ฒƒ์ด๋ž€ ๊ตฌ์ฒดํ™” ๋œ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•˜๊ณ , ๋ณ€ํ™”ํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒƒ์€ ์ถ”์ƒํด๋ž˜์Šค๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ๋”ฐ๋ผ์„œDIP๋ฅผ ๋งŒ์กฑํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์˜์กด๊ด€๊ณ„๋ฅผ ๋งบ์„ ๋•Œ, ๊ตฌ์ฒด์ ์ธ ํด๋ž˜์Šค๋ณด๋‹ค ์ธํ„ฐํŽ˜์ด์Šค๋‚˜ ์ถ”์ƒ ํด๋ž˜์Šค์™€ ๊ด€๊ณ„๋ฅผ ๋งบ๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

  • setFile ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ์‹คํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ํŒŒ์ผ์„ ์‰ฝ๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ƒˆ๋กœ์šด ์˜ค๋””์˜ค ํŒŒ์ผ ํฌ๋งท(์˜ˆ๋ฅผ๋“ค๋ฉด FLAC)์„ ์‹คํ–‰์‹œํ‚ค๊ณ ์ž ํ•œ๋‹ค๋ฉด, ์ƒˆ๋กœ์šด ํด๋ž˜์Šค(FLAC)๋ฅผ ๋งŒ๋“  ํ›„ play ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ๊ตฌํ˜„ํ•œ ํ›„ setFile ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜์—ฌ file ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— ์ฃผ์ž…์‹œํ‚ค๋ฉด ๋œ๋‹ค. ์ด์™€๊ฐ™์€ ๊ธฐ์ˆ ์„ '์˜์กด์„ฑ ์ฃผ์ž…' ์ด๋ผ ํ•œ๋‹ค.

5. Interface Segregation Principle (์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™)

  • ํ•œ ํด๋ž˜์Šค๋Š” ์ž์‹ ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ตฌํ˜„ํ•˜์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค. ํ•˜๋‚˜์˜ ์ผ๋ฐ˜์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๋ณด๋‹ค๋Š”, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ตฌ์ฒด์ ์ธ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๋‚ซ๋‹ค.
  • ์ด๋Š” ๋‹ค์‹œ ๋งํ•ด์„œ, ์ž์‹ ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ(์ธํ„ฐํŽ˜์ด์Šค)์—๋Š” ์˜ํ–ฅ์„ ๋ฐ›์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.
  • ์šฐ๋ฆฌ๋Š” ์Šค๋งˆํŠธํฐ์œผ๋กœ ์ „ํ™”, ์›น์„œํ•‘, ์‚ฌ์ง„ ์ดฌ์˜ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ „ํ™”๋ฅผ ํ•  ๋•Œ์—๋Š” ์›น์„œํ•‘, ์‚ฌ์ง„์ดฌ์˜ ๋“ฑ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ์ „ํ™”๊ธฐ๋Šฅ๊ณผ ์›น์„œํ•‘ ๊ธฐ๋Šฅ ์‚ฌ์ง„ ์ดฌ์˜ ๊ธฐ๋Šฅ์€ ๊ฐ๊ฐ ๋…๋ฆฝ๋œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊ตฌํ˜„ํ•˜์—ฌ, ์„œ๋กœ์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๋„๋ก ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์„ค๊ณ„๋œ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ ์›์น™์„ ํ†ตํ•ด ์‹œ์Šคํ…œ์˜ ๋‚ด๋ถ€ ์˜์กด์„ฑ์„ ์•ฝํ™”์‹œ์ผœ ๋ฆฌํŒฉํ† ๋ง, ์ˆ˜์ •, ์žฌ๋ฐฐํฌ๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ 2

์ œ์–ด์ž

  • final ํ‚ค์›Œ๋“œ : ์ด ํ‚ค์›Œ๋“œ๊ฐ€ ๋ถ™์€ ๋ณ€์ˆ˜์˜ ๊ฒฝ์šฐ ์ดˆ๊ธฐํ™”๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์ƒ์„ฑ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ์ดˆ๊ธฐํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์ ‘๊ทผ ์ œ์–ด์ž

  • ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์ด์šฉํ•ด ์บก์Šํ™”๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ฐ์ดํ„ฐ ๊ฐ์ถ”๊ธฐ (๊ฐ์ฒด์ง€ํ–ฅ๊ฐœ๋…์˜ ์บก์Šํ™”)
  • ์ ‘๊ทผ ์ œ์–ด์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 
  1. ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด์„œ
  2. ์™ธ๋ถ€์—๋Š” ๋ถˆํ•„์š”ํ•œ, ๋‚ด๋ถ€์ ์œผ๋กœ๋งŒ ์‚ฌ์šฉ๋˜๋Š”, ๋ถ€๋ถ„์„ ๊ฐ์ถ”๊ธฐ ์œ„ํ•ด์„œ

์ œ์–ด์ž์˜ ์กฐํ•ฉ

  • ๋ฉ”์„œ๋“œ์— static๊ณผ abstract๋ฅผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ⇒ ๋ชธํ†ต์ด ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ํด๋ž˜์Šค์— abstract์™€ final์„ ๋™์‹œ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ⇒ ๋ชจ์ˆœ
  • abstract๋ฉ”์„œ๋“œ์˜ ์ ‘๊ทผ ์ œ์–ด์ž๊ฐ€ private์ผ ์ˆ˜ ์—†๋‹ค. ⇒ ์ ‘๊ทผ๋ถˆ๊ฐ€, ์˜ค๋ฒ„๋ผ์ด๋“œ ๋ถˆ๊ฐ€๋Šฅ
  • ๋ฉ”์„œ๋“œ์— private๊ณผ final์„ ๊ฐ™์ด ์‚ฌ์šฉํ•  ํ•„์š”๋Š” ์—†๋‹ค. ⇒ ์˜ค๋ฒ„๋ผ์ด๋“œ ๋ถˆ๊ฐ€๋Šฅ

๋‹คํ˜•์„ฑ

  • ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ˜•ํƒœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ
  • ์ž๋ฐ”์—์„œ๋Š” ํ•œ ํƒ€์ž…์˜ ์ฐธ์กฐ๋ณ€์ˆ˜๋กœ ์—ฌ๋Ÿฌ ํƒ€์ž…์˜ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ์œผ๋กœ ์จ ๋‹คํ˜•์„ฑ์„ ํ”„๋กœ๊ทธ๋žจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.
  • ํ˜•๋ณ€ํ™˜์€ ์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด์ง€ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํ˜•๋ณ€ํ™˜์€ ์ธ์Šคํ„ด์Šค์— ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค. ๋‹จ์ง€ ์ฐธ์กฐ๋ณ€์ˆ˜์˜ ํ˜•๋ณ€ํ™˜์„ ํ†ตํ•ด์„œ, ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ์ธ์Šคํ„ด์Šค์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉค๋ฒ„์˜ ๋ฒ”์œ„(๊ฐœ์ˆ˜)๋ฅผ ์กฐ์ ˆํ•˜๋Š” ๊ฒƒ๋ฟ์ด๋‹ค.
  • ์ฐธ์กฐ๋ณ€์ˆ˜๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ์Šคํ„ด์Šค์˜ ํƒ€์ž…์ด ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.

์ถ”์ƒํด๋ž˜์Šค

  • ์ถ”์ƒ๋ฉ”์†Œ๋“œ๋ฅผ ๋ชจ๋‘ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ƒ์†๋ฐ›์€ ์ž์‹ ํด๋ž˜์Šค ์—ญ์‹œ ์ถ”์ƒ ํด๋ž˜์Šค๋กœ ์ง€์ •๋˜์–ด์•ผ ํ•œ๋‹ค.

์ธํ„ฐํŽ˜์ด์Šค

  • ๋ชจ๋“  ๋ฉค๋ฒ„๋ณ€์ˆ˜๋Š” ์ƒ์ˆ˜์ด๋ฉฐ ๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ์ถ”์ƒ๋ฉ”์„œ๋“œ ํ‚ค์›Œ๋“œ๋Š” ์ƒ๋žต ๊ฐ€๋Šฅ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์•Œ์•„์„œ ์ง€์ •ํ•ด์คŒ.
  • ์ƒ์†๋ณด๋‹ค๋Š” ๊ตฌํ˜„์ด๋ผ๋Š” ๋œป์„ ์‚ฌ์šฉํ•จ.
  • ๋‹ค์ค‘์ƒ์†์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ ๋‹ค์ค‘์ƒ์†์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†๋‹ค.
  • ๋ฆฌํ„ดํƒ€์ž…์ด ์ธํ„ฐํŽ˜์ด์Šค๋ผ๋Š” ๊ฒƒ์€ ๋ฉ”์„œ๋“œ๊ฐ€ ํ•ด๋‹น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
  • ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ชฝ๊ณผ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ชฝ์ด์žˆ๋‹ค. ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ชฝ์—์„œ๋Š” ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋ฉ”์„œ๋“œ์˜ ์„ ์–ธ๋ถ€๋งŒ ์•Œ๋ฉด ๋œ๋‹ค. (๋‚ด์šฉ์€ ๋ชฐ๋ผ๋„ ๋จ)

 

 

โ–ถ ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ

1. ์นดํŽ˜ ์ขŒ์„ ์˜ˆ์•ฝ ์‹œ์Šคํ…œ

2. ๋‹จ์ฒด์˜ท ์ฃผ๋ฌธ ์ œ์ž‘ ์‚ฌ์ดํŠธ

3. ์˜จ๋ผ์ธ ๊ณต์—ฐ ์˜ˆ๋งค ์‚ฌ์ดํŠธ

4. ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ ์‚ฌ์ดํŠธ

5. ํ•™์‚ฌ ์ •๋ณด (๊ด€๋ฆฌ) ์‹œ์Šคํ…œ

6. erp?

๋ฐ˜์‘ํ˜•

'๋ ˆ๊ฑฐ์‹œ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

2022.02.17์˜ ๊ธฐ๋ก  (0) 2022.02.17
2022.02.16์˜ ๊ธฐ๋ก  (0) 2022.02.16
2022.02.14 (๊ฐœ๋… ์ •๋ฆฌ)  (0) 2022.02.15
2022-02-14์˜ ๊ธฐ๋ก  (0) 2022.02.14
2022-02-13์˜ ๊ธฐ๋ก  (0) 2022.02.13