Skip to content

๐Ÿ—บ๏ธ ๊ฐœ๋ฐœ ์ง€์‹ ์Šต๋“ํ•˜๊ธฐ

Notifications You must be signed in to change notification settings

shacomiro/tech-bible

Repository files navigation

tech-bible-banner

์†Œ๊ฐœ

๊ฐœ๋ฐœ/๊ธฐ์ˆ  ์ง€์‹์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ์ •๋ฆฌํ•˜๋Š” ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค.

๋‚ด์šฉ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ถ”๊ฐ€ํ•  ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด Issue ๋˜๋Š” Pull Request๋ฅผ ํ†ตํ•ด ์•Œ๋ ค์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜์˜ ๋ชฉ์ฐจ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ๋กœ๋“œ๋งต(by roadmap.sh)๊ณผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ ๋ฆฌ์ŠคํŠธ ๋ฐ ์ˆœ์„œ (Algorithm Problem Solving Roadmap)๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ชฉ์ฐจ

  1. ์ž๋ฃŒ๊ตฌ์กฐ(Data Structure)

    [์—ด๊ธฐ/์ ‘๊ธฐ]
  2. ์•Œ๊ณ ๋ฆฌ์ฆ˜(Algorithms)

    [์—ด๊ธฐ/์ ‘๊ธฐ]
    • ์ˆ˜ํ•™(Mathmetics) #1
    • ์™„์ „ ํƒ์ƒ‰(Exhaustive Search)
      • ๋ธŒ๋ฃจํŠธ-ํฌ์Šค(Brute-Force)
      • ๋ฐฑํŠธ๋ž˜ํ‚น(Backtracking)
        • N๊ฐœ์˜ ํ€ธ(N Queens) ๋ฌธ์ œ
      • ์ตœ์ ํ™” ๋ฌธ์ œ(Optimization Problem)
        • ์™ธํŒ์› ์ˆœํšŒ(TSP) ๋ฌธ์ œ
      • ๋ถ„ํ•  ์ •๋ณต(Divide & Conquer)
        • ์ด๋ถ„ ๊ฒ€์ƒ‰(Binary Search)
    • ํƒ์š•๋ฒ•(Greedy Algorithm)
    • ๋น„ํŠธ๋งˆ์Šคํฌ(Bitmask)
    • ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP, Dynamic Programming) #1
      • 0-1 ๋ฐฐ๋‚ญ ๋ฌธ์ œ(0-1 Knapsack Problem)
      • ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด(LCS), ์ตœ์žฅ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด(LIS), ...
        • ์‹œ๊ฐ„๋ณต์žก๋„ O(N^2)์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•
        • ์‹œ๊ฐ„๋ณต์žก๋„ O(NlogN)์œผ๋กœ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•
      • ๋ถ€๋ถ„์ง‘ํ•ฉ(Subset)
    • ๋ฌธ์ž์—ด(String)
      • ํšŒ๋ฌธ(Palindrome)
        • Manacher's Algorithm
      • ํ—ˆํ”„๋งŒ ์ฝ”๋”ฉ(Huffman coding)
      • ํŠธ๋ผ์ด(Trie)
      • ์ ‘๋ฏธ์‚ฌ ํŠธ๋ฆฌ(Suffix Tree)
      • ๋งค์นญ ๋ฌธ์ œ(Matching Problems)
        • KMP ์•Œ๊ณ ๋ฆฌ์ฆ˜(KMP Algorithm)
        • ๋ผ๋นˆ-์นดํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Krap-Rabin Algorithm)
        • ๋ณด์ด์–ด-๋ฌด์–ด ์•Œ๊ณ ๋ฆฌ์ฆ˜(Boyer-Moore Algorithm)
        • ์•„ํ˜ธ-์ฝ”๋ผ์‹ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Aho-corasick)
        • Z ์•Œ๊ณ ๋ฆฌ์ฆ˜(Z Algorithm)
        • ์ ‘๋ฏธ์‚ฌ ๋ฐฐ์—ด(Suffix Array)
    • ์ตœ์†Œ ์‹ ์žฅ ํŠธ๋ฆฌ(MST, Minimun Spanning Tree)
      • ํฌ๋ฃจ์Šค์นผ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Kruskal's Algorithm)
      • ํ”„๋ฆผ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Prim's Algorithm)
    • ๊ทธ๋ž˜ํ”„(Graph) #1
      • ํƒ์ƒ‰(Searching)
        • ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(DFS)
        • ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(BFS)
      • ์ตœ๋‹จ ๊ฑฐ๋ฆฌ(Shortest Path)
        • ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Dijkstra's Algorithm)
        • ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Bellman-Ford Algorithm)
        • ํ”Œ๋กœ์ด๋“œ-์™€์ƒฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Floyd-Warshall Algorithm)
        • SPFA(Shortest Path Faster Algorithm)
      • ์ •๋ ฌ(Sorting)
    • ์ •๋ ฌ(Sorting)
      • ๋ฒ„๋ธ” ์ •๋ ฌ(Bubble Sort)
      • ์‚ฝ์ž… ์ •๋ ฌ(Insert Sort)
      • ์„ ํƒ ์ •๋ ฌ(Selection Sort)
      • ํ€ต ์ •๋ ฌ(Quick Sort)
      • ๋ณ‘ํ•ฉ ์ •๋ ฌ(Merge Sort)
      • ํž™ ์ •๋ ฌ(Heap Sort)
      • ๊ธฐ์ˆ˜ ์ •๋ ฌ(Radix Sort)
      • ๊ณ„์ˆ˜ ์ •๋ ฌ(Couting Sort)
      • ์…ธ ์ •๋ ฌ(Shell Sort)
    • ์ˆ˜ํ•™(Mathmetics) #2
      • ์ดํ•ญ ๊ณ„์ˆ˜(binomial coefficient)
        • ํŒŒ์Šค์นผ์˜ ์‚ผ๊ฐํ˜•(Pascal's triangle)
      • ์นดํƒˆ๋ž‘ ์ˆ˜(Catalan Number)
      • ์˜ค์ผ๋Ÿฌ ํ”ผ ํ•จ์ˆ˜(Euler's phi function)
      • ํŽ˜๋ฅด๋งˆ์˜ ์†Œ์ •๋ฆฌ(Fermat's little theorem)
      • ๊ฐ€์šฐ์Šค ์†Œ๊ฑฐ๋ฒ•(Gaussian elimination)
      • ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ(Modular Arithmetic)
      • ์ด์‚ฐ ์ˆ˜ํ•™(Discrete Mathematics)
        • ๋น„๋‘˜๊ธฐ ์ง‘์˜ ์›๋ฆฌ(The Pigeonhole Principle)
          ๋””๋ฆฌํด๋ ˆ ์„œ๋ž ์›๋ฆฌ(Dirichlet drawer principle)๋ผ๊ณ  ์•Œ๋ ค์ง
      • ์ œ2์ข… ์Šคํ„ธ๋ง ์ˆ˜(Stirling numbers of the second kind)
    • ๊ธฐํ•˜ํ•™(Geometry)
      • ๋‚ด์ ๊ณผ ์™ธ์ (Cross/Dot Product)
      • ์ปจ๋ฒก์Šค ํ—(Convex Hull)
      • ๊ทธ๋ ˆ์ด์—„ ์Šค์บ”(Graham Scan)
      • ๊ฐ๋„ ์ •๋ ฌ(Angle Sort)
      • ์„ ๋ถ„ ๊ต์ฐจ ํŒ๋ณ„(Line Intersection)
      • ๋ฐ˜์‹œ๊ณ„(CCW, Counter Colck Wise)
      • ํ‰๋ฉด/์„ ๋ถ„ ์Šค์œ„ํ•‘(Plane/Line Sweeping)
      • ํšŒ์ „ํ•˜๋Š” ์บ˜๋ฆฌํผ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜(Rotating Calipers)
    • ํŠธ๋ฆฌ(Tree) #2
      • ์ตœ์†Œ ๊ณตํ†ต ์กฐ์ƒ(LCA, Lowest Common Ancestor)
        • ์ „์œ„์ˆœํšŒ DFS & ์„ธ๊ทธ๋จผํŠธ ํŠธ๋ฆฌ(Segment Tree)๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
        • ํฌ์†Œ ํ…Œ์ด๋ธ”(Sparse Table)์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• (๊ถŒ์žฅ)
    • ๋ฒ”์œ„ ์ฟผ๋ฆฌ(Range Query)
    • ๊ทธ๋ž˜ํ”„(Graph) #2
      • ๋„คํŠธ์›Œํฌ ํ๋ฆ„(Network Flow)
        • ์ตœ๋Œ€ ํ๋ฆ„(Maximum Flow)
        • ํฌ๋“œ-ํด์ปค์Šจ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Ford-Fulkerson)
          • ์—๋“œ๋ชฌ๋“œ-์นดํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Edmond-Karp)
            (ํฌ๋“œ-ํด์ปค์Šจ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ตฌํ˜„ ํ˜•ํƒœ)
        • ๋‹ค๋‹‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Dinic's Algorithm)
        • ์‹ฌํ™”
          • ์ตœ์†Œ ์ ˆ๋‹จ ์ตœ๋Œ€ ํ๋ฆ„(MCMF, Minumun Cut Maximum Flow)
          • ์ตœ์†Œ ๋น„์šฉ ์ตœ๋Œ€ ํ๋ฆ„(MCMF, Minumun Cost Maximum Flow)
            • SPFA์˜ ๋ฒจ๋งŒ-ํฌ๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Bellman-Ford Algorithm)์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
            • ํ—๊ฐ€๋ฆฌ์•ˆ ๋ฉ”์†Œ๋“œ(Hungarian Method)๋ฅผ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
          • ์ด๋ถ„ ๋งค์นญ
            • ํ˜ธํ”„ํฌ๋กœํ”„ํŠธ-์นดํ”„ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Hopgroft-Karp Algorithm)
    • ๊ทธ๋ž˜ํ”„(Graph) #3
      • ์˜ค์ผ๋Ÿฌ ๊ฒฝ๋กœ(Eulerian Path)
        • Hierholzer's Algorithm
      • SCC(Strongly Connected Component)
        • ํƒ€์ž” ์•Œ๊ณ ๋ฆฌ์ฆ˜(Tarjan's Algorithm)
        • ์ฝ”์‚ฌ๋ผ์ฃผ ์•Œ๊ณ ๋ฆฌ์ฆ˜(Kosaraju's Algorithm)
    • ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP, Dynamic Programming) #2
      • DP ์ตœ์ ํ™”(DP Optimization)
      • ํฌ๋ˆ„์Šค ์ตœ์ ํ™”(Knuth Optimization)
      • ๋ถ„ํ•  ์ •๋ณต ์ตœ์ ํ™”(Dvide & Conquer Optimization)
      • ์ปจ๋ฒก์Šค ํ— ์ตœ์ ํ™”(Convex Hull Optimization)
  3. ์–ธ์–ด(Language)

    [์—ด๊ธฐ/์ ‘๊ธฐ]
  4. ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™

    [์—ด๊ธฐ/์ ‘๊ธฐ]
    • ๊ฐœ๋ฐœยท์„ค๊ณ„ ์›์น™
      • GOF ๋””์ž์ธ ํŒจํ„ด
      • ๋„๋ฉ”์ธ ์ฃผ๋„ ์„ค๊ณ„(DDD)
      • ํ…Œ์ŠคํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ(TDD)
      • SOLID
      • ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ 3๋Œ€ ์›์น™
      • ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด
        • ๋ชจ๋†€๋ฆฌ์‹ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
        • ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค
        • SOA
        • CQRS์™€ ์ด๋ฒคํŠธ ์†Œ์‹ฑ
        • ์„œ๋ฒ„๋ฆฌ์Šค
    • ํ…Œ์ŠคํŠธ
      • ํ†ตํ•ฉ(Intergration) ํ…Œ์ŠคํŠธ
      • ๋‹จ์œ„(Unit) ํ…Œ์ŠคํŠธ
      • ๊ธฐ๋Šฅ(Function) ํ…Œ์ŠคํŠธ
    • CI/CD
    • ๋นŒ๋“œ
      • Maven
      • Gradle
    • ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ
      • Git ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•
      • ์ €์žฅ์†Œ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค
        • GitHub
    • ํ™•์žฅ์„ฑ ์žˆ๋Š” ๊ตฌ์ถ•
      • ์ฐจ์ด ์ดํ•ดํ•˜๊ธฐ
        • Intrumentation
        • Monitoring
        • Telemetry
      • ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ „๋žต
        • ๋‹จ๊ณ„์  ๊ธฐ๋Šฅ ์ถ•์†Œ(Graceful Degradation)
        • ์Šค๋กœํ‹€๋ง(Throttling)
        • Backpressure
        • ์„œํ‚ท ๋ธŒ๋ ˆ์ด์ปค(Circuit Breaker)
      • ์ˆ˜ํ‰์  ํ™•์žฅ vs ์ˆ˜์ง์  ํ™•์žฅ
      • ๊ด€์ฐฐ ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•œ ํ™•์žฅ
  5. ๋„คํŠธ์›Œํฌ(Network)

    [์—ด๊ธฐ/์ ‘๊ธฐ]
  6. ์šด์˜์ฒด์ œ(OS)

    [์—ด๊ธฐ/์ ‘๊ธฐ]
  7. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Database)

    [์—ด๊ธฐ/์ ‘๊ธฐ]
  8. ๋ฉ”์‹œ์ง€ ๋ธŒ๋กœ์ปค

    [์—ด๊ธฐ/์ ‘๊ธฐ]
    • RabbitMQ
    • Kafka
  9. ์ปจํ…Œ์ด๋„ˆํ™” vs ๊ฐ€์ƒํ™”

    [์—ด๊ธฐ/์ ‘๊ธฐ]
    • Docker

About

๐Ÿ—บ๏ธ ๊ฐœ๋ฐœ ์ง€์‹ ์Šต๋“ํ•˜๊ธฐ

Topics

Resources

Stars

Watchers

Forks