๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ
๐Ÿ“œ ์ž๊ฒฉ์ฆ/์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ

2023๋…„ 1ํšŒ์ฐจ ํ•„๊ธฐ ๊ธฐ์ถœ๋ฌธ์ œ ํ’€์ด

by ๋ฐ”์ฟ„๋ฆฌ 2025. 2. 11.

 

3. ๋ฉ”์‹œ์ง€ ์ง€ํ–ฅ ๋ฏธ๋“ค์›จ์–ด(MOM, Message-Oriented Middleware)

- ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง€ ๊ธฐ๋ฐ˜์˜ ํ†ต์‹ ์„ ์ œ๊ณตํ•˜๋Š” ๋ฏธ๋“ค์›จ์–ด๋กœ, ๋А๋ฆฌ์ง€๋งŒ ์•ˆ์ •์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.

- ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ: ๋ฉ”์‹œ์ง€๋ฅผ ํ์— ์ €์žฅํ•˜๊ณ , ์ˆ˜์‹ ์ž๊ฐ€ ์ค€๋น„๋˜์—ˆ์„ ๋•Œ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹, ์ฆ‰๊ฐ์ ์ธ ์‘๋‹ต์ด ํ•„์š”ํ•˜์ง€ ์•Š์€ ํ™˜๊ฒฝ์— ์ ํ•จ

- ๊ณ ์‹ ๋ขฐ์„ฑ: ๋ฉ”์‹œ์ง€๋Š” ์†์‹ค๋˜์ง€ ์•Š๋„๋ก ํ์— ์ €์žฅ๋˜๋ฉฐ, ์‹œ์Šคํ…œ ์žฅ์•  ๋ฐœ์ƒ ์‹œ์—๋„ ๋ณต๊ตฌ ๊ฐ€๋Šฅ, ๋А๋ฆฌ์ง€๋งŒ ์•ˆ์ •์ ์ธ ์‘๋‹ต์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ

- ๋น„๋™๊ธฐ ๋ฉ”์‹œ์ง•์„ ํ†ตํ•œ ๋ถ„์‚ฐ ํ™˜๊ฒฝ ์ง€์›: ๋ถ„์‚ฐ ์‹œ์Šคํ…œ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์˜ ๋…๋ฆฝ์ ์ธ ํ†ต์‹ ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•จ, ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž๊ฐ€ ์ง์ ‘ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์•„๋„ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ์Œ

- ๋Œ€ํ‘œ์ ์ธ MOM ๊ธฐ์ˆ : RabbitMQ, Apache Kafka, ActiveMQ, IBM MQ

 

4. ์ž๋ฃŒ ํ๋ฆ„๋„(DFD)์—์„œ ์ž๋ฃŒ ์ €์žฅ์†Œ(Data Store)

- ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐœ์ฒด์ด๋ฉฐ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ๋ฐ˜๋“œ์‹œ ์Œ์„ ์ด๋ฃจ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค

- ์ž๋ฃŒ ์ €์žฅ์†Œ์—๋Š” ์ž…๋ ฅ(Write) ์—†์ด ์ถœ๋ ฅ(Read)๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. (์ด๋ฏธ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๊ฒฝ์šฐ)

- ์ž๋ฃŒ ์ €์žฅ์†Œ์—๋Š” ์ถœ๋ ฅ(Read) ์—†์ด ์ž…๋ ฅ(Write)๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. (๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ๋งŒ ํ•˜๊ณ , ์ฆ‰์‹œ ์ฝ์ง€ ์•Š๋Š” ๊ฒฝ์šฐ)

- ์ž๋ฃŒ ์ €์žฅ์†Œ์—๋Š” ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ๋ชจ๋‘ ์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค. (๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ๊ฐฑ์‹ ํ•˜๋Š” ๊ฒฝ์šฐ)

 

- ์ž๋ฃŒ ํ๋ฆ„์€ ์ฒ˜๋ฆฌ(Process)๋ฅผ ๊ฑฐ์ณ ๋ณ€ํ™˜๋  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์ด๋ฆ„์„ ๋ถ€์—ฌํ•œ๋‹ค.

 

5. ์ƒํ–ฅ์‹ ์„ค๊ณ„(Bottom-Up Design)

