๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์‹œ๋„/๊ตญ๋น„์ง€์›

[D+20] ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ™œ์šฉ

by ๐Ÿ‡๋ฐ•๋ด‰๋ด‰๐Ÿ‡ 2022. 10. 20.

 

 

๊ตญ๋น„์ง€์› D+20

-  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ™œ์šฉ -

 


 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ™œ์šฉ

#1. ์–ธ์–ด ํŠน์„ฑ ํ™œ์šฉํ•˜๊ธฐ

• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์œ ํ˜•

- ๋ช…๋ นํ˜• ์–ธ์–ด(Imperative Language) : ์ปดํ“จํ„ฐ๊ฐ€ ๋™์ž‘ํ•ด์•ผํ•  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝ์‹œํ‚ค๋Š” ๊ตฌ๋ฌธ์— ์ค‘์ ์„ ๋‘” ๋ฐฉ์‹

- ํ•จ์ˆ˜ํ˜• ์–ธ์–ด(Functional Language) : ํ•จ์ˆ˜์˜ ์‘์šฉ์„ ๊ฐ•์กฐํ•˜๋ฉด์„œ ์ž๋ฃŒ์˜ ์ฒ˜๋ฆฌ๋Š” ์ˆ˜ํ•™์ ์ธ ํ•จ์ˆ˜์˜ ์—ฐ์‚ฐ์œผ๋กœ ์ทจ๊ธ‰ํ•˜๊ณ , ์ƒํƒœ์™€ ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๋Š” ๋ฉ€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹

ex) LISP, Scala- ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด(Object - Oriented Language) : ๊ฐ์ฒด ๊ฐ„์˜ ๋ฉ”์‹œ์ง€ ํ†ต์‹ ์„ ์ด์šฉํ•˜์—ฌ ๋™์ž‘ํ•˜๋Š” ๋ฐฉ์‹ex) JAVA, C++

 

์ปดํŒŒ์ผ ์–ธ์–ด(Compile Language)    

- ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋ชจ์•„์„œ object-code๋ฅผ ๋งŒ๋“ ๋‹ค. 

- ์ „์ฒด์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋นŒ๋“œํ•œ๋‹ค. 

- ์‹คํ–‰ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค.

- ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.   

- ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ์„๋•Œ, ์žฌ์ปดํŒŒ์ผ์„ ํ•ด์•ผํ•œ๋‹ค.

 

์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด(Interpreter Language)

- ๋ฌธ์žฅ๋‹จ์œ„๋กœ ์ฝ์–ด๋“ค์—ฌ ํ•ด์„ํ•ด ์‹คํ–‰ํ•œ๋‹ค.

- ๋ฌธ์žฅ๋‹จ์œ„๋กœ ๋นŒ๋“œํ•œ๋‹ค.

- ์‹คํ–‰ํŒŒ์ผ์„ ๋ฏธ์ƒ์„ฑํ•œ๋‹ค.

- ์ฒ˜๋ฆฌ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.

- ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ์„๋•Œ, ์ฆ‰์‹œ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

=> ๋‹จ, ์ž๋ฐ”๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ์–ธ์–ด์ด์ง€๋งŒ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์˜ ์„ฑ๊ฒฉ๋„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ดํŠน์ง•

- JAVA : C++์— ๋น„ํ•ด ๋‹จ์ˆœํ•˜๊ณ  ๋ถ„์‚ฐํ™˜๊ฒฝ๊ณผ ๊ฐ์ฒด์ง€ํ–ฅ, ๋ณด์•ˆ์„ฑ์„ ์ง€์›ํ•˜๊ณ  ์ปดํŒŒ์ผ์„ ํ†ตํ•ด class ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฉฐ ๊ฐ€์ƒ๋จธ์‹ (JVM)์—์„œ ์‹คํ–‰

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

PYTHON : ๋ฐฐ์šฐ๊ธฐ ์‰ฝ๊ณ  ์ด์‹์„ฑ์ด ์ข‹์€ ์–ธ์–ด๋กœ ๋‹ค์–‘ํ•œ ํ•จ์ˆ˜๋“ค๋„ ๋งŽ์ด ์ œ๊ณต๋˜์–ด ์ตœ๊ทผ ํŠธ๋ Œ๋“œ์™€ ๋งž๋ฌผ๋ ค ์Šคํƒ€ํŠธ์—…๊ณผ ๊ธ€๋กœ๋ฒŒ ๊ธฐ์—… ๋“ฑ์—์„œ๋„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด

