Programming

Programming

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

ํ•™์Šต ๋‚ด์šฉ

์ด ํ† ํ”ฝ์€ ์–ธ์–ด ๋…๋ฆฝ์ ์ธ ๋‹ค์Œ ๋‚ด์šฉ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค: - ํ•ต์‹ฌ ๊ฐœ๋…: ๊ณ„์‚ฐ์  ์‚ฌ๊ณ (Computational thinking), ์ถ”์ƒํ™”(Abstraction), ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ž๋ฃŒ๊ตฌ์กฐ - ํŒจ๋Ÿฌ๋‹ค์ž„: ๋ช…๋ นํ˜•(Imperative), ๊ฐ์ฒด์ง€ํ–ฅ(Object-oriented), ํ•จ์ˆ˜ํ˜•(Functional), ์„ ์–ธํ˜•(Declarative) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ ‘๊ทผ๋ฒ• - ์ฝ”๋“œ ํ’ˆ์งˆ: ํด๋ฆฐ ์ฝ”๋“œ ์›์น™, ๋””์ž์ธ ํŒจํ„ด, SOLID ์›์น™, ๋ฆฌํŒฉํ† ๋ง - ์ „๋ฌธ์  ์‹ค์ฒœ๋ฒ•: ํ…Œ์ŠคํŒ…, ๋””๋ฒ„๊น…, ์„ฑ๋Šฅ ์ตœ์ ํ™”, API ์„ค๊ณ„, ๋ฒ„์ „ ๊ด€๋ฆฌ ์›Œํฌํ”Œ๋กœ์šฐ - ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜: ๋ชจ๋†€๋ฆฌ์Šค, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ๊ณ„์ธตํ˜• ์•„ํ‚คํ…์ฒ˜, ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด - ์œค๋ฆฌ์™€ ์ปค๋ฆฌ์–ด: ๊ฐœ๋ฐœ์ž ์‹ค์ฒœ๋ฒ•, ์˜คํ”ˆ ์†Œ์Šค, ์†Œํ”„ํŠธ์›จ์–ด ์œค๋ฆฌ, ์ง€์†์  ํ•™์Šต

๋ ˆ์Šจ ๋ชฉ๋ก

# ์ œ๋ชฉ ์„ค๋ช…
01 What Is Programming ๊ณ„์‚ฐ์  ์‚ฌ๊ณ , ์ถ”์ƒํ™”, ๋ฌธ์ œ ํ•ด๊ฒฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜
02 Programming Paradigms ๋ช…๋ นํ˜•, OOP, ํ•จ์ˆ˜ํ˜•, ์„ ์–ธํ˜• ์ ‘๊ทผ๋ฒ•
03 Data Structures Fundamentals ๋ฐฐ์—ด, ๋ฆฌ์ŠคํŠธ, ์Šคํƒ, ํ, ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„, ํ•ด์‹œ ํ…Œ์ด๋ธ”
04 Algorithms Fundamentals ๋ณต์žก๋„ ๋ถ„์„, ๊ฒ€์ƒ‰, ์ •๋ ฌ, ์žฌ๊ท€
05 Clean Code Principles ๋„ค์ด๋ฐ, ํ•จ์ˆ˜, ์ฃผ์„, ํฌ๋งทํŒ…, ์—๋Ÿฌ ์ฒ˜๋ฆฌ
06 Design Patterns ์ƒ์„ฑ, ๊ตฌ์กฐ, ํ–‰์œ„ ํŒจํ„ด; Gang of Four
07 SOLID Principles ๋‹จ์ผ ์ฑ…์ž„, ๊ฐœ๋ฐฉ-ํ์‡„, ๋ฆฌ์Šค์ฝ”ํ”„ ์น˜ํ™˜, ์ธํ„ฐํŽ˜์ด์Šค ๋ถ„๋ฆฌ, ์˜์กด์„ฑ ์—ญ์ „
08 Testing Fundamentals ๋‹จ์œ„, ํ†ตํ•ฉ, E2E ํ…Œ์ŠคํŒ…; TDD, BDD; ํ…Œ์ŠคํŠธ ๋”๋ธ”
09 Debugging Techniques ๋””๋ฒ„๊น… ์ „๋žต, ๋„๊ตฌ, ๋กœ๊น…, ํ”„๋กœํŒŒ์ผ๋ง
10 Refactoring ์ฝ”๋“œ ์Šค๋ฉœ, ๋ฆฌํŒฉํ† ๋ง ๊ธฐ๋ฒ•, ์–ธ์ œ ์–ด๋–ป๊ฒŒ ๋ฆฌํŒฉํ† ๋งํ• ์ง€
11 Concurrency and Parallelism ์Šค๋ ˆ๋“œ, ํ”„๋กœ์„ธ์Šค, ๋น„๋™๊ธฐ, ๊ฒฝ์Ÿ ์กฐ๊ฑด, ๋™๊ธฐํ™”
12 Performance Optimization ํ”„๋กœํŒŒ์ผ๋ง, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ตœ์ ํ™”, ์บ์‹ฑ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
13 API Design REST, RPC, GraphQL; ๋ฒ„์ „ ๊ด€๋ฆฌ, ๋ฌธ์„œํ™”, ๋ชจ๋ฒ” ์‚ฌ๋ก€
14 Version Control Workflows Git ์›Œํฌํ”Œ๋กœ์šฐ, ๋ธŒ๋žœ์นญ ์ „๋žต, ์ฝ”๋“œ ๋ฆฌ๋ทฐ, CI/CD
15 Software Architecture ๋ชจ๋†€๋ฆฌ์Šค, ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ๊ณ„์ธตํ˜•/์œก๊ฐํ˜•/ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜
16 Developer Practices ๊ธฐ์ˆ  ๋ถ€์ฑ„, ๋ฌธ์„œํ™”, ์˜คํ”ˆ ์†Œ์Šค, ์œค๋ฆฌ, ์ปค๋ฆฌ์–ด ์„ฑ์žฅ