- ์ƒํ–ฅ์‹ ์„ค๊ณ„๋Š” ์„ธ๋ถ€ ๋ชจ๋“ˆ(ํ•˜์œ„ ๋ชจ๋“ˆ)์„ ๋จผ์ € ์„ค๊ณ„ํ•œ ํ›„, ์ด๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ๋” ํฐ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ์‹

- ํ•˜์œ„ ๊ธฐ๋Šฅ์„ ๋จผ์ € ๊ตฌํ˜„ํ•˜๊ณ , ์ด๋ฅผ ์กฐํ•ฉํ•˜์—ฌ ์ƒ์œ„ ๊ธฐ๋Šฅ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ด๋ฏ€๋กœ ๊ธฐ๋Šฅ ํ™•์žฅ์„ฑ์€ ๋†’์ง€๋งŒ, ์ธํ„ฐํŽ˜์ด์Šค ์„ค๊ณ„๊ฐ€ ๋ฏธ๋ฆฌ ์„ฑ๋ฆฝ๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋Šฅ ์ถ”๊ฐ€๊ฐ€ ์–ด๋ ต๋‹ค.

 

6. ๋ชจ๋ธ๋ง Modeling

- ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ตฌ์กฐ, ๋™์ž‘, ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋“ฑ์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์ดํ•ด๋ฅผ ๋•๊ณ , ์„ค๊ณ„๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

- ์ฃผ์š” ๋ชฉ์ : ์‹œ๊ฐํ™”, ์„ค๊ณ„ ๋ฐ ๋ถ„์„, ์˜์‚ฌ์†Œํ†ต, ๋ฌธ์„œํ™”

- ๋ชจ๋ธ๋ง ๊ธฐ๋ฒ•: ์ž๋ฃŒ ํ๋ฆ„๋„(DFD), ๊ฐ์ฒด ๋ชจ๋ธ๋ง(UML), ํ”„๋กœ์„ธ์Šค ๋ชจ๋ธ๋ง, ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง(ERD)

 

9. ๊ฐ์ฒด์ง€ํ–ฅ ๋ถ„์„ ๋ฐฉ๋ฒ•๋ก 

- Coad-Yourdon: E-R ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด์˜ ํ–‰์œ„๋ฅผ ๋ชจ๋ธ๋ง, ์—ฐ์‚ฐ๊ณผ ๋ฉ”์‹œ์ง€ ์—ฐ๊ฒฐ ์ •์˜ ๋“ฑ์„ ๊ณผ์ •์œผ๋กœ ์ฃผ๋กœ ๊ด€๊ณ„๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ธฐ๋ฒ•

- Booch: ๋ฏธ์‹œ์ , ๊ฑฐ์‹œ์  ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ•˜๋Š” ๋ถ„์„ ๋ฐฉ๋ฒ•, ํด๋ž˜์Šค์™€ ๊ฐ์ฒด๋“ค์„ ๋ถ„์„ ๋ฐ ์‹๋ณ„ํ•˜๊ณ  ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ์—ฐ์‚ฐ์„ ์ •์˜

- Jacobson: Use Case๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ถ„์„ (์‚ฌ์šฉ์ž, ์™ธ๋ถ€ ์‹œ์Šคํ…œ, ๋‹ค๋ฅธ ์š”์†Œ๋“ค์ด ์‹œ์Šคํ…œ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ธฐ์ˆ )

- Wirfs-Brock: ๋ถ„์„๊ณผ ์„ค๊ณ„ ๊ฐ„ ๊ตฌ๋ถ„์ด ์—†์œผ๋ฉฐ, ๊ณ ๊ฐ ๋ช…์„ธ์„œ๋ฅผ ํ‰๊ฐ€ํ•˜์—ฌ ์„ค๊ณ„ ์ž‘์—…๊นŒ์ง€ ์—ฐ์†์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

- Rumbaugh : ๊ฐ€์žฅ ์ผ๋ฐ˜์ , ๋ถ„์„ ํ™œ๋™์„ ๊ฐ์ฒด ๋ชจ๋ธ/๋™์  ๋ชจ๋ธ/๊ธฐ๋Šฅ ๋ชจ๋ธ๋กœ ๋‚˜๋ˆ„์–ด ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

 