GOLANG : Google์—์„œ ๋งŒ๋“  ์–ธ์–ด๋กœ ์งง๊ฒŒ๋Š” GO๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ ๋‚ด์žฅ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋งŽ์ด ์ง€์›๋˜๊ณ  C์–ธ์–ด์˜ ๋ฌธ๋ฒ•๊ณผ ์œ ์‚ฌํ•˜๋‚˜ ์ œ์–ด ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ๋น ๋ฅธ ์ปดํŒŒ์ผ์ด ๊ฐ€๋Šฅํ•จ

KOTLIN : JAVA๋ณด๋‹ค ๊ฐ„๊ฒฐํ•œ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” JVM ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด๋กœ JAVA์™€์˜ ์ƒํ˜ธ ์šด์šฉ์ด 100% ์ง€์›๋˜๊ณ  2019๋…„ ๊ตฌ๊ธ€์ด ์•ˆ๋“œ๋กœ์ด๋“œ์˜ ๊ณต์‹ ์–ธ์–ด๋กœ ์ถ”๊ฐ€

 

• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์œ ํ˜•

- ๊ฐ์ฒด(object) : ๊ฐœ์ฒด์™€ ์†์„ฑ, ๋ฉ”์†Œ๋“œ๋กœ ๊ตฌ์„ฑ๋œ ํด๋ž˜์Šค์˜ Instance

ํด๋ž˜์Šค(class) : ๊ณตํ†ต๋œ ํŠน์„ฑ(์†์„ฑ, ์—ฐ์‚ฐ)์„ ๊ฐ€์ง€๋Š” ๊ฐ์ฒด ์ง‘ํ•ฉ์œผ๋กœ ๊ฐ์ฒดํƒ€์ž…์„ ์ •์˜ํ•˜๊ณ  ์ƒ์„ฑํ•˜๋Š” ํ‹€

๋ฉ”์‹œ์ง€(message) : ๊ฐ์ฒด๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์€ ๋ฉ”์‹œ์ง€๋ฅผ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง€๋ฉฐ ๊ฐ์ฒด์—์„œ ๊ฐ์ฒด๋กœ ์ „๋‹ฌ๋œ๋‹ค.

 

• ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์ง•

1) ์ถ”์ƒํ™”(Abstraction) : ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ, ์„ค๊ณ„์‚ฌํ•ญ์˜ ์š”๊ตฌ์‚ฌํ•ญ์— ์˜ํ•ด ๋ฌด์—‡์ด ์ค‘์š”ํ•œ ๊ฒƒ์ธ์ง€๋ฅผ ์ธ์ง€ํ•˜๊ณ  ๋ฝ‘์•„๋‚ด๋Š” ๊ฒƒ

2) ์บก์Šํ™”(Encapsulation) : ์ถ”์ƒํ™”๋ฅผ ํ†ตํ•ด ์–ป์–ด๋‚ธ ์†์„ฑ๋“ค์„ ๋ฌถ๋Š” ๊ฒƒ

3) ๋‹คํ˜•์„ฑ(Polymorphism) : ๊ฐ™์€ ๋ชจ์–‘์˜ ํ•จ์ˆ˜๊ฐ€ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ

4) ์ƒ์†(Inheritance) : Heap ์˜์—ญ์—์„œ์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ฒฐํ•ฉ

5) ์ •๋ณด ์€๋‹‰(Information Hiding) : ์บก์Šํ™” ์ •๋ณด๋“ค์„ ๋ฐ–์—์„œ ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ

 

#2-0. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌํ˜„ ๋ฐ ์ตœ์ ํ™”

• ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชฉํ‘œ

์šฐ๋ฆฌ๊ฐ€ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ๋•Œ ๊ฐ€์žฅ ์ด์ƒ์ ์ธ ๋ชฉํ‘œ๋Š” ํ’ˆ์งˆ์ด ๋†’์€ s/w๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์ด๋•Œ์— ๋†’์€ ํ’ˆ์งˆ์ด ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฒ„๊ทธ๊ฐ€ ์—†์–ด์•ผ ํ•˜๋ฉฐ(Small Q), ๊ณ ๊ฐ์ด ๋งŒ์กฑํ•ด์•ผํ•˜๋Š” ๊ฒƒ(Big Q)์œผ๋กœ ์ด ๋‘๊ฐ€์ง€๊ฐ€ ๋งŒ์กฑํ•ด์•ผ ๋†’์€ ํ’ˆ์งˆ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