์„ ์ˆ˜ ์ง€์‹

  • ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ง€์‹: ์ตœ์†Œ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ์ˆ™๋ จ๋„ (Python, JavaScript, Java, C++ ๋˜๋Š” ์œ ์‚ฌ ์–ธ์–ด)
  • ๊ธฐ๋ณธ ๋ฌธ๋ฒ• ์ดํ•ด: ๋ณ€์ˆ˜, ์ œ์–ด ํ๋ฆ„, ํ•จ์ˆ˜, ๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ
  • ๋ฌธ์ œ ํ•ด๊ฒฐ ์‚ฌ๊ณ ๋ฐฉ์‹: ์ฝ”๋“œ์™€ ์„ค๊ณ„์— ๋Œ€ํ•ด ๋น„ํŒ์ ์œผ๋กœ ์ƒ๊ฐํ•˜๋ ค๋Š” ์˜์ง€

ํŠน์ • ์–ธ์–ด ์ „๋ฌธ์„ฑ์€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ์ œ๋Š” ์–ธ์–ด ๋…๋ฆฝ์ ์ธ ๊ฐœ๋…์„ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์ œ ์ฝ”๋“œ

์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๊ฑธ์นœ ๊ฐœ๋…์„ ๋ณด์—ฌ์ฃผ๋Š” ์‹ค์šฉ์ ์ธ ์˜ˆ์ œ๋Š” examples/Programming/์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ๋“ค์€ ๊ธฐ๋ณธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์›์น™์ด ํŠน์ • ์–ธ์–ด๋ฅผ ์ดˆ์›”ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํ•™์Šต ๊ฒฝ๋กœ

์ด ํ† ํ”ฝ์€ ์ ์ง„์ ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค:

  1. ๊ธฐ์ดˆ (๋ ˆ์Šจ 1-4): ํ•ต์‹ฌ ๊ฐœ๋…, ํŒจ๋Ÿฌ๋‹ค์ž„, ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜
  2. ์ฝ”๋“œ ํ’ˆ์งˆ (๋ ˆ์Šจ 5-7): ํด๋ฆฐ ์ฝ”๋“œ, ๋””์ž์ธ ํŒจํ„ด, SOLID ์›์น™
  3. ๊ฐœ๋ฐœ ์‹ค์ฒœ๋ฒ• (๋ ˆ์Šจ 8-10): ํ…Œ์ŠคํŒ…, ๋””๋ฒ„๊น…, ๋ฆฌํŒฉํ† ๋ง
  4. ๊ณ ๊ธ‰ ์ฃผ์ œ (๋ ˆ์Šจ 11-12): ๋™์‹œ์„ฑ๊ณผ ์„ฑ๋Šฅ ์ตœ์ ํ™”
  5. ์ „๋ฌธ๊ฐ€ ๊ธฐ์ˆ  (๋ ˆ์Šจ 13-16): API ์„ค๊ณ„, ๋ฒ„์ „ ๊ด€๋ฆฌ, ์•„ํ‚คํ…์ฒ˜, ์œค๋ฆฌ

๋ ˆ์Šจ์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋”ฐ๋ผ๊ฐ€๊ฑฐ๋‚˜ ํ•„์š”์— ๋”ฐ๋ผ ํŠน์ • ์ฃผ์ œ๋กœ ๋ฐ”๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถ”์ฒœ ์ž๋ฃŒ

  • ๋„์„œ: "Clean Code" (Martin), "Design Patterns" (Gang of Four), "The Pragmatic Programmer" (Hunt & Thomas)
  • ์‹ค์Šต: LeetCode, HackerRank, Project Euler์—์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹ค์Šต
  • ์ปค๋ฎค๋‹ˆํ‹ฐ: Stack Overflow, Reddit r/programming, GitHub discussions

๊ด€๋ จ ํ† ํ”ฝ

  • ์–ธ์–ด๋ณ„ ํ† ํ”ฝ: Python, C_Programming, CPP (C++)
  • ๊ณ ๊ธ‰ ํ† ํ”ฝ: Algorithm, Machine_Learning, System_Design
  • ๋„๊ตฌ: Git, Docker, Linux

๋ผ์ด์„ ์Šค: ์ฝ˜ํ…์ธ ๋Š” CC BY-NC 4.0 ๋ผ์ด์„ ์Šค๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค

to navigate between lessons