12. ์‘์ง‘๋„ Cohesion

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

- ๋†’์€ ์‘์ง‘๋„๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“ˆ์ผ์ˆ˜๋ก ๋‹จ์ผํ•œ ๋ชฉ์ ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋…๋ฆฝ์ ์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๋‹ค.

- ๋ฐ˜๋ฉด, ๋‚ฎ์€ ์‘์ง‘๋„๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“ˆ์€ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ํ˜ผํ•ฉ๋˜์–ด ์žˆ์–ด ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๊ณ , ์ˆ˜์ • ์‹œ ๋‹ค๋ฅธ ๊ธฐ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค.

- (๋‚ฎ์Œ, ๋‚˜์จ) ์šฐ์—ฐ์  → ๋…ผ๋ฆฌ์  → ์‹œ๊ฐ„์  → ์ ˆ์ฐจ์  → ํ†ต์‹ ์  → ์ˆœ์ฐจ์  → ๊ธฐ๋Šฅ์  (๋†’์Œ, ์ข‹์Œ)

 

โœ” Coupling: ๊ฒฐํ•ฉ๋„

- ๋ชจ๋“ˆ ๊ฐ„์˜ ์ƒํ˜ธ ์˜์กด์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ฒ™๋„

- ์ฆ‰, ํ•œ ๋ชจ๋“ˆ์ด ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์–ผ๋งˆ๋‚˜ ์˜ํ–ฅ์„ ๋ฐ›๋Š”์ง€๋ฅผ ์ธก์ •ํ•˜๋Š” ๊ฐœ๋…

- (๋‚ฎ์Œ, ์ข‹์Œ) ์ž๋ฃŒ  ์Šคํƒฌํ”„  ์ œ์–ด  ์™ธ๋ถ€  ๊ณต์œ   ๋‚ด์šฉ (๋†’์Œ, ๋‚˜์จ)

 

17. GoF ๋””์ž์ธ ํŒจํ„ด ๋ถ„๋ฅ˜

๋ถ„๋ฅ˜ ํŒจํ„ด ์˜ˆ์‹œ
์ƒ์„ฑ(Creational) Factory Method, Abstract Factory, Builder, Prototype, Singleton
๊ตฌ์กฐ(Structural) Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
ํ–‰๋™(Behavioral) Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor

 

18. ์ˆœ์ฐจ ์ฝ”๋“œ (Sequential Code)

- ์ฝ”๋“œ ์„ค๊ณ„์—์„œ ์ผ์ •ํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ผ๋ จ๋ฒˆํ˜ธ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ถ€์—ฌํ•˜๋Š” ๋ฐฉ์‹

- ๋ณดํ†ต 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ 2, 3, 4, ... ์™€ ๊ฐ™์ด ์ผ์ •ํ•œ ์ฆ๊ฐ€ ๊ทœ์น™์„ ๊ฐ€์ง

- ๋‹จ์ˆœํ•œ ์‹๋ณ„ ๋ฐ ์ •๋ ฌ์ด ์šฉ์ดํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ์‰ฝ๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

20. ํŒŒ์ดํ”„-ํ•„ํ„ฐ ์•„ํ‚คํ…์ฒ˜

- ๋ฐ์ดํ„ฐ๋ฅผ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•„ํ„ฐ๋“ค๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํŒŒ์ดํ”„๋กœ ๊ตฌ์„ฑ๋œ ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด์ด๋‹ค.

- ๊ฐ ํ•„ํ„ฐ๋Š” ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„๋กœ ๋™์ž‘ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ€๊ณตํ•œ ํ›„ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์Œ ํ•„ํ„ฐ๋กœ ์ „๋‹ฌํ•œ๋‹ค.

   - ํ•„ํ„ฐ ๊ฐ„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ์‹œ ๋ฒ„ํผ๋ง๊ณผ ํ”„๋กœ์„ธ์Šค ๊ฐ„ ํ†ต์‹ ์œผ๋กœ ์ธํ•ด ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

- ์ฃผ๋กœ ๋ฐ์ดํ„ฐ ๋ณ€ํ™˜, ์ŠคํŠธ๋ฆฌ๋ฐ ํ”„๋กœ์„ธ์‹ฑ, ์ปดํŒŒ์ผ๋Ÿฌ ์„ค๊ณ„ ๋“ฑ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.