Small Q์™€ Big Q๋ฅผ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ฒ„๊ทธ๋ฅผ ์žก๊ธฐ์œ„ํ•œ Testing๊ณผ์ •์„ ๊ฑฐ์น˜๊ฑฐ๋‚˜ ๊ณ ๊ฐ๋งŒ์กฑ์„ ์œ„ํ•ด "์š”๊ตฌ์‚ฌํ•ญ๋ช…์„ธ"๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

 

• SDLC (Software Development Life Cycle)

- S/W๋ฅผ ๋งŒ๋“ค๊ธฐ์œ„ํ•ด ํ•„์š”ํ•œ ์ ˆ์ฐจ์ด๋‹ค.

- SDLC๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ SmallQ ์™€ BigQ๋ฅผ ๋งŒ์กฑํ•˜๋Š” ํ’ˆ์งˆ์ด ๋œ๋‹ค.

- S/W : SDLC์—์„œ ๋‚˜์˜ค๋Š” ๋ชจ๋“  ์‚ฐ์ถœ๋ฌผ

- ๋ฐฉ๋ฒ•๋ก (Methodology) : ์–ด๋–คํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๊ฐœ๋ฐœํ• ์ง€, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ• ์ง€์— ๋Œ€ํ•œ ์ผ์ข…์˜ ๋ ˆ์‹œํ”ผ๋กœ SDLC์— ๋Œ€ํ•œ ๋””ํ…Œ์ผ์ ์ธ ๊ฒƒ

 

• ์ฝ”๋“œ๋ฆฌ๋ทฐ ๊ธฐ๋ฒ•

1) ์ธ์ŠคํŽ™์…˜ (Inspection)

- ํ”„๋กœ๊ทธ๋žจ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์ฝ”๋“œ์ƒ์—์„œ์˜ ์ž ์žฌ์ ์ธ ์˜ค๋ฅ˜์™€ ํ‘œ์ค€ ๋ฏธ์ค€์ˆ˜ ๋“ฑ์˜ ๊ฒฐํ•จ์„ ์‚ฌ์ „์— ์‹๋ณ„ํ•˜์—ฌ ๊ฐœ์„ ํ•˜๋Š” ๊ณต์‹์ ์ธ ๋ฆฌ๋ทฐ๊ธฐ๋ฒ•

2) ์›Œํฌ์Šค๋ฃจ (Walk Through)

- ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฆฌ๋ทฐ์˜ ์ฃผ์ œ์™€ ์‹œ๊ฐ„์„ ์ •ํ•ด์„œ ๋ฐœํ‘œ๋ฅผ ํ•˜๊ณ  ๋™๋ฃŒ๋“ค๋กœ๋ถ€ํ„ฐ ์˜๊ฒฌ์ด๋‚˜ ์•„์ด๋””์–ด๋ฅผ ๋“ฃ๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์‚ฌ๋ก€์— ๋Œ€ํ•œ ์ •๋ณด ๊ณต์œ ๋‚˜ ์•„์ด๋””์–ด ์ˆ˜์ง‘์„ ์œ„ํ•ด์„œ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค.

- ๋น„๊ณต์‹์ ์ธ ๋ฆฌ๋ทฐ๊ธฐ๋ฒ•

3) ๋™๋ฃŒ๊ฒ€ํ†  (Peer Review)

- ๋ณ„๋„์˜ ์ ˆ์ฐจ ์—†์ด ๋น„๊ณต์‹์œผ๋กœ ๊ณ„ํš ์—†์ด ์ž„์˜์ ์œผ๋กœ ์‹ค์‹œ๋˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋™๋ฃŒ์™€ ์ฝ”๋“œ ๋ฐ ์‚ฐ์ถœ๋ฌผ์˜ ๊ฒฐํ•จ์„ ์‹๋ณ„ํ•˜๋Š” ๊ธฐ๋ฒ•

- ๋น„๊ณต์‹์ ์ธ ๋ฆฌ๋ทฐ๊ธฐ๋ฒ•

 

• ๋ฆฌํŒฉํ† ๋ง(Refactoring)