- ๋ฐ์ดํ„ฐ๋Š” ํ•œ ๋ฐ˜ํ–ฅ(๋‹จ๋ฐฉํ–ฅ)์œผ๋กœ๋งŒ ํ๋ฅธ๋‹ค.

- ์ฆ‰, ํ•œ ํ•„ํ„ฐ์—์„œ ๋‹ค๋ฅธ ํ•„ํ„ฐ๋กœ๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์ „๋‹ฌ๋˜๋ฉฐ, ์–‘๋ฐฉ์œผ๋กœ ํ๋ฅด์ง€ ์•Š๋Š”๋‹ค.

 

22. ์†Œํ”„ํŠธ์›จ์–ด ํ’ˆ์งˆ ์ธก์ •์„ ์œ„ํ•ด ๊ฐœ๋ฐœ์ž ๊ด€์ ์—์„œ ๊ณ ๋ คํ•ด์•ผํ•  ํ•ญ๋ชฉ

- ์ •ํ™•์„ฑ

- ๋ฌด๊ฒฐ์„ฑ

- ์‚ฌ์šฉ์„ฑ

- ์‹ ๋ขฐ์„ฑ

- ์œ ์—ฐ์„ฑ

โŒ ๊ฐ„๊ฒฐ์„ฑ์€ ์•„๋‹˜

 

23. ์›Œํฌ์Šค๋ฃจ vs ์ธ์ŠคํŽ™์…˜

โœ” ์›Œํฌ์Šค๋ฃจ Walkthrough

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๋‹จ๊ณ„์—์„œ ๋ฌธ์„œ๋‚˜ ์ฝ”๋“œ๋ฅผ ๊ทธ๋ฃน์˜ ๊ตฌ์„ฑ์›๋“ค๊ณผ ํ•จ๊ป˜ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฒ€ํ† ํ•˜๋Š” ๋ฐฉ์‹

์ฃผ๋กœ ํŒ€ ๋ฉค๋ฒ„๋“ค ๊ฐ„์˜ ์˜์‚ฌ ์†Œํ†ต์„ ์ด‰์ง„ํ•˜๊ณ  ์ดํ•ด๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

- ์ฐธ์—ฌ์  ๊ฒ€ํ† , ์‹ค์‹œ๊ฐ„ ํ† ๋ก , ๊ต์œก ๋ฐ ์ดํ•ด ์ฆ์ง„

- ์‚ฌ์šฉ์‚ฌ๋ก€๋ฅผ ํ™•์žฅํ•˜์—ฌ ๋ช…์„ธํ•˜๊ฑฐ๋‚˜ ์„ค๊ณ„ ๋‹ค์ด์–ด๊ทธ๋žจ, ์›์‹œ ์ฝ”๋“œ, ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋“ฑ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋˜๋Š” ๋ฐ˜๋ณต, ์‹ค์‹œ๊ฐ„ ๋™์ž‘, ๋ณ‘ํ–‰ ์ฒ˜๋ฆฌ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด๋‚˜ ๋™์ž‘์„ ์ดํ•ดํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์œ ์šฉํ•˜๋‹ค.

- ๋‹จ์ˆœํ•œ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ์ด์šฉํ•˜์—ฌ ํ”„๋กœ๋•ํŠธ๋ฅผ ์ˆ˜์ž‘์—…์œผ๋กœ ์ˆ˜ํ–‰ํ•ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค.

 

โœ” ์ธ์ŠคํŽ™์…˜ Inspection

์ •ํ˜•์ ์ด๊ณ  ์ฒด๊ณ„์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ฝ”๋“œ๋‚˜ ๋ฌธ์„œ๋ฅผ ๊ฒ€ํ† ํ•˜๋Š” ์ ˆ์ฐจ

์ฃผ๋กœ ์˜ค๋ฅ˜ ๋ฐ ๊ฒฐํ•จ์„ ์ฐพ์•„๋‚ด๊ธฐ ์œ„ํ•ด ์—„๊ฒฉํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ˆ˜ํ–‰๋œ๋‹ค.

- ์ •ํ˜•์  ์ ˆ์ฐจ, ๊ฒ€ํ† ์ž์™€ ์ž‘์„ฑ์ž ๋ถ„๋ฆฌ, ๊ธฐ๋ก ์œ ์ง€

 

25. ํŠธ๋ฆฌ Tree

 

- ํŠธ๋ฆฌ์˜ ์ฐจ์ˆ˜ Degree of tree = ํŠธ๋ฆฌ์˜ ์ตœ๋Œ€ ์ฐจ์ˆ˜ → E๋ž‘ C๊ฐ€ ์ตœ๋Œ€ ์ฐจ์ˆ˜ 2๋ฅผ ๊ฐ€์ง

- ๋‹จ๋ง ๋…ธ๋“œ Leaf node = ์ž์‹์ด ์—†๋Š” ๋…ธ๋“œ → 4

 

29. ์†Œํ”„ํŠธ์›จ์–ด ํ˜•์ƒ ๊ด€๋ฆฌ (Software Configuration Management)

์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ฒด๊ณ„์ ์œผ๋กœ ์ถ”์ ํ•˜๊ณ  ํ†ต์ œํ•˜๋Š” ๊ฒƒ

 

30. ์ด์ง„ ๊ฒ€์ƒ‰ Binary Search

์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ๋ฐ˜์”ฉ ๋‚˜๋ˆ„๋ฉด์„œ ํƒ์ƒ‰ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค.

ํƒ์ƒ‰ ๋Œ€์ƒ์ด ์ค‘์•™ ๊ฐ’๊ณผ ๋น„๊ต๋˜๋ฉฐ, ํƒ์ƒ‰ ๋ฒ”์œ„๊ฐ€ ์ ˆ๋ฐ˜์œผ๋กœ ์ค„์–ด๋“ ๋‹ค.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

 

1๏ธโƒฃ ์ค‘๊ฐ„๊ฐ’ = (1+15)/2 = 8 → 14 > 8 → ์˜ค๋ฅธ์ชฝ(9~15) ํƒ์ƒ‰

2๏ธโƒฃ ์ค‘๊ฐ„๊ฐ’ = (9+15)/2 = 12 → 14 > 12 → ์˜ค๋ฅธ์ชฝ(13~15) ํƒ์ƒ‰

3๏ธโƒฃ ์ค‘๊ฐ„๊ฐ’ = (13+15)/2 = 14 → ์ฐพ์Œ

 

31. ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ

๋นŒ๋“œ๋ž€ ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ๋“ค์„ ์ปดํŒŒ์ผํ•œ ํ›„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ชจ๋“ˆ์„ ๋ฌถ์–ด ์‹คํ–‰ ํŒŒ์ผ๋กœ ๋งŒ๋“œ๋Š” ๊ณผ์ •์ด๋ฉฐ ์ด๋Ÿฌํ•œ ๋นŒ๋“œ๋ฅผ ํฌํ•จํ•˜์—ฌ ํ…Œ์ŠคํŠธ ๋ฐ ๋ฐฐํฌ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๋„๊ตฌ๋ฅผ ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ๋ผ๊ณ  ํ•œ๋‹ค.

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

- Ant, Make, Maven, Gradle, Jenkins ๋“ฑ ...

โœ” Jenkins๋Š” JAVA ๊ธฐ๋ฐ˜ ์˜คํ”ˆ ์†Œ์Šค ํ˜•ํƒœ๋กœ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋นŒ๋“œ ์ž๋™ํ™” ๋„๊ตฌ์ด๋‹ค.

โœ” Gradle์€ Groovy๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ˜•ํƒœ์˜ ์ž๋™ํ™” ๋„๊ตฌ๋กœ, ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.

 

32. ํ™”์ดํŠธ๋ฐ•์Šค ํ…Œ์ŠคํŠธ

- ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ๋ถ„์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜์—ฌ ๋…ผ๋ฆฌ ํ๋ฆ„์„ ๊ฒ€์ฆํ•˜๋Š” ํ…Œ์ŠคํŠธ ๊ธฐ๋ฒ•