- S/W์˜ ์›๋ž˜ ๊ธฐ๋Šฅ์€ ์œ ์ง€ํ•˜๋ฉด์„œ ์†Œ์Šค์ฝ”๋“œ ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์ˆ˜์ • ๋ฐ ๋ณด์™„ํ•˜์—ฌ ๊ฐ€๋…์„ฑ, ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ฐ ๋กœ์ง์„ ๊ฐœ์„ ํ•˜๋Š” ๊ธฐ๋ฒ•

- ์ฝ”๋“œ ์Šค๋ฉœ ๋ฐœ์ƒ์‹œ์— ์ฃผ๋กœ ์‹คํ–‰ํ•œ๋‹ค.

- ์œ ์ง€๋ณด์ˆ˜ ๋ชฉ์ 

 

• OWASP TOP 10

- OWASP(The Open Web Application Securitiy Project)

- ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋ณด์•ˆ ํ”„๋กœ์ ํŠธ

- ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ทจ์•ฝ์  ์ค‘์—์„œ ๋นˆ๋„๊ฐ€ ๋งŽ์ด ๋ฐœ์ƒํ•˜๊ณ  ๋ณด์•ˆ์ƒ ์˜ํ–ฅ์„ ํฌ๊ฒŒ ์ค„ ์ˆ˜ ์žˆ๋Š” 10๊ฐ€์ง€๋ฅผ ์„ ์ •ํ•˜์—ฌ 2-3๋…„๋งˆ๋‹ค ๋ฐœํ‘œํ•œ๋‹ค.

 

• ํ”„๋กœํ† ํƒ€์ž…

- ๋ถ„์„๋‹จ๊ณ„์—์„œ ๊ป๋ฐ๊ธฐ๋งŒ ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“  ๊ฒƒ

- ex) kakao oven

 

• ๋””์ž์ธ ํŒจํ„ด

- ์ƒ์„ฑ ํŒจํ„ด

- ๊ตฌ์กฐ ํŒจํ„ด

- ํ–‰์œ„ ํŒจํ„ด

 

#2-1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ ์ •

• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (Library)

- ํ”„๋กœ๊ทธ๋žจ์„ ํšจ์œจ์ ์œผ๋กœ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ชจ์€ ์ง‘ํ•ฉ์ฒด

- function๋“ค์˜ ์ง‘ํ•ฉ

 

1) ์ •์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (Static Library)

- ํ”„๋กœ๊ทธ๋žจ์„ ๋นŒ๋“œํ•  ๋•Œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํŒŒ์ผ์— ๋„ฃ๋Š” ๋ฐฉ์‹

- ์žฅ์ ) ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ์ตœ์ ํ™”

- ๋‹จ์ ) ํฌ๊ธฐ๊ฐ€ ์ปค์ง„๋‹ค.

 

2) ๋™์  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (Dynamic Library)

- ๊ณตํ†ต์ ์œผ๋กœ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ํ”„๋กœ๊ทธ๋žจ๊ณผ ๋ถ„๋ฆฌํ•˜์—ฌ ํ•„์š”์‹œ์—๋งŒ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

- ์žฅ์ ) ์‚ฌ์ด์ฆˆ๊ฐ€ ์ž‘๋‹ค.

- ๋‹จ์ ) ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค.

 

• ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ, ์•„ํ‚คํ…์ฒ˜, ํ”Œ๋žซํผ

- Library : ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ ๋ฐ ๋ถ€ํ’ˆํ™”๋ฅผ ์œ„ํ•˜์—ฌ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์—์„œ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ œ๊ณต๋˜๋Š” ๋ชจ๋“ˆ์˜ ์ง‘ํ•ฉ

- Framework : ์‘์šฉํ”„๋กœ๊ทธ๋žจ ํ‘œ์ค€ ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ชจ์ž„

- Archtecture : ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ปดํ“จํ„ฐ ๊ตฌ์„ฑ์š”์†Œ๋“ค์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ๊ธฐ๊ณ„์  ๊ตฌ์กฐ์™€ ์ด๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ•

- Platform : ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•œ ๊ณตํ†ต ์‹คํ–‰ํ™˜๊ฒฝ์œผ๋กœ ํ”Œ๋žซํผ ์œ„์— ๋‹ค๋ฅธ ํ”Œ๋žซํผ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์Œ

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€