- ํ™”์ดํŠธ๋ฐ•์Šค ํ…Œ์ŠคํŠธ๋Š” ๋™์  ํ…Œ์ŠคํŠธ์˜ ํ•œ ์œ ํ˜•์ด๋‹ค. (๋™์  ํ…Œ์ŠคํŠธ์—๋Š” ํ™”์ดํŠธ๋ฐ•์Šค ํ…Œ์ŠคํŠธ, ๋ธ”๋ž™๋ฐ•์Šค ํ…Œ์ŠคํŠธ๊ฐ€ ์†ํ•ด์žˆ๋‹ค.)

 

38. ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋„๊ตฌ

- CppUnit: C++ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์šฉ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋„๊ตฌ

- JUnit: Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์šฉ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋„๊ตฌ

- HttpUnit: ์›น ๋ธŒ๋ผ์šฐ์ € ์—†์ด ์›น ์‚ฌ์ดํŠธ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์˜คํ”ˆ์†Œ์Šค ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ

 

40. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ๊ธฐ๋ฒ•

- Divide and Conquer (๋ถ„ํ•  ์ •๋ณต)

- Greedy (ํƒ์š• ์•Œ๊ณ ๋ฆฌ์ฆ˜)

- Backtracking (๋ฐฑํŠธ๋ž˜ํ‚น)

โœ” Static Block: ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…(Java์—์„œ ํด๋ž˜์Šค ๋กœ๋“œ ์‹œ ํ•œ ๋ฒˆ ์‹คํ–‰๋˜๋Š” ๋ธ”๋ก)

 

61. ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€

- ๋ฒ„์Šคํ˜•: ํ•˜๋‚˜์˜ ํ†ต์‹  ํšŒ์„ (๋ฒ„์Šค)์— ์—ฌ๋Ÿฌ ์žฅ์น˜๊ฐ€ ์—ฐ๊ฒฐ๋œ ์ƒํƒœ

- ์Šคํƒ€ํ˜•: ์ค‘์•™ ํ—ˆ๋ธŒ(์Šค์œ„์น˜)์— ๋ชจ๋“  ์žฅ์น˜๊ฐ€ ์—ฐ๊ฒฐ๋œ ์ƒํƒœ

- ๋งํ˜•: ๋…ธ๋“œ๊ฐ€ ์›ํ˜•์œผ๋กœ ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ

- ๋ฉ”์‹œํ˜•: ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ

 

64. Paging vs. Segmentation

- ๊ฐ€์ƒ๊ธฐ์–ต์žฅ์น˜์˜ ์ผ๋ฐ˜์ ์ธ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์—๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ์ผ์ •ํ•œ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„๋Š” ํŽ˜์ด์ง• ๊ธฐ๋ฒ•๊ณผ ๊ฐ€๋ณ€์ ์ธ ํฌ๊ธฐ์˜ ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์„ธ๊ทธ๋จผํ…Œ์ด์…˜ ๊ธฐ๋ฒ•์ด ์žˆ๋‹ค.

 

73. UNIX

- ์ƒ๋‹น ๋ถ€๋ถ„ C ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, ์ด์‹์„ฑ์ด ์šฐ์ˆ˜ํ•˜๋‹ค.

- ์‚ฌ์šฉ์ž๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์ž‘์—…์„ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์—…์„ ๋ณ‘ํ–‰ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๋‘ ์‚ฌ๋žŒ ์ด์ƒ์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ์ •๋ณด์™€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋“ค์„ ๊ณต์œ ํ•˜๋Š” ํŽธ๋ฆฌํ•œ ์ž‘์—… ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค.

 

โœ” ์‰˜(Shell)

- ์‚ฌ์šฉ์ž์™€ ์ปค๋„(Kernel) ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค ์—ญํ• ์„ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋ช…๋ น์–ด ํ•ด์„(๋ช…๋ น์–ด ์ธํ„ฐํ”„๋ฆฌํ„ฐ) ์‹คํ–‰์ด๋‹ค.

- ์‚ฌ์šฉ์ž์˜ ๋ช…๋ น์„ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰

- ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋ฐ ์Šคํฌ๋ฆฝํŠธ ์ฒ˜๋ฆฌ

- ํ™˜๊ฒฝ ์„ค์ • ๊ด€๋ฆฌ

- ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ์กฐ์ž‘ ๋ช…๋ น ์‹คํ–‰

- ํ”„๋กœ์„ธ์Šค ์‹คํ–‰ ๋ฐ ์ œ์–ด

- โŒ  ํ”„๋กœ์„ธ์Šค ๊ด€๋ฆฌ → ์ปค๋„์ด ๋‹ด๋‹น, ๋ฉ”๋ชจ๋ฆฌ(๊ธฐ์–ต์žฅ์น˜) ๊ด€๋ฆฌ → ์ปค๋„์ด ๋‹ด๋‹น, ์ž…์ถœ๋ ฅ ๊ด€๋ฆฌ → ์ปค๋„์ด ๋‹ด๋‹น

 

โœ” UNIX์˜ ์ฃผ์š” ๊ตฌ์„ฑ ์š”์†Œ

์ปค๋„(Kernel) ํ”„๋กœ์„ธ์Šค, ๋ฉ”๋ชจ๋ฆฌ, ํŒŒ์ผ ์‹œ์Šคํ…œ, ์ž…์ถœ๋ ฅ ๊ด€๋ฆฌ ๋“ฑ ์‹œ์Šคํ…œ์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ๋‹ด๋‹น
์‰˜(Shell) ์‚ฌ์šฉ์ž์˜ ๋ช…๋ น์„ ํ•ด์„ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค
ํŒŒ์ผ ์‹œ์Šคํ…œ(File System) ๊ณ„์ธต์  ๊ตฌ์กฐ๋กœ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ด€๋ฆฌ
์œ ํ‹ธ๋ฆฌํ‹ฐ(Utilities) ls, cp, mv, grep ๋“ฑ ๊ธฐ๋ณธ ์ œ๊ณต ๋ช…๋ น์–ด

 

85. COCOMO model

- ์กฐ์งํ˜• Organic Model: ์†Œ๊ทœ๋ชจ(5๋งŒ ๋ผ์ธ ์ดํ•˜)์˜ ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ

- ๋ฐ˜๋ถ„๋ฆฌํ˜• Semi-Detached Model: ์ค‘๊ทœ๋ชจ(5๋งŒ ~ 30๋งŒ ๋ผ์ธ)์˜ ํ”„๋กœ์ ํŠธ

- ๋‚ด์žฅํ˜• Embedded Model: ๋Œ€๊ทœ๋ชจ(30๋งŒ ๋ผ์ธ ์ด์ƒ)์˜ ํ”„๋กœ์ ํŠธ

 

98. tripwire

ํฌ๋ž˜์ปค๊ฐ€ ์นจ์ž…ํ•˜์—ฌ ๋ฐฑ๋„์–ด๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ฑฐ๋‚˜, ์„ค์ • ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ ๋ถ„์„ํ•˜๋Š” ๋„๊ตฌ

 

100. ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ HSM(Cloud-based Hardware Security Module)

- ํด๋ผ์šฐ๋“œ(๋ฐ์ดํ„ฐ์„ผํ„ฐ) ๊ธฐ๋ฐ˜ ์•”ํ˜ธํ™” ํ‚ค ์ƒ์„ฑ, ์ฒ˜๋ฆฌ, ์ €์žฅ ๋“ฑ์„ ํ•˜๋Š” ๋ณด์•ˆ ๊ธฐ๊ธฐ

- ๊ตญ๋‚ด์—์„œ๋Š” ๊ณต์ธ์ธ์ฆ์ œ์˜ ํ์ง€์™€ ์ „์ž์„œ๋ช…๋ฒ• ๊ฐœ์ •์„ ์ถ”์ง„ํ•˜๋ฉด์„œ ํด๋ผ์šฐ๋“œ HSM ์šฉ์–ด๊ฐ€ ์ž์ฃผ ๋“ฑ์žฅํ–ˆ๋‹ค.

- ํด๋ผ์šฐ๋“œ์— ์ธ์ฆ์„œ๋ฅผ ์ €์žฅํ•˜๋ฏ€๋กœ ๊ธฐ์กด HSM ๊ธฐ๊ธฐ๋‚˜ ํœด๋Œ€ํฐ์— ์ธ์ฆ์„œ๋ฅผ ์ €์žฅํ•ด ๋‹ค๋‹ ํ•„์š”๊ฐ€ ์—†๋‹ค.