MINIWIKI
CareerSideProjectBook&Study
  • โšกREADME
  • ๐Ÿ˜ƒME
    • Review
      • 2025 OKR & ํšŒ๊ณ  - ํšŒ์‚ฌ ์—†์ด๋„ ๋จน๊ณ ์‚ด ์ˆ˜ ์žˆ๋Š” ์ƒํƒœ๊ฐ€ ๋œ๋‹ค
        • 2025๋…„ 19์ฃผ์ฐจ
        • 2025๋…„ 18์ฃผ์ฐจ
        • 2025๋…„ 17์ฃผ์ฐจ
        • ์†Œ์„ค์“ฐ๊ธฐ์˜ ์“ธ๋ชจ
        • 2025๋…„ 15์ฃผ์ฐจ
        • 2025๋…„ 14์ฃผ์ฐจ
        • ์š”์ฆ˜ ํšŒ์‚ฌ์ƒํ™œ
        • ์ฒซ ํŽ˜์ด์ง€ ์ž‘์„ฑ!
        • ํฐ ์ฝ” ๋‹ค์ณค๋‹ค
        • ์˜ค๋žœ๋งŒ์— ์ข‹์•˜๋˜ ํ•˜๋ฃจ
        • ์•…์ˆœํ™˜๊ณผ ๋ฐ˜๋ณต์‹คํŒจ
        • 2025๋…„ 12์ฃผ์ฐจ
        • 2025๋…„ 11์ฃผ์ฐจ
        • 2025๋…„ 3์›” 6์ผ
        • 2025๋…„ 3์›” 4์ผ
        • 2025๋…„ 3์›” 1์ผ
        • 2025๋…„ 2์›” ํšŒ๊ณ 
        • 2025๋…„ 1-2์›” ์ฑ…, ์˜ํ™”, ์Œ์•…
        • 2025๋…„ 1-2์›” ํšŒ๊ณ  (PM)
        • 2025๋…„ 1-2์›” ํšŒ๊ณ  (์ฝ˜์ œํ’ˆ)
          • (Merged) 2025 ๋น„์ฆˆ๋‹ˆ์Šค
        • 2025๋…„ 1-2์›” ํšŒ๊ณ  (์‚ถ/์‚ฌ๋žŒ)
        • 2025๋…„ 1-2์›” ํšŒ๊ณ  (๊ธฐ๋ณธ)
        • (25.02) ๊ณ ๊ฐ ํ”ผ๋“œ๋ฐฑ ๋ฐ›๊ธฐ
        • ๋‹ค์‹œ ์ „๋žต ์ˆ˜์ •
        • ๋จธ๋ฆฌ ์† ๋ณต์žกํ•œ ๊ฒƒ๋“ค ๋„์ ๋„์ 
        • ๋ณ€ํ•˜์ง€ ์•Š๋Š” ํ•ต์‹ฌ ์ฒ ํ•™
        • ๊ฐœ๋ณ„ํ™” ๋Šฅ๋ ฅ์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
        • ํŒŒ๊ณ ๋“ค๊ธฐ
        • ์˜ˆ์ˆ ๊ฐ€์™€ ์‚ฌ์—…๊ฐ€
        • ๊ฐ•์ 
        • PM์œผ๋กœ์„œ์˜ ์ „๋ฌธ์„ฑ
        • ๋ถ€๋™์‹œ
        • ์ด๊ฒŒ ๋‹ค ๋ฌด์Šจ ์†Œ์šฉ์ธ๊ฐ€
        • ๋‚ด๊ฐ€ ๊ฐ€์žฅ ์ž˜ ์ „ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์‹œ์ง€
        • ์—ฐ๋ง์ธ์‚ฌ ํƒ€์ด๋ฐ
        • Attitude๋Š” ์˜ท๋ถ€ํ„ฐ
        • ๋‹ค์‹œ ์‹œ์ž‘
      • 2024 ํšŒ๊ณ 
        • 2024๋…„ 12์›” 4์ฃผ์ฐจ (52/52)
        • ์›ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ๋“ค
        • 2024๋…„ 12์›” 3์ฃผ์ฐจ (51/52)
        • ํšŒ์‚ฌ vs. ํ‡ด์‚ฌ
        • 2024๋…„ 12์›” 2์ฃผ์ฐจ (50/52)
        • 2024๋…„ 11์›” 4์ฃผ์ฐจ (47/52)
        • 2024๋…„ 11์›” 3์ฃผ์ฐจ (46/52)
        • 2024๋…„ 11์›” 1์ฃผ์ฐจ (44/52)
        • ํ˜“๋ฐ”๋Š˜
        • 2024๋…„ 10์›” 3์ฃผ์ฐจ (42/52)
        • ๊ทธ๋ƒฅ, ์š”์ฆ˜ํ•˜๊ณ  ์žˆ๋Š” ์ƒ๊ฐ๋“ค
        • 2024๋…„ 10์›” 1์ฃผ์ฐจ (40/52)
        • 2024๋…„ 9์›” 4์ฃผ์ฐจ (39/52)
        • 2024๋…„ 9์›” 3์ฃผ์ฐจ (38/52)
        • 2024๋…„ 9์›” 2์ฃผ์ฐจ (37/52)
        • 2024๋…„ 9์›” 1์ฃผ์ฐจ (36/52)
        • 2024๋…„ 8์›” 4์ฃผ์ฐจ (35/52)
        • ์žƒ์–ด๋ฒ„๋ฆฐ ๋ณด๋ฌผ์ฐฝ๊ณ 
        • ๋ถ„๊ธฐ๋ณ„ ํ”„๋กœ์ ํŠธ
        • ๊ฐ•์ ๊ฒ€์‚ฌ
        • ๊ธ€์“ฐ๊ธฐ
        • ์ด์ƒ์ ์ธ ํ•˜๋ฃจ
        • ๋‚˜์™€ ์•„ํ”„๋ฆฌ์นด
        • ํ•œ ๋•Œ ๋‚˜์—๊ฒŒ ํž˜์ด๋˜์—ˆ๋˜ ๋ฌธ์žฅ๋“ค
      • 2023 ํšŒ๊ณ 
        • 2023๋…„ 12์›” 5์ฃผ์ฐจ
        • 2023๋…„ 12์›” 4์ฃผ์ฐจ
        • 2023๋…„ 12์›” 3์ฃผ์ฐจ
        • 2023๋…„ 12์›” 2์ฃผ์ฐจ
        • 2023๋…„ 12์›” 3์ผ
        • 2023๋…„ 12์›” 1์ฃผ์ฐจ
        • 2023๋…„ 11์›” 29์ผ
        • 2023๋…„ 11์›” 28์ผ
        • 2023๋…„ 11์›” 27์ผ
        • 2023๋…„ 11์›” 18์ผ
        • 2023๋…„ 11์›” 15์ผ
        • 2023๋…„ 11์›” 12์ผ
        • 2023๋…„ 11์›” 11์ผ
        • 2023๋…„ 11์›” 1์ฃผ์ฐจ
        • 2023๋…„ 10์›” 3์ฃผ์ฐจ
        • 2023๋…„ 9์›” 4์ฃผ์ฐจ
        • 2023๋…„ 9์›” 3์ฃผ์ฐจ
        • 2023๋…„ 9์›” 2์ฃผ์ฐจ
        • 2023๋…„ 9์›” 1์ฃผ์ฐจ
        • 2023๋…„ 8์›” 4์ฃผ์ฐจ
        • 2023๋…„ 8์›” 2์ฃผ์ฐจ
        • 2023๋…„ 8์›” 1์ฃผ์ฐจ
        • 2023๋…„ 7์›” 4์ฃผ์ฐจ
        • 2023๋…„ 7์›” 3์ฃผ์ฐจ
        • 2023๋…„ 7์›” 2์ฃผ์ฐจ
        • 2023๋…„ ์ƒ๋ฐ˜๊ธฐ ํšŒ๊ณ 
        • ๋‚˜ํƒœํ•˜๊ณ  ์š•์‹ฌ๋งŽ์€ ์ธ๊ฐ„์€ ์–ด๋–ป๊ฒŒ ์‚ด์•„์•ผ ํ•˜๋‚˜
        • ์ฑ… <์–ด๋–ป๊ฒŒ ์‚ด์•„์•ผ ํ•˜๋Š”๊ฐ€>
        • ์ฑ… <๋‹น์‹ ์€ ๊ฒฐ๊ตญ ๋ฌด์—‡์ด๋“  ํ•ด๋‚ด๋Š” ์‚ฌ๋žŒ>
        • ๋ณต์žก๊ณ„๋ฅผ ์‚ด์•„๊ฐ€๋Š” ๋‹จ์ˆœํ•œ ์‚ฌ๋žŒ
        • ์ฑ… <๋ชจ๋“ ๊ฒƒ์ด ๋˜๋Š”๋ฒ•>
        • ๊ธ€๋กœ ์‹ ๋ขฐ๋ฅผ ์–ป์—ˆ๋˜ ๊ฒฝํ—˜๋“ค
        • ๊ธฐํš์€ ๋‚˜๋ฅผ ์ฐพ์•„๊ฐ€๋Š” ๊ณผ์ •
        • ๋‚˜๋Š” ์™œ ์‚ด์•„๊ฐ€๋Š”๊ฐ€
        • ์žฅํ•ญ์ค€ ๊ฐ๋…์œผ๋กœ๋ถ€ํ„ฐ ๋ฐฐ์šฐ๋Š” "์‚ถ์„ ๋Œ€ํ•˜๋Š” ์ž์„ธ"
        • ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งํ•˜๋Š” ๊ฐ์ •์—๋„ ๋ถ„์„์ด ํ•„์š”ํ•œ ์ด์œ 
      • 2022๋…„ ํšŒ๊ณ 
        • problem map ์ž‘์„ฑํ•˜๊ธฐ
        • ์‚ถ์—์„œ ๋‚ด๊ฐ€ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์€ ๋ฌธ์ œ (2)
        • ์‚ถ์—์„œ ๋‚ด๊ฐ€ ํ•ด๊ฒฐํ•˜๊ณ  ์‹ถ์€ ๋ฌธ์ œ (1)
        • <์‚ถ์˜ ๋ฌธ์ œ> ์ง€๋„ ๋‹ค์‹œ ๊บผ๋‚ด๋ณด๊ธฐ
        • ์ง€๋„ ์œ„์˜ 29์‚ด
        • ๋งค๋ฒˆ ์‹œ๊ฐ„๊ณ„ํš์„ ๋ง์น˜๋Š” MBTI 'Pํ˜• ์ธ๊ฐ„'์„ ์œ„ํ•œ 5๋‹จ๊ณ„ ์ธ์ƒ๊ด€๋ฆฌ๋ฒ•
        • ๋‹น์‹ ์€ ์™œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ณต๋ถ€ํ•˜๋Š”๊ฐ€?
        • ์•„๋ฌด ๊ฒƒ๋„ ์•„๋‹Œ ๋‚ด๊ฐ€ ๊ธ€์„ ์“ฐ๋Š” ์ด์œ 
        • ์ฑ… <์—ฌํ–‰์˜ ์ด์œ >
        • ์ฑ… <๋ถ•๋Œ€๊ฐ๊ธฐ>
      • 2021๋…„ ํšŒ๊ณ 
    • Career
      • [๋ฏธ๋ฆฌ์บ”๋ฒ„์Šค] AI ์ œํ’ˆ PM
        • ์„ ํƒ๊ณผ ์ง‘์ค‘
        • ์–ด์ฉŒ๋ฉด ๋‚ด๊ฐ€ ํ‹€๋ฆด ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ์ƒ๊ฐ
        • ๋พฐ์กฑํ•œ ์‚ฌ๋žŒ๋“ค๊ณผ์˜ ํ˜‘์—…
        • AI๊ธฐ๋Šฅ PPT๋กœ ์˜จ๋ณด๋”ฉ
        • AI ์ œํ’ˆ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ
      • [๋ฏธ๋ฆฌ์บ”๋ฒ„์Šค] ์•ฑ PM
      • [๋ฏธ๋ฆฌ์บ”๋ฒ„์Šค] ์†Œ์ƒ๊ณต์ธ ์ œํ’ˆ PM
      • [๋ฏธ๋ฆฌ์บ”๋ฒ„์Šค] 2.0 PM
      • [ํ™€๋กœ์Šคํƒ ๋”ฉ] ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ
      • [์ฒญ๋…„5.5] ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ
      • [๊ฐ€์ถ•๋Œ€์ถœ์‚ฌ์—…] NGO Project PM
    • Insight
    • Interview
    • Public Writing
  • SIDE PROJECT
    • [Youtube] ๋ฉ”์ดํ‚นํ•„๋ฆ„
      • [Product] ์ฒญ์ถ˜์ง‘ ํ”„๋กœ์ ํŠธ
        • (v24.11) ์ฒญ์ถ˜์ง‘ JTBD
          • (๊ตฌ) ์ฒญ์ถ˜์ง‘ ์‹คํ–‰๊ณ„ํš
          • (๊ตฌ) ํ”Œ๋ ˆ์ด๋ฆฌ์ŠคํŠธ ๊ธฐํš
            • ๋ฐ์ด์‹์Šค ์ „๊ณก ํƒ€์ž„๋ผ์ธ
            • ์ฑ•ํ„ฐ ๊ตฌ์„ฑ
        • (v25.01) ์ฒญ์ถ˜์ง‘ JTBD
          • ์•„์ด๋Œ ๊ตฟ์ฆˆ ์‹œ์žฅ ์กฐ์‚ฌ (๊ณต์‹)
          • ์•„์ด๋Œ ๊ตฟ์ฆˆ ์‹œ์žฅ ์กฐ์‚ฌ (๋น„๊ณต์‹)
        • ์ œ์ž‘ ์ค€๋น„
          • ๋ ˆํผ๋Ÿฐ์Šค - ์˜คํ”„๋ผ์ธ ์‹œ์ง‘
          • a5 ์ฑ… ๋งŒ๋“ค๊ธฐ
    • [Youtube] ๋งˆํฌ๊ตฌํƒ€์ž๊ธฐ
      • [mptw] JTBD
        • IKIGAI
      • [mptw] ์ฑ„๋„ ์„ค์ •
        • ์ฑ„๋„ ์ด๋ฆ„ ํ›„๋ณด๊ตฐ
      • ์‹œ๋ฆฌ์ฆˆ [์ฝ๋Š”์Œ์•…]
        • [์ฝ๋Š”์Œ์•…] ๋ฐฑ๋กœ๊ทธ
          • ๋…ธ๋ž˜ ๊ฐ€์‚ฌ ์ฝ˜ํ…์ธ  ๋ ˆํผ๋Ÿฐ์Šค
        • ep1. ํŒŒ๋…ธ๋ผ๋งˆ - ์ด์ฐฌํ˜
          • ์ด์ฐฌํ˜ <ERROR>
        • ep2. ๋งˆ์ง€๋ง‰ ์ธ์‚ฌ (feat. ์ฒญํ•˜) - ์ด์ฐฌํ˜
        • ep3. ๋‚˜์˜ ๋ฐ”๋‹ค์—๊ฒŒ - ๋„์˜
        • ep4. Dattom - ๋ฐฑ์˜ˆ๋ฆฐ
        • ep5. REBEL HEART - IVE
        • ep6. Either way - IVE
        • ep7. ๋„ˆ์™€์˜ ๋ชจ๋“  ์ง€๊ธˆ - ์žฌ์“ฐ๋น„(JAESSBEE)
        • ep8. ์˜ˆ๋ปค์–ด - DAY6
        • 6์ฃผ์ฐจ. ๋ฐ์ด์‹์Šค ์‹œ๋ฆฌ์ฆˆ
    • [IT] ๊ณต์ ์ธ์‚ฌ์ ๋ชจ์ž„ ํ”Œ๋žซํผ
      • 1. ์šฐ๋ฆฌ ์กฐ์ง์˜ ์–ผ๊ตด์„ ๋งŒ๋“ค์ž
      • 2. ๋‚ด ์ƒ์— ์ฒซ ๊ธฐํš์„œ ๋งŒ๋“ค๊ธฐ (feat. QA Driven Development)
    • [Meet] ๊ณต์ ์ธ์‚ฌ์ ๋ชจ์ž„
    • [Youtube] ์ด์ƒํ•œ๋‚˜๋ผ์˜ ๊ฐœ๋ฐœ์žํ• ๋ฌด๋‹ˆ
    • [Study] Disquiet PM ์Šคํ„ฐ๋”” ์ฟจํ”ผ์Šค
    • [IT] ์„œ์šธ ๋นต ๋ง›์ง‘ ์ž˜์•Œ ํ…Œ์ŠคํŠธ
    • [Meet] ์–ผ๋ฆฌ๋ฒ„๋“œ ๋ชจ๋‹ํด๋Ÿฝ
      • ํ™๋ณด๋ฅผ ๊ณ๋“ค์ธ 2์ฃผ์ผ ์šด์˜ํ›„๊ธฐ
  • ์žกํ•™์‚ฌ์ „
    • ์™€์ธ ์›๋ฐ์ด ํด๋ž˜์Šค
    • ์†Œ์„ค์“ฐ๊ธฐ
      • <์ฑ…> ์†Œ์„ค์“ฐ๊ธฐ์˜ ๋ชจ๋“  ๊ฒƒ 1 - ํ”Œ๋กฏ๊ณผ ๊ตฌ์กฐ
      • ์œ ํŠœ๋ธŒ - ์†Œ์„ค ์“ฐ๋Š” ๋ฒ•
      • ๊ฐ•์˜๋“ค
      • ์ž‘๊ฐ€๊ฐ€ ๋˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ•ด
    • AI
      • ์ƒ์„ฑํ˜• AI
    • ComfyUI
      • Stable Diffusion
      • ComfyUI ์ค€๋น„, ์„ค์น˜, ์„ค์ •
      • Module ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ธฐ
      • ComfyUI
      • Core Node
    • ์ž‘์‚ฌ
      • ์ž‘์‚ฌ๊ฐ€ ๋˜๋Š” ๋ฒ•
    • ์œ ํŠœ๋ธŒ
      • ์œ ํŠœ๋ฒ„ ์Šคํ† ๋ฆฌ๋‹˜์˜ ๋ถ€์บ ์„ฑ์žฅ๊ธฐ
      • ์ฃผ์–ธ๊ทœ ์œ ํŠœ๋ธŒ ์ดˆ๋ณดํŽธ (ํด๋ž˜์Šค101)
      • ์ฃผ์–ธ๊ทœ ์œ ํŠœ๋ธŒ ์™•์ดˆ๋ณด ํŽธ
    • ๊ฒฝ์ œ
      • ์—ฐ๊ธˆ์ €์ถ•ํŽ€๋“œ
    • ChatGPT
    • ํฌ๋กค๋ง
      • Automatio
      • Octoparse
    • ๋…ธ์ฝ”๋“œ
      • ๋ถ๋งˆํฌ & ๋…ธ์ฝ”๋“œ ์„œ๋น„์Šค ๋ชฉ๋ก
  • PRODUCT&BUSINESS
    • Service Planning/Analysis
      • ๋ธŒ๋Ÿฐ์น˜์‹œ๋ฆฌ์ฆˆ <๊ฐœ๋ฐœ๋ณด๋‹จ ๊ณ ๊ฐ๊ฐœ๋ฐœ>
      • baemin mart
        • 1. ์‹œ์ž‘
        • 2. ์šฐ์•„ํ•œํ˜•์ œ๋“ค & ๋ฐฐ๋ฏผ์ƒํšŒ
        • 3-1. [์ธํ„ฐ๋ทฐ] ํฌํ•ญ์—์„œ ์น˜ํ‚จ์ง‘์„ ์šด์˜ํ•˜์‹œ๋Š” ์ตœ์‚ฌ์žฅ๋‹˜
        • 3-2. [์ธํ„ฐ๋ทฐ] ๋ถ€์‚ฐ์—์„œ ์กฑ๋ฐœ ํ”„๋ Œ์ฐจ์ด์ฆˆ๋ฅผ ์šด์˜ํ•˜์‹œ๋Š” ์ด์‚ฌ์žฅ๋‹˜
        • 4. <์•„ํ”„๋‹ˆ๊นŒ ์‚ฌ์žฅ์ด๋‹ค> ์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ์ดํ„ฐ ๋ถ„์„
        • 5. ๋ฌธ์ œ์ •์˜ & ๊ฐœ์„  ๊ฐ€์„ค
        • 6. ๊ฒฐ๋ก  - ์—ญ๊ธฐํš์„œ
      • careerly
      • meetme
      • ๋ฐฐ๋‹ฌ์˜ ๋ฏผ์กฑ ์—ญ๊ธฐํš ์‚ฌ๋ก€
      • ๋‹น๊ทผ๋งˆ์ผ“ ์—ญ๊ธฐํš ์‚ฌ๋ก€
      • ๋„๊ทธ๋ƒฅ ๋‹˜์ด ๋งํ•˜๋Š” ์ง„์งœ ์—ญ๊ธฐํš
      • ๋„๊ทธ๋ƒฅ์˜ ์—ญ๊ธฐํš ์Šคํ„ฐ๋””๋ฒ•
      • ์ฑ… <ํ˜„์—… ๊ธฐํš์ž ๋„๊ทธ๋ƒฅ์˜ ์„œ๋น„์Šค ๊ธฐํš ์Šค์ฟจ>
      • ๊ธฐํš์„œ ์ž‘์„ฑํ•˜๊ธฐ
    • Business/Growth
      • Unsexy Business ๋‰ด์Šค๋ ˆํ„ฐ์—์„œ ์–ป๋Š” ์ธ์‚ฌ์ดํŠธ
      • ์ฑ… <์›์”ฝ>
      • ์ฑ… <์•„ํ”„๋ฆฌ์นด ์Šคํƒ€ํŠธ์—…>
      • ์ฑ… <์œ ๋‚œํ•œ ๋„์ „>
      • ์ฑ… <ํ•จ๊ป˜์ž๋ผ๊ธฐ>
      • ์ฑ… <๋‚˜๋Š” ๋ˆ ์—†์–ด๋„ ์‚ฌ์—…์„ ํ•œ๋‹ค>
      • ์ฑ… <๋‚˜๋Š” ์žฅ์‚ฌ์˜ ์‹  ์€ํ˜„์žฅ์ด๋‹ค>
      • ์ฑ… <์™œ ์‚ฌ์—…ํ•˜๋Š”๊ฐ€>
      • ์ฑ… <์™œ ์ผํ•˜๋Š”๊ฐ€>
      • ์ด์ œ๋Š” ํ”ผ์นญ๋„ ์œ ํŠœ๋ธŒ๋กœ
      • ์„ธ์ปจ๋“œ ๋ธŒ๋ ˆ์ธ์ด ํ•„์š”ํ•œ ์ด์œ 
      • ์ฑ… <ํƒ€์ดํƒ„์˜ ๋„๊ตฌ๋“ค>
      • ์ฑ… <์—ญํ–‰์ž>
        • <์—ญํ–‰์ž> ์—ญํ–‰์ž์˜ 7๋‹จ๊ณ„ ๋ชจ๋ธ ๋ณต์Šต
        • <์—ญํ–‰์ž> ์šด๋ช…์„ ๊ฑฐ์Šค๋ฅด๋Š” ์—ญํ–‰์ž์˜ 7๋‹จ๊ณ„ ๋ชจ๋ธ
      • ์ฑ… <์›”๊ธ‰์Ÿ์ด๋กœ ์‹œ์ž‘ํ•œ 38์‚ด ๊ทธ๋…€๋Š” ์–ด๋–ป๊ฒŒ 30์–ต์„ ๋ฒŒ์–ด ํŒŒ์ด์–ด์กฑ์ด ๋˜์—ˆ์„๊นŒ?>
      • ์ฑ… <ํŒŒ๋ฆฌ์—์„œ ๋„์‹œ๋ฝ์„ ํŒŒ๋Š” ์—ฌ์ž>
      • ์ฑ… <์กด๋ฆฌ์˜ ๊ธˆ์œต๋ฌธ๋งนํƒˆ์ถœ>
      • ์ฑ… <๋ˆ์˜ ๊ฐ๊ฐ์„ ๊ธธ๋Ÿฌ์ฃผ๋Š” ๊ฒฝ์ œ ์ง€์‹ ์ฒซ๊ฑธ์Œ>
        • ๊ธˆ๋ฆฌ
        • ํ™˜์œจ
        • ์ฃผ์‹
        • ์ฑ„๊ถŒ
        • ๋ถ€๋™์‚ฐ
        • ์—ฐ๊ธˆ
        • ๊ฒฝ์ œ์ •์ฑ…
        • ๊ทœ์ œ
        • ๊ฒฝ์ œ์œ„๊ธฐ
    • Product-Market Fit
      • ๋ธŒ๋Ÿฐ์น˜ ๋ถ <๊ฐœ๋ฐœ๋ณด๋‹จ ๊ณ ๊ฐ ๊ฐœ๋ฐœ>
      • ์ฑ… <์•„์ด๋””์–ด ๋ถˆํŒจ์˜ ๋ฒ•์น™>
      • ๊ณ ์ด์žฅ๋ก€์—ฐ๊ตฌ์†Œ
      • ๊ธ€์“ฐ๊ธฐ๋กœ PMF ๊ฒ€์ฆํ•˜๊ธฐ
      • ์—ฐ๋Œ€ ์†ก๋„ ์บ ํผ์Šค์˜ 40%๊ฐ€ ์‚ฌ์šฉํ•œ ์„œ๋น„์Šค
      • ์–ด์›จ์ดํฌ์ฝ”ํผ๋ ˆ์ด์…˜์˜ ๊น€๋ฏผ์ค€ ๋‹˜
      • ๋“œ๋กœ์šฐ ๋งˆ์ด ๋ธŒ๋žœ๋“œ
      • ๋…ธ์ฝ”๋“œ๋กœ PMF ์ฐพ๋Š” ๋ฐฉ๋ฒ•
    • UI/UX
      • UX Writing Workshop
        • 4. ๊ณ ๊ฐ๊ณผ์˜ ๊ด€๊ณ„ํ˜•์„ฑ - ์ฐจ๋ณ„์  ๊ฐ•ํ™”
        • 3. ๋น„์ฆˆ๋‹ˆ์Šค ์ž„ํŒฉํŠธ๋ฅผ ๋งŒ๋“œ๋Š” ๊ธ€์“ฐ๊ธฐ
        • 2. ํ›„ํ‚นํ•œ ๋ฌธ์žฅ์œผ๋กœ ๊ณ ๊ฐ ํ–‰๋™ ์ด๋Œ๊ธฐ
        • 1. ์‰ฝ๊ณ  ์ •ํ™•ํ•œ ๋ฌธ์žฅ์œผ๋กœ ๋ฌธ์ œํ•ด๊ฒฐ
        • What is UX Writing?
        • Reference
      • UX/UI ๊ด€๋ จ ์œ ์šฉํ•œ ์‚ฌ์ดํŠธ ๋ชจ์Œ
    • PM/PO
      • ์ฑ… <ํ”„๋กœ๋•ํŠธ ๋งค๋‹ˆ์ง€๋จผํŠธ>
      • ์ฑ… <์ธ์ŠคํŒŒ์ด์–ด๋“œ>
      • PM Wiki
      • ๋‹น์‹ ๊ณผ ํŒ€์„ ์„ฑ์žฅ์‹œํ‚ฌ PM ์ง๋ฌด๊ฐ€์ด๋“œ
      • PO ๋ฏธ์‹ , ํŒŒ๋ž‘์ƒˆ๋ฅผ ์ฐพ์•„์„œ - CPO ๊น€์šฉํ›ˆ
      • ๊ฐœ๋ฐœ์ž๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ์ข‹์€ PM ๋‚˜์œ PM
      • ํ”„๋กœ๋•ํŠธ ๋งค๋‹ˆ์ €๋Š” ๋ญํ•˜๋Š” ์‚ฌ๋žŒ์ธ๊ฐ€
      • ํ† ์Šค ๋ฆฌ๋”๊ฐ€ ๋งํ•˜๋Š” PO๊ฐ€ ๊ผญ ์•Œ์•„์•ผํ•  ๊ฐœ๋… (2)
      • ํ† ์Šค ๋ฆฌ๋”๊ฐ€ ๋งํ•˜๋Š” PO๊ฐ€ ๊ผญ ์•Œ์•„์•ผํ•  ๊ฐœ๋… (1)
      • ์ฑ… <์กฐ์ง์„ ์„ฑ๊ณต์œผ๋กœ ์ด๋„๋Š” ํ”„๋กœ๋•ํŠธ ์˜ค๋„ˆ>
        • <ํ”„๋กœ๋•ํŠธ ์˜ค๋„ˆ> PO์˜ ์‹œ๊ฐ„๊ด€๋ฆฌ๋ฒ•
        • <ํ”„๋กœ๋•ํŠธ ์˜ค๋„ˆ> PO๊ฐ€ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ์ผํ•  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ์ด์œ 
  • DATA
    • Database
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์˜์‚ฌ๊ฒฐ์ •
      • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜
      • ํŠธ๋žœ์žญ์…˜๊ณผ ๋ฌด๊ฒฐ์„ฑ
      • ํŠธ๋žœ์žญ์…˜, ์ปค๋ฐ‹, ๋กค๋ฐฑ, ํŠธ๋žœ์žญ์…˜ ์ „ํŒŒ
      • ERD, entity relationship diagram
      • ๊ธฐ๋ณธ 3 - ๊ด€๊ณ„, ํ‚ค
      • ๊ธฐ๋ณธ 2 - ํ•„๋“œ, ๋ ˆ์ฝ”๋“œ, ํƒ€์ž…
      • ๊ธฐ๋ณธ 1 - ์—”ํ‹ฐํ‹ฐ, ๋ฆด๋ ˆ์ด์…˜, ์†์„ฑ, ๋„๋ฉ”์ธ
    • SQL
      • Sub Query
      • JOIN
      • ๋ฐ์ดํ„ฐ ์ •๋ ฌ์…‹๊ณผ ์œ ๋‹ˆ์ฝ”๋“œ
      • ์ž๋ฃŒํ˜•
      • DDL, DML
      • SELECT
      • SQL
    • MySQL
      • MSQL to MySQL Data Migration
      • MySQL Server ๋‹ค์šด๋กœ๋“œ, ๋กœ๊ทธ์ธ
      • helpful commands
      • ๋ฌธ์ž์—ด ์ž๋ฅด๊ธฐ SUBSTR(column, startIdx, length)
      • ํŠน์ • ๊ฐ’์„ ORDER BY ํŠน์ • ๊ฐ’ ์šฐ์„  ์ •๋ ฌ ํ•˜๊ธฐ (ORDER BY FIELD)
      • ์ด๊ฒƒ์ด MySQL์ด๋‹ค
    • H2
      • โ€ผ๏ธh2 in-memory-db Table not found (this database is empty) ํ•ด๊ฒฐ๋ฐฉ๋ฒ•
  • Dev-General
    • Webmark
    • Open Source
      • ๋‚˜์˜ ์ฒซ opensource contribution ๊ฒฝํ—˜๊ธฐ
    • Dev-Insight
      • Event
        • YOUTHCON 2022
        • INFCON 2022
      • ์ฑ… <๋ˆ„์›Œ์„œ ์ฝ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜>
      • ์ฑ… <๋‚˜๋Š” LINE ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค>
      • ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์ ธ์•ผํ•  ์ƒ๊ฐ๋“ค
      • AI ์‹œ๋Œ€์—์„œ ๊ฒฐ๊ตญ ์‚ด์•„๋‚จ๋Š” ๊ฒƒ
      • AI ์‹œ๋Œ€์— ๊ฐœ๋ฐœ์ž๊ฐ€ ์‚ด์•„๋‚จ๋Š” ๋ฐฉ๋ฒ•
      • ์ฃผ๋‹ˆ์–ด๋ฅผ ๋„˜์–ด์„œ, ์„ฑ์žฅํ•˜๋Š” ๊ฐœ๋ฐœ์ž์˜ ๊ธธ (์ธํ”„๋Ÿฐ)
      • ์•„๋งˆ์ถ”์–ด์™€ ํ”„๋กœ์˜ ์ฐจ์ด
      • ๊ฐœ๋ฐœ์ž์˜ ๊ฐœ๋ฐœ๊ณต๋ถ€์— ๋Œ€ํ•˜์—ฌ
      • ์„œ๋น„์Šค์— ๋Œ€ํ•ด ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์ ธ์•ผํ•  ์ƒ๊ฐ๋“ค
      • ์ข‹์€ ๊ฐœ๋ฐœ์ž์™€ ์ธ๋งฅ์„ ๋งŒ๋“  ๋…ธํ•˜์šฐ
      • ๊ฐœ๋ฐœ์ž ์ทจ์—…๊ธฐ/์ด์ง๊ธฐ ๋ชจ์Œ
        • ๋ผ์ธ๊ฒŒ์ž„์ฆˆ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ๊ฒฝ์„ ๋‹˜
        • OKKY ๋ฏธ๋‹ˆ์„ธ๋ฏธ๋‚˜ <๋น„์ „๊ณต ํ•™์›์ถœ์‹  SI๊ฐœ๋ฐœ์ž, ์œ ๋ช…์Šคํƒ€ํŠธ์—… ๋“ค์–ด๊ฐ„.ssul> ์ฐธ์„ ํ›„๊ธฐ
        • ๋น„์ „๊ณต์ž์—์„œ 2์–ต๋ฐ›๋Š” ์•„๋งˆ์กด ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋˜๊ธฐ๊นŒ์ง€
        • IT ๋Œ€๊ธฐ์—… 100% ํ•ฉ๊ฒฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  • ๐Ÿ—๏ธcomputer science
    • Algorithm & Data Structure
      • About this page
      • Test Review
        • Page 1
      • Big-O
        • ๋น…์˜คํ‘œ๊ธฐ๋ฒ•์˜ ๋ฌธ์ œํ’€์ด
        • ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์˜ ์‹œ๊ฐ„๋ณต์žก๋„
      • Bit Operation
        • bit masking
      • Math
        • ํ•ฉ๊ณต์‹ / ๋ˆ„์ ํ•ฉ
        • ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜
        • ์•ฝ์ˆ˜์ฐพ๊ธฐ
        • ์†Œ์ˆ˜์ฐพ๊ธฐ
          • ๋ฐฑ์ค€ 1978 ์†Œ์ˆ˜์ฐพ๊ธฐ
          • ๋ฐฑ์ค€4948 ๋ฒ ๋ฅดํŠธ๋ž‘ ๊ณต์ค€
          • ๋ฐฑ์ค€ 8393 ํ•ฉ
          • ๋ฐฑ์ค€ 1929 ์†Œ์ˆ˜๊ตฌํ•˜๊ธฐ
        • ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ / ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜
          • ๋ฐฑ์ค€ 2824 ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, BigInteger
          • ๋ฐฑ์ค€ 2609 ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜
        • ์ˆœ์—ด๊ณผ ์กฐํ•ฉ
          • ๋ฐฑ์ค€ 15649 N๊ณผ M
        • ๊ทธ ์™ธ ๊ฐœ๋… ์ •๋ฆฌ
      • Recursion
        • N Queens problem
        • counting cells in a blob
        • recursion ์‘์šฉ - ๋ฏธ๋กœ์ฐพ๊ธฐ
        • ์ˆœํ™˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์„ค๊ณ„
        • ์ˆœํ™˜์ ์œผ๋กœ ์‚ฌ๊ณ ํ•˜๊ธฐ
        • ๋ฐฑ์ค€ 17478 ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ๋ญ”๊ฐ€์š”
        • ๋ฐฑ์ค€ 10870 ํ”ผ๋ณด๋‚˜์น˜์ˆ˜ 5
      • Sort
        • java ์—์„œ์˜ ์ •๋ ฌ
        • radix sort
        • sorting in linear time
        • comparison sort ์—์„œ ์ตœ์ƒ์˜ ์‹œ๊ฐ„๋ณต์žก๋„
        • priority queue
        • heap sort
        • quick sort
        • merge sort
      • Array and List
        • ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
      • Linked list
      • String
      • Stack
        • ๋ฐฑ์ค€ 1874 ์Šคํƒ์ˆ˜์—ด
        • ๋ฐฑ์ค€ 10828 ์Šคํƒ ๊ตฌํ˜„ํ•˜๊ธฐ
      • Queue
        • ๋ฐฑ์ค€ 10845 ํ ๊ตฌํ˜„ํ•˜๊ธฐ
      • Heap
        • ๋ฐฑ์ค€ 11298 ์ ˆ๋Œ€๊ฐ’ํž™
        • ๋ฐฑ์ค€11279 ์ตœ๋Œ€ํž™
        • ๋ฐฑ์ค€1927 ์ตœ์†Œํž™
      • Deque
      • Tree and Binary tree
        • Tries
        • Red-Black Tree
        • Binary Search Tree
      • Search
        • ์™„์ „ ํƒ์ƒ‰
        • ์ด๋ถ„ํƒ์ƒ‰
      • Graph
        • ์ตœ๋‹จ๊ฒฝ๋กœ
        • MST 2 - prim ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜
        • MST 1 - Kruskal ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜
        • MST, minumum spanning tree
        • DAG, Directed Acyclic Graph
        • DFS, Depth First Search
        • BFS, Breadth First Search
      • Dynamic Programming
        • Knapsack problem
        • LCS, Longest Common Subsequence
        • matrix chain
        • ํ–‰๋ ฌ ๊ฒฝ๋กœ ๋ฌธ์ œ
        • ๋ฐฑ์ค€ 1003 ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜
        • ๋ฐฑ์ค€ 9461 ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด
        • ๋ฐฑ์ค€9251 LCS
      • Greedy
      • Implementation
      • LIS, Longest Increasing Subsequence
      • Two Pointer
      • Line Swipping
      • Fenwick tree
      • Backtracking
    • Computer Structure
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • ๊ทธ๋ž˜์„œ ์ปดํ“จํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋‚˜์š”?
      • ์ปดํ“จํ„ฐ์˜ ๊ตฌ์„ฑ
      • ์ปดํ“จํ„ฐ์˜ ์—ญ์‚ฌ
      • ์ปดํ“จํ„ฐ ๊ตฌ์„ฑ์š”์†Œ์˜ ๊ธฐ๋Šฅ ๋ฐ ์ดํ•ด
      • ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜ - ๋งˆ์ดํฌ๋กœ ๋ช…๋ น - ์ž…์ถœ๋ ฅ๊ณผ ์ธํ„ฐ๋ŸฝํŠธ
      • ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜ - ๊ธฐ๋ณธ ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      • ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜ - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์‹คํ–‰
      • ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๋ฒกํ„ฐ์ฒ˜๋ฆฌ - ๋ฐ์ดํ„ฐ์˜ ์ข…์†์„ฑ - ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ์™€ ํŒŒ์ดํ”„๋ผ์ธ
      • ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๋ฒกํ„ฐ์ฒ˜๋ฆฌ - ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ - ๋ฐ์ดํ„ฐ/๊ตฌ์กฐ
      • ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๋ฐฑํ„ฐ์ฒ˜๋ฆฌ - ์‚ฐ์ˆ &๋ช…๋ น์–ด ํŒŒ์ดํ”„๋ผ์ธ
      • ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๋ฒกํ„ฐ์ฒ˜๋ฆฌ - ํŒŒ์ดํ”„๋ผ์ธ CPU์˜ ์„ฑ๋Šฅ๋ถ„์„
      • ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ - ๋ฉ”๋ชจ๋ฆฌ ์‹œ์Šคํ…œ์˜ ์ดํ•ด
      • ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ - ํšจ์œจ์ ์ธ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ์ •์ฑ…
      • ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ - ์ปดํ“จํ„ฐ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ
      • ์ž…์ถœ๋ ฅ๊ตฌ์กฐ - ์‹œ์Šคํ…œ BUS ๊ตฌ์„ฑ ๋ฐ ์ œ์–ด
      • ์ž…์ถœ๋ ฅ ๊ตฌ์กฐ - ์ž…์ถœ๋ ฅ(I/O) ์—ฐ๊ฒฐ๊ณผ ์ฃผ์†Œ ์ง€์ •
      • ์ž…์ถœ๋ ฅ ๊ตฌ์กฐ - ์ž…์ถœ๋ ฅ ์ˆ˜ํ–‰๊ณผ ์ธํ„ฐ๋ŸฝํŠธ
      • ๋ณ‘๋ ฌ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์™€ ์„ฑ๋Šฅ๋ถ„์„ - ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์„œ
      • ๋ณ‘๋ ฌ ์ปดํ“จํ„ฐ ๊ตฌ์กฐ์™€ ์„ฑ๋Šฅ ๋ถ„์„ - ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ๋ถ„์„๊ณผ ๊ฐœ์„ 
    • This Is Coding Test 2021
      • 1. ์ถœ์ œ ๊ฒฝํ–ฅ & ํŒŒ์ด์ฌ ๋ฌธ๋ฒ• ๋ถ€์ˆ˜๊ธฐ
      • 2. ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ & ๊ตฌํ˜„
      • 3. BFS & DFS
      • 4. ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜
      • 5. ์ด์ง„ํƒ์ƒ‰
      • 6. ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      • 7. ์ตœ๋‹จ๊ฒฝ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜
      • 8. ๊ธฐํƒ€ ๊ทธ๋ž˜ํ”„ ์ด๋ก 
      • 9. ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์—์„œ ์ž์ฃผ ์ถœ์ œ๋˜๋Š” ๊ธฐํƒ€ ์•Œ๊ณ ๋ฆฌ์ฆ˜
      • 10. ๊ฐœ๋ฐœํ˜• ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    • Operating System
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • ์šด์˜์ฒด์ œ๋ž€, Introduction to Operating Systems
      • ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์˜ ๊ตฌ์กฐ, Structure of Computer System
      • ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰, Program Execution
      • ํ”„๋กœ์„ธ์Šค, Process
      • ์“ฐ๋ ˆ๋“œ, Thread
      • ํ”„๋กœ์„ธ์Šค์˜ ์ƒ์„ฑ๊ณผ ์ข…๋ฃŒ, Start and End of Process
      • ํ”„๋กœ์„ธ์Šค ์‹œ์Šคํ…œ ์ฝœ๊ณผ ํ”„๋กœ์„ธ์Šค๊ฐ„์˜ ํ˜‘๋ ฅ, System call and Interprocess Communication
      • CPU Scheduling
      • CPU Scheduling Algorithm
      • Process Synchronization Problem
      • Initial Attempts to Solve Process Synchronization Problem
      • semaphore ์™€ monitor ๋กœ synchronization ํ•ด๊ฒฐํ•˜๊ธฐ
      • ๋ฐ๋“œ๋ฝ, Deadlock
      • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ, Memory Management
      • Memory Allocation
      • Virtual Memory
      • Virtual Memory 2
      • File System
      • File Systems Implementation
      • Disk Management & Scheduling
    • Network
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • ๋Œ€๊ทœ๋ชจ ํŠธ๋ž˜ํ”ฝ์œผ๋กœ ์ธํ•œ ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•
      • ์œ ์„  LAN๊ณผ ๋ฌด์„  LAN
      • ๋„คํŠธ์›Œํฌ๋ฅผ ์ด๋ฃจ๋Š” ์žฅ์น˜ (L1, L2 .. L7)
      • REST API
      • HTTP ๋งค์„œ๋“œ
      • HTTP ์ƒํƒœ์ฝ”๋“œ
      • ์ง๋ ฌํ™”์™€ ์—ญ์ง๋ ฌํ™”
      • ๋กœ๊ทธ์ธ ๊ตฌํ˜„๋ฐฉ์‹ 2. ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ๋ฐฉ์‹
      • ๋กœ๊ทธ์ธ ๊ตฌํ˜„๋ฐฉ์‹ 1. ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ๋ฐฉ์‹
      • ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์บ์‹œ - ๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์ 
      • ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์บ์‹œ - ์ฟ ํ‚ค
      • HTTP header
      • ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์บ์‹œ - ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€
      • ์›น ๋ธŒ๋ผ์šฐ์ €์˜ ์บ์‹œ - ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€
      • browser rendering
      • HTTPS ์™€ TLS - TLS ํ•ธ๋“œ์‰์ดํฌ
      • HTTPS ์™€ TLS - ์•”ํ˜ธํ™”
      • HTTP History
      • www.naver.com ์„ ์ฃผ์†Œ์ฐฝ์— ์ž…๋ ฅํ•˜๊ณ  ํ™”๋ฉด์— ๋‚˜ํƒ€๋‚˜๊ธฐ๊นŒ์ง€์˜ ๊ณผ์ •
      • IP ์ฃผ์†Œ - ๊ณต์ธ IP์™€ ์‚ฌ์„ค IP
      • IP ์ฃผ์†Œ - Classless,Subnet Mask, Subnetting
      • IP ์ฃผ์†Œ - Classful IP Addressing
      • IP ์ฃผ์†Œ - IPv4, IPv6
      • IP ์ฃผ์†Œ - ์ด์ง„์ˆ˜ ์ดํ•ดํ•˜๊ธฐ
      • IP ์ฃผ์†Œ, MAC ์ฃผ์†Œ, ARP, RARP
      • ๋ผ์šฐํŒ…
      • TCP 4way handshake and TIME_WAIT
      • TCP 3way handshake
      • TCP/IP - internet layer
      • TCP/IP - Transport Layer
      • TCP/IP - Application Layer
      • TCP/IP - MTU, MSS, PMTUD
      • TCP/IP 4๊ณ„์ธต, OSI 7 layer
      • ๋„คํŠธ์›Œํฌ์˜ ๋ถ„๋ฅ˜ - LAN, MAN, WAN
      • ๋„คํŠธ์›Œํฌ ํ† ํด๋กœ์ง€์™€ ๋ณ‘๋ชฉํ˜„์ƒ
      • ๋„คํŠธ์›Œํฌ์˜ ๊ธฐ์ดˆ 3
      • ๋„คํŠธ์›Œํฌ์˜ ๊ธฐ์ดˆ 2
      • ๋„คํŠธ์›Œํฌ์˜ ๊ธฐ์ดˆ
    • Linux
      • reference
      • sudo apt-get install / uninstall
      • vim
      • linux basic command
    • Design Pattern
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • static ์„ ์ž์ฃผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์„ ๋•Œ์˜ ๋‹จ์ 
      • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ class์™€ static
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ปจํ…์ŠคํŠธ
      • ์˜์กด์„ฑ ์ฃผ์ž… vs. ์ „๋žตํŒจํ„ด
      • flux pattern
      • Spring MVC ํŒจํ„ด ์ ์šฉ ์‚ฌ๋ก€
      • MVC, MVP, MVVM pattern
      • ํ”„๋ก์‹œ ํŒจํ„ด
      • ์˜ต์ €๋ฒ„ ํŒจํ„ด
      • ์ „๋žตํŒจํ„ด
      • ์˜์กด์„ฑ ์ฃผ์ž…๊ณผ ์˜์กด ๊ด€๊ณ„ ์—ญ์ „ ์›์น™
      • ์ดํ„ฐ๋ ˆ์ด์…˜ ํŒจํ„ด
      • ์ถ”์ƒ ํŒฉํ† ๋ฆฌ ๋งค์†Œ๋“œ ํŒจํ„ด
      • ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ ํŒจํ„ด
      • ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด
      • ๋””์ž์ธ ํŒจํ„ด, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฐจ์ด
    • Programming Basic (Go)
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • ํŠธ๋žœ์ง€์Šคํ„ฐ, Trangister
      • ๋…ผ๋ฆฌ์†Œ์ž, Logic Element
      • ํŠœ๋ง๊ณผ ํฐ ๋…ธ์ด๋งŒ, Turing and Von Neumann
      • ์ปดํ“จํ„ฐ์˜ ์›๋ฆฌ, Computer Principle
      • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด, Programming Language
      • ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๋™์ ์–ธ์–ด, Compiler and dynamic language
      • golang
      • hello, world
      • variable
      • variable 2
    • Base Knowledge
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • ์‹ ๊ธฐ์ˆ  ๋„์ž…์‹œ ๊ณ ๋ฏผํ•ด์•ผํ•  ์ (feat. react.js vs. vue.js)
      • ์ •์  ํƒ€์ž… ์‹œ์Šคํ…œ์˜ ํ•„์š”์„ฑ
      • ๋„์ปค, ์ปจํ…Œ์ด๋„ˆ
      • ํด๋ผ์šฐ๋“œ, Saas, IaaS, PaaS
      • SSO
      • RBAC
      • OAuth2.0
      • REST API ์‚ฌ์šฉ์„ ์œ„ํ•œ ์ธ์ฆ ๋ฐฉ๋ฒ• 4๊ฐ€์ง€
      • API
      • Data Format - XML
      • Data Format - JSON
  • โ˜•Java/Spring
    • Java
      • Java Code Convention
      • Java ๋ฒ„์ „๋ณ„ ํŠน์ง• (v1-v19)
      • java.lang.Math
      • List 4๊ฐ€์ง€์˜ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•
      • HashMap 4๊ฐ€์ง€์˜ ์ •๋ ฌ ๋ฐฉ๋ฒ•
      • ์–ด๋…ธํ…Œ์ด์…˜ ํ”„๋กœ์„ธ์„œ ์ •๋ฆฌํ•˜๊ธฐ
      • Annotation Processor ๋กœ ์—†๋Š” ์†Œ์Šค์ฝ”๋“œ ์ƒ์„ฑํ•˜๊ธฐ
      • lombok ์€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ผ๊นŒ?
      • ๋‹ค์ด๋‚ด๋ฏน ํ”„๋ก์‹œ ์ •๋ฆฌํ•˜๊ธฐ
      • ํด๋ž˜์Šค์˜ ํ”„๋ก์‹œ
      • ๋‹ค์ด๋‚ด๋ฏน ํ”„๋ก์‹œ
      • ํ”„๋ก์‹œ ํŒจํ„ด์€ ๋ฌด์—‡์ธ๊ฐ€
      • Spring Data JPA ๋Š” ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ?
      • reflection api ์ •๋ฆฌ
      • reflection api ์ด์šฉํ•˜์—ฌ spring ioc container ๋งŒ๋“ค๊ธฐ
      • reflection api
      • spring dependency injection ์€ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ• ๊นŒ
      • ๋ฐ”์ดํŠธ ์ฝ”๋“œ ์กฐ์ž‘ํ•˜๊ธฐ
      • java bytecode ๋ฅผ ์กฐ์ž‘ํ•ด ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ปค๋ฒ„๋ฆฌ์ง€ ํ™•์ธํ•˜๊ธฐ (feat.jacoco)
      • Class Loader
      • JVM ์˜ ๊ตฌ์กฐ
      • java, jvm, jdk and jre
      • synchronized
      • java string.split(".") ์˜ค๋ฅ˜
    • Java 8
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • Metaspace
      • Parallel ์ •๋ ฌ
      • Annotation
      • CompletableFuture
      • Date and Time
      • Optional
      • Stream
      • interface์˜ default ๋ฉ”์†Œ๋“œ์™€ static ๋ฉ”์†Œ๋“œ
      • ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ณ€ํ™”
      • ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค
      • java 8 ์†Œ๊ฐœ
    • Spring Framework
      • Spring 3.0 ์ค€๋น„ํ•˜๊ธฐ
      • ํŠน์ • ๋งค์†Œ๋“œ๋งŒ transaction ์ฒ˜๋ฆฌํ•˜๊ธฐ
      • ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์‹œ์ž‘ํ•˜๊ธฐ
      • ์Šคํ”„๋ง์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€
      • ์Šคํ”„๋ง ํ•ต์‹ฌ ๊ธฐ์ˆ ์˜ ์‘์šฉ
      • AOP 2
      • AOP 1
      • ์„œ๋น„์Šค ์ถ”์ƒํ™” 2
      • ์„œ๋น„์Šค ์ถ”์ƒํ™” 1
      • ์˜ˆ์™ธ
      • ํ…œํ”Œ๋ฆฟ
      • ํ…Œ์ŠคํŠธ
      • ์˜ค๋ธŒ์ ํŠธ์™€ ์˜์กด๊ด€๊ณ„
      • ์Šคํ”„๋ง์ด๋ž€
    • Spring Boot
      • [Gradle]UncheckedIOException
      • java19 + spring 3.0.5 + gradle 7.4.1 ์—์„œ ํ”„๋กœ์ ํŠธ gradle ์„ค์ •ํ•˜๊ธฐ
      • [๋ฆฌ๋ทฐ] Gradle ๋ฉ€ํ‹ฐ ํ”„๋กœ์ ํŠธ ๊ด€๋ฆฌ
      • [๋ฆฌ๋ทฐ] ๋ฉ€ํ‹ฐ๋ชจ๋“ˆ ์„ค๊ณ„ ์ด์•ผ๊ธฐ with Spring, Gradle
    • JPA/QueryDSL
      • querydsl ์„ ์“ฐ๋Š” ์ด์œ 
      • JPA querydsl์—์„œ json array ๋กœ ๋œ ์ปฌ๋Ÿผ์— ์กฐ๊ฑด ์ ์šฉํ•˜๊ธฐ
      • querydsl ์—์„œ mysql order by field() ์‚ฌ์šฉํ•˜๊ธฐ
  • ๐ŸฐInfrastructure
    • InfraWorkshop
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • aws๋กœ ์•ˆ์ •์ ์ธ ์ธํ”„๋ผ ๋งŒ๋“ค๊ธฐ 2
      • aws๋กœ ์•ˆ์ •์ ์ธ ์ธํ”„๋ผ ๋งŒ๋“ค๊ธฐ 1
      • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ง„๋‹จํ•˜๊ธฐ
      • ์„œ๋ฒ„ ์ง„๋‹จํ•˜๊ธฐ
      • ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ
      • ์›น ์„ฑ๋Šฅ ๊ฐœ์„ ํ•˜๊ธฐ
      • ์›น ์„ฑ๋Šฅ ์ง„๋‹จํ•˜๊ธฐ
      • <aws๋กœ ๊ทธ๋Ÿด๋“ฏํ•œ ์ธํ”„๋ผ ๋งŒ๋“ค๊ธฐ> ํšŒ๊ณ ์™€ ํ”ผ๋“œ๋ฐฑ
      • aws๋กœ ๊ทธ๋Ÿด๋“ฏํ•œ ์ธํ”„๋ผ ๋งŒ๋“ค๊ธฐ 3 - ๋ฐฐํฌ์Šคํฌ๋ฆฝํŠธ
      • aws๋กœ ๊ทธ๋Ÿด๋“ฏํ•œ ์ธํ”„๋ผ ๋งŒ๋“ค๊ธฐ 2 - ๋ฐฐํฌํ•˜๊ธฐ
      • aws๋กœ ๊ทธ๋Ÿด๋“ฏํ•œ ์ธํ”„๋ผ ๋งŒ๋“ค๊ธฐ 1 - ๋„คํŠธ์›Œํฌ ๋ง ๊ตฌ์„ฑ
      • docker container
      • connection check
      • network segmentation
      • cloud ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ
    • AWS
      • AWS IAM
      • AWS CodePipeline ์œผ๋กœ ๋ฐฐํฌ ์ž๋™ํ™”ํ•˜๊ธฐ (1)
      • AWS CodePipeline ์œผ๋กœ ๋ฐฐํฌ ์ž๋™ํ™”ํ•˜๊ธฐ (2)
  • ๐Ÿช„Test
    • TDD
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • [2์ฃผ์ฐจ] ๋กœ๋˜ ๊ณผ์ œ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ ๋‚˜์„œ
      • [1์ฃผ์ฐจ] ์ž๋™์ฐจ ๊ฒฝ์ฃผ ๊ณผ์ œ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ ๋‚˜์„œ
      • TDD, ๋ฆฌํŒฉํ† ๋ง์ด๋ž€?
      • ๊ฐ€์žฅ ์‰ฝ๊ฒŒ TDD ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•
      • ์˜์‹์ ์ธ ์—ฐ์Šต๊ณผ ํ•™์Šต ํ…Œ์ŠคํŠธ
      • TDD ์— ์ง‘์ฐฉํ•ด์•ผํ•˜๋Š” ์ด์œ 
      • ๊ณต๋ถ€ํ•˜๋Š” ์ž์„ธ
    • AssertJ
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
    • JUnit
      • ์ด ์œ„ํ‚ค๋ฅผ ๋งŒ๋“œ๋Š”๋ฐ ์ฐธ๊ณ ํ•œ ์ž๋ฃŒ๋“ค
      • Junit ๊ธฐ๋ณธ ๊ฐœ๋…
  • ๐Ÿ˜ŽOTHERS
    • Helpful Command
      • Mac ์—์„œ ํŠน์ • ํฌํŠธ ๊ฒ€์ƒ‰, ์ข…๋ฃŒ
      • crontab
    • Llibrary
    • IntelliJ
      • ๋‚ด๊ฐ€ ์ข‹์•„ํ•˜๋Š” ์ปค์Šคํ…€ ์„ธํŒ…
    • GIT
      • Github ID/Token ํ•œ๋ฒˆ ์ž…๋ ฅ ํ›„ ์ €์žฅํ•˜๊ธฐ
      • Github Actions
      • github organization private repository push ์•ˆ๋  ๋•Œ (not found issue)
      • commands
      • git commit convention
    • Logging
      • logback + webfilter ๋กœ ๋กœ๊ทธ์„ค์ •
      • โ€ผ๏ธlog4j ๋ณด์•ˆ ์ด์Šˆ
    • Postman
      • postman ์˜ header์—์„œ ์–ธ๋”๋ฐ”(_) ๋ณ€์ˆ˜ ์ธ์‹ ์•ˆ๋˜๋Š” ํ˜„์ƒ
Powered by GitBook
On this page
  • 0. ์ปจํ…Œ์ด๋„ˆ
  • 1. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•™์Šตํ•ด์•ผํ•˜๋Š” ์ด์œ 
  • 1-1. ๊ธฐ์กด์˜ OS ๊ฐ€์ƒํ™” ๋ฐฉ์‹
  • 1-2. ์ปจํ…Œ์ด๋„ˆ์˜ ๋“ฑ์žฅ
  • 2. ์ปจํ…Œ์ด๋„ˆ์˜ ํ”„๋กœ์„ธ์Šค ์ถ”์ƒํ™”
  • 2-1. ๋„์ปค ์„ค์น˜
  • 2-2. ๋„์ปค ๋ฐ๋ชฌ
  • 2-3. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ
  • 3. ๋„์ปค ์ด๋ฏธ์ง€
  • 4. ๋„์ปค ๋„คํŠธ์›Œํฌ
  • 5. ๋„์ปค ๋ณผ๋ฅจ

Was this helpful?

  1. Infrastructure
  2. InfraWorkshop

docker container

Previousaws๋กœ ๊ทธ๋Ÿด๋“ฏํ•œ ์ธํ”„๋ผ ๋งŒ๋“ค๊ธฐ 1 - ๋„คํŠธ์›Œํฌ ๋ง ๊ตฌ์„ฑNextconnection check

Last updated 2 years ago

Was this helpful?

0. ์ปจํ…Œ์ด๋„ˆ

  • ๋ฌด์–ธ๊ฐ€์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ด€๋ฆฌํ•œ๋‹ค. ์ด๋•Œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ฒฉ๋ฆฌ!

  • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์˜ ๋Œ€์ƒ์€ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์„ธ์ƒ์˜ ์ „๋ถ€๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. (๊ฒฉ๋ฆฌ๋˜์–ด์žˆ์œผ๋‹ˆ๊นŒ)

  • ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€ ์ 

    • ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๋ฌด์—‡์ด ์žˆ๋“ ์ง€ ๊ฐ„์— ์ปจํ…Œ์ด๋„ˆ ๋‹จ์œ„๋กœ ์‚ฌ๊ณ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ์šด์˜๋˜๊ณ  ์ œ๊ฑฐ๋˜๊ธฐ๊นŒ์ง€์˜ ์ƒ์• ์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ ์ด๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๊ฒฉ๋ฆฌ์ด๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ์˜ ํ”„๋กœ์„ธ์Šค๋Š” ์ œํ•œ๋œ ์ž์› ๋‚ด์—์„œ ์ œํ•œ๋œ ์‚ฌ์šฉ์ž๋งŒ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

1. ์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ•™์Šตํ•ด์•ผํ•˜๋Š” ์ด์œ 

  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ฐฐํฌ๋˜๋Š” ํ™˜๊ฒฝ์„ ์„œ๋ฒ„์— ์ง์ ‘ ์„ค์น˜ํ•˜์—ฌ ๊ตฌ์„ฑํ•  ๊ฒฝ์šฐ, ์— ์ง๋ฉดํ•œ๋‹ค.

  • ์„œ๋น„์Šค๋Š” ์ ์ฐจ ํ™•์žฅ๋˜๊ณ , ๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋˜ ์„œ๋ฒ„์™€ ์ƒˆ๋กœ ๊ตฌ์ถ•ํ•œ ์„œ๋ฒ„ ๊ฐ„์˜ ์„ค์ • ์ฐจ์ด๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๊ณ , ๊ด€๋ฆฌ์ž์˜ ์ธ์  ์š”์†Œ์—๋„ ์˜ํ–ฅ์„ ๋ฐ›๊ฒŒ ๋œ๋‹ค.

  • ๊ธฐ์กด์—๋Š” ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•œ ์ž๋™ํ™” ๋ฐฉ์‹, kickstart ๋“ฑ์„ ๊ฑฐ์ณ์„œ OS ๊ฐ€์ƒํ™” ๋ฐฉ์‹๊นŒ์ง€ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•ด์™”๋‹ค.

1-1. ๊ธฐ์กด์˜ OS ๊ฐ€์ƒํ™” ๋ฐฉ์‹

  • ๊ธฐ์กด์˜ OS ๊ฐ€์ƒํ™” ๊ธฐ์ˆ ์€ ํ•˜์ดํผ๋ฐ”์ด์ € ๊ธฐ์ˆ ์„ ์ด์šฉํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์šด์˜์ฒด์ œ๋ฅผ ํ•˜๋‚˜์˜ ํ˜ธ์ŠคํŠธ์—์„œ ์ƒ์„ฑํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

    • ํ•˜์ด๋ฒ„๋ฐ”์ด์ € : ํ˜ธ์ŠคํŠธ ์ปดํ“จํ„ฐ์—์„œ ๋‹ค์ˆ˜์˜ ์šด์˜์ฒด์ œ๋ฅผ ๋™์‹œ์— ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋…ผ๋ฆฌ์  ํ”Œ๋žซํผ

  • ๊ฐ์ข… ์‹œ์Šคํ…œ ์ž์›์„ ๊ฐ€์ƒํ™”ํ•˜๊ณ , ๋…๋ฆฝ๋œ ๊ณต๊ฐ„์„ ์ƒ์„ฑํ•˜๋Š” ์ž‘์—…์€ ๋ฐ˜๋“œ์‹œ ํ•˜์ดํผ๋ฐ”์ด์ €๋ฅผ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜ ํ˜ธ์ŠคํŠธ์— ๋น„ํ•ด์„œ ์„ฑ๋Šฅ ์†์‹ค์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

  • ๊ฐ€์ƒ๋จธ์‹ ์€ guest OS ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์ปค๋„ ๋“ฑ์„ ์ „๋ถ€ ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์ƒ๋จธ์‹ ์„ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์—ˆ์„ ๋•Œ ์ด๋ฏธ์ง€ ํฌ๊ธฐ๊ฐ€ ๋„ˆ๋ฌด ์ปค์ง€๊ฒŒ ๋˜์–ด์„œ ์ด๋ฏธ์ง€๋ฅผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ฐฐํฌํ•˜๊ธฐ์—๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ์—ˆ๋‹ค.

1-2. ์ปจํ…Œ์ด๋„ˆ์˜ ๋“ฑ์žฅ

  • ๋‹จ์ˆœํžˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋„์šฐ๊ณ  ์‹ถ์—ˆ๋˜ ๊ฒƒ ๋ฟ์ธ๋ฐ, OS ๊นŒ์ง€ ๋„์›Œ์•ผํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๋‚ญ๋น„์ด๋‹ค.

  • ๊ฒฉ๋ฆฌ๋œ CPU, memory, disk, network ๋ฅผ ๊ฐ€์ง„ ๊ณต๊ฐ„์„ ๋งŒ๋“ค๊ณ , ์ด ๊ณต๊ฐ„์—์„œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•ด์„œ ์œ ์ €์—๊ฒŒ ์„œ๋น„์Šค ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ์— ๋Œ€ํ•œ ๊ณ ๋ฏผ๋ถ€ํ„ฐ ์‹œ์ž‘

  • ์ปจํ…Œ์ด๋„ˆ์— ํ•„์š”ํ•œ ์ปค๋„์€ ํ˜ธ์ŠคํŠธ์˜ ์ปค๋„์„ ๊ณต์œ ํ•ด์„œ ์‚ฌ์šฉํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ ์•ˆ์—๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์‹คํ–‰ํŒŒ์ผ๋งŒ ์กด์žฌํ•˜๋„๋ก ํ•œ๋‹ค.

  • ์ด๋ ‡๊ฒŒ ๋˜๋ฉด, ์ด๋ฏธ์ง€๋กœ ๋งŒ๋“ค์—ˆ์„ ๋•Œ, ์ด๋ฏธ์ง€์˜ ์šฉ๋Ÿ‰์€ ๊ฐ€์ƒ๋จธ์‹ ์— ๋น„ํ•ด ํ›จ์”ฌ ์ค„์–ด๋“ค๊ฒŒ ๋œ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ์˜ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•ด๋„ ํ˜ธ์ŠคํŠธ OS ์— ์˜ํ–ฅ์„ ์ „ํ˜€ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค.

  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ๊ณผ ๋ฐฐํฌ๊ฐ€ ํŽธํ•ด์ง„๋‹ค.

  • ์—ฌ๋Ÿฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋…๋ฆฝ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ๋†’์•„์ง„๋‹ค.

2. ์ปจํ…Œ์ด๋„ˆ์˜ ํ”„๋กœ์„ธ์Šค ์ถ”์ƒํ™”

2-1. ๋„์ปค ์„ค์น˜

$ sudo apt-get update && \
sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \
sudo apt-key fingerprint 0EBFCD88 && \
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \
sudo apt-get update && \
sudo apt-get install -y docker-ce && \
sudo usermod -aG docker ubuntu && \
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose && \
sudo chmod +x /usr/local/bin/docker-compose && \
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

2-2. ๋„์ปค ๋ฐ๋ชฌ

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด, docker.sock ์„ ํ†ตํ•ด์„œ ๋„์ปค ๋ฐ๋ชฌ์˜ API ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

  • ๋„์ปค ๋ฐ๋ชฌ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ด๋ฒคํŠธ๋Š” docker events ๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์ถ”๊ฐ€์ ์œผ๋กœ, docker stats ์™€ docker system df ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ๋„์ปค๊ฐ€ ํ˜„์žฌ host ์˜ ์ž์›์„ ์–ผ๋งˆ๋‚˜ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

## docker ๋ช…๋ น์–ด๊ฐ€ dockerd๋ผ๋Š” ๋„์ปค ๋ฐ๋ชฌ๊ณผ docker.sock์„ ์ฐธ์กฐํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ sudo lsof -c docker
dockerd     880 root  txt       REG              202,1 102066512      55737 /usr/bin/dockerd
dockerd     880 root    6u     unix 0xffff953085804400       0t0      18324 /var/run/docker.sock type=STREAM

$ sudo docker run -it ubuntu:latest bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
3ff22d22a855: Pull complete
e7cb79d19722: Pull complete
323d0d660b6a: Pull complete
b7f616834fd0: Pull complete
Digest: sha256:5d1d5407f353843ecf8b16524bc5565aa332e9e6a1297c73a92d3e754b8a636d
Status: Downloaded newer image for ubuntu:latest
root@b7345bbb0ec1:/#

$ sudo docker events
2020-08-16T05:47:10.885807752Z image pull ubuntu:latest (name=ubuntu)
2020-08-16T05:47:11.247030355Z container create b7345bbb0ec1fae4b183c0fe1947a70a3045ba8d75f74876a812a37c40921707 (image=ubuntu:latest, name=awesome_ishizaka)
2020-08-16T05:47:11.249065810Z container attach b7345bbb0ec1fae4b183c0fe1947a70a3045ba8d75f74876a812a37c40921707 (image=ubuntu:latest, name=awesome_ishizaka)
2020-08-16T05:47:11.278151263Z network connect 6b6ce553a425c9392c5a65b8dcd2a57e1665289354b97f430758b745b1dc86a7 (container=b7345bbb0ec1fae4b183c0fe1947a70a3045ba8d75f74876a812a37c40921707, name=bridge, type=bridge)
2020-08-16T05:47:11.529841638Z container start b7345bbb0ec1fae4b183c0fe1947a70a3045ba8d75f74876a812a37c40921707 (image=ubuntu:latest, name=awesome_ishizaka)
2020-08-16T05:47:11.531931004Z container resize b7345bbb0ec1fae4b183c0fe1947a70a3045ba8d75f74876a812a37c40921707 (height=25, image=ubuntu:latest, name=awesome_ishizaka, width=167)

2-3. ๋„์ปค ์ปจํ…Œ์ด๋„ˆ

  • ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋Š” ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์˜ ์ปค๋„์„ ๊ณต์œ ํ•œ๋‹ค.

$ docker run -it ubuntu:latest bash
root@03d7ffae4c3c:/# uname -a
Linux 03d7ffae4c3c 5.3.0-1032-aws #34~18.04.2-Ubuntu SMP Fri Jul 24 10:06:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

$ docker run -it centos:latest bash
[root@6ec49524540c /]# uname -a
Linux 6ec49524540c 5.3.0-1032-aws #34~18.04.2-Ubuntu SMP Fri Jul 24 10:06:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

# ๋งฅOS๋Š” ๋ฆฌ๋ˆ…์Šค๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ๋„ค์ดํ‹ฐ๋ธŒํ•˜๊ฒŒ ๋„์ปค๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์–ด, linuxkit ๊ธฐ๋ฐ˜ ๊ฒฝ๋Ÿ‰ ๊ฐ€์ƒ๋จธ์‹  ์œ„์—์„œ ๋„์ปค๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# ์ดํ›„์˜ ์‹ค์Šต์€ ๋ฆฌ๋ˆ…์Šค์—์„œ ์‹คํ–‰ํ•˜๊ธธ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
โฏ docker run -it centos:latest bash
[root@c3fdb0cda9ac /]# uname -a
Linux c3fdb0cda9ac 4.19.76-linuxkit #1 SMP Tue May 26 11:42:35 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  • ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋ฏธ์ง€์— ๋”ฐ๋ผ์„œ ์‹คํ–‰๋˜๋Š” ํ™˜๊ฒฝ(ํŒŒ์ผ ์‹œ์Šคํ…œ)์ด ๋‹ฌ๋ผ์ง„๋‹ค.

  • ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ์ด์œ ๋Š” chroot ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ด๋ฏธ์ง€(ํŒŒ์ผ์˜ ์ง‘ํ•ฉ)๋ฅผ ๋ฃจํŠธ ํŒŒ์ผ ์‹œ์Šคํ…œ์œผ๋กœ ๊ฐ•์ œ๋กœ ์ธ์‹์‹œ์ผœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

    • ๊ฐ™์€ ํ˜ธ์ŠคํŠธ์˜ ์ปค๋„์„ ์“ฐ๊ณ  ์žˆ์ง€๋งŒ, ์ด๋ฏธ์ง€๋งˆ๋‹ค ๋ฃจํŠธ๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์„ค์ •ํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

# ๋‘˜์˜ ํŒŒ์ผ์‹œ์Šคํ…œ์ด ๋‹ค๋ฅธ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. 

$ docker run -it ubuntu:latest bash
root@03d7ffae4c3c:/# cat /etc/*-release
DISTRIB_ID=Ubuntu

$ docker run -it centos:latest bash
[root@6ec49524540c /]# cat /etc/*-release
CentOS Linux release 8.2.2004 (Core)
  • ์ปจํ…Œ์ด๋„ˆ๋„ ๊ฒฐ๊ตญ์€ ํ”„๋กœ์„ธ์Šค์ด๋‹ค.

## ์šฐ์„ , ํ„ฐ๋ฏธ๋„์˜ PID๋ฅผ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.
$ echo $$
3441
$ sudo ps -ef | grep 3441
ubuntu    3441  3440  0 05:46 pts/2    00:00:00 -bash

## ๊ทธ๋Ÿผ, PID 1์˜ Command๋ฅผ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค.
$ cat /proc/1/comm
systemd
$ pstree -p
systemd(1)โ”€โ”ฌโ”€accounts-daemon(849)โ”€โ”ฌโ”€{accounts-daemon}(859)
...

## ์ด์ œ nginx ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•ด๋ด…๋‹ˆ๋‹ค.
$ docker run --name nginx -d -p 80:80 nginx:latest
$ docker exec -it nginx bash
root@acaf67af191e:/# echo $$
324

## nginx ์ปจํ…Œ์ด๋„ˆ์˜ PID 1 ์˜ Command๋Š” nginx์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
$ sudo docker exec -it acaf67af191e cat /proc/1/comm
nginx
root@acaf67af191e:/# apt-get update
root@acaf67af191e:/# apt-get install psmisc
root@acaf67af191e:/# pstree -p
nginx(1)--nginx(28)

## ํ•˜์ง€๋งŒ ์‚ฌ์‹ค์€ PID 4453 ํ”„๋กœ์„ธ์Šค์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
## ์„œ๋ฒ„์—์„  ๊ทธ์ € nginx ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•˜๋‚˜ ๋„์›Œ์ ธ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
$ cat /var/run/docker/runtime-runc/moby/acaf67af191e5165b98b427b851f9b29a1450d20abd4e2e5287463ccc02c24a0/state.json | jq '.init_process_pid'
4453

$ cat /var/run/docker/runtime-runc/moby/acaf67af191e5165b98b427b851f9b29a1450d20abd4e2e5287463ccc02c24a0/state.json | jq '.namespace_paths'
{
  "NEWCGROUP": "/proc/4453/ns/cgroup",
  "NEWIPC": "/proc/4453/ns/ipc",
  "NEWNET": "/proc/4453/ns/net",
  "NEWNS": "/proc/4453/ns/mnt",
  "NEWPID": "/proc/4453/ns/pid",
  "NEWUSER": "/proc/4453/ns/user",
  "NEWUTS": "/proc/4453/ns/uts"
}

$ ls -Al /proc/1/ns | awk '{ print $9 $10 $11 }'
$ ps -ef | grep 4453
$ ps -auxfg
  • ์ปจํ…Œ์ด๋„ˆ์˜ ์‹คํ–‰ํ™˜๊ฒฝ์„ ์ดํ•ดํ•˜๋ฉด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ›จ์”ฌ ์ˆ˜์›”ํ•ด์ง„๋‹ค.

    • -i : ํ‘œ์ค€ ์ž…๋ ฅ์„ ๋ฐ›๋„๋ก ์„ค์ •ํ•˜๋Š” ๊ฒƒ. ํŒŒ์ดํ”„๋ผ์ด๋‹์ด๋‚˜ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ๋“ฑ์„ ๋งํ•œ๋‹ค.

    • -t : ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„ ์„ค์ •์ด๋‹ค.

    • -it ๊ฐ€ ์กฐํ•ฉ๋˜๋ฉด, ๊ฐ€์ƒ ํ„ฐ๋ฏธ๋„๋กœ ํ‘œ์ค€์ž…๋ ฅ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, -t ํ•˜๋‚˜๋งŒ ์“ฐ์—ฌ์„œ๋Š” ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค.

      • ํ„ฐ๋ฏธ๋„์€ ์žˆ๋Š”๋ฐ ์ž…๋ ฅ์€ ์•ˆ๋˜๋Š” ์ƒํ™ฉ์ด ๋˜๋ฏ€๋กœ!

      • -i๋Š” ํ™€๋กœ ์“ฐ์—ฌ๋„ ํ„ฐ๋ฏธ๋„ ์—†์ด ๋™์ž‘ํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ด๋‹ ๋“ฑ์œผ๋กœ ์ž…๋ ฅ์„ ํ•˜๋Š” ๊ธฐ๋Šฅ์— ์“ฐ์ผ ์ˆ˜ ์žˆ๋‹ค.

    • -d : -i, -t ์™€ ํ•จ๊ป˜ ์“ฐ์ผ ์ˆ˜ ์—†๋‹ค. background ์—์„œ ๋Œ์•„๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— -i ๋กœ ์ž…๋ ฅ์„ ๋Œ€๊ธฐํ• ์ˆ˜๋„, -t ๋กœ ๊ฐ€์ƒํ„ฐ๋ฏธ๋„์„ ์ œ๊ณตํ• ์ˆ˜๋„ ์—†๊ธฐ ๋•Œ๋ฌธ!

  • ๋„์ปค ๋ฐ๋ชฌ์€ ํฌ๊ฒŒ ์ปจํ…Œ์ด๋„ˆ, ์ด๋ฏธ์ง€ ๋นŒ๋“œ, ๊ด€๋ฆฌ, ๊ณต์œ , ์‹คํ–‰, ๋ฐ ์ปจํ…Œ์ด๋„ˆ ์ธ์Šคํ„ด์Šค ๊ด€๋ฆฌ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ํ•œ๋‹ค.

  • ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ž์‹ ํ”„๋กœ์„ธ์Šค๋กœ ์†Œ์œ ํ•œ๋‹ค.

3. ๋„์ปค ์ด๋ฏธ์ง€

  • ์ด๋ฏธ์ง€ : ํŒŒ์ผ๋“ค์˜ ์ง‘ํ•ฉ. ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด ํŒŒ์ผ๋“ค์˜ ์ง‘ํ•ฉ ์œ„์—์„œ ์‹คํ–‰๋œ ํŠน๋ณ„ํ•œ ํ”„๋กœ์„ธ์Šค

  • ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ์›๋ณธ ํ”„๋กœ๊ทธ๋žจ ์ด๋ฏธ์ง€๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋“ฏ์ด, ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์˜ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

  • ๋„์ปค ์ด๋ฏธ์ง€๋Š” [์ €์žฅ์†Œ ์ด๋ฆ„]/[์ด๋ฏธ์ง€ ์ด๋ฆ„]:[ํƒœ๊ทธ] ์˜ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

## Official ์ด๋ฏธ์ง€๋Š” [์ €์žฅ์†Œ ์ด๋ฆ„]์„ ๋ถ™์—ฌ์ฃผ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค.
$ docker pull ubuntu:latest
  • ๋„์ปค๋Š” ์—ฌ๋Ÿฌ ๋ ˆ์ด์–ด๋ฅผ ํ•ฉ์ณ์„œ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ด๋ฃฌ๋‹ค.

    • ๋„์ปค๊ฐ€ ๋ช…๋ น์–ด๋กœ commit, pull, push ๋“ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋ฅผ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ƒ๊ฐํ•ด๋ณธ๋‹ค.

## ubuntu ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, ์–ด๋–ค ์ˆœ์„œ๋กœ ์ง„ํ–‰ํ–ˆ๋Š”์ง€ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค. 
$ docker history ubuntu
 
## ubuntu ์ด๋ฏธ์ง€๋ฅผ ํ™œ์šฉํ•˜์—ฌ commit_test๋ผ๋Š” ํƒœ๊ทธ๋ฅผ ๋ถ™์ธ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
$ docker run -i -t --name commit_test ubuntu:latest

## ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ํŒŒ์ผ์„ ํ•˜๋‚˜ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
root@d7c8c6bf4aa4:/# echo test_first! >> first

## ์ปจํ…Œ์ด๋„ˆ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.
$ docker commit \
 -a "woowahancu" -m "my first commit " \
 commit_test \
 commit_test:first

## ์ปค๋ฐ‹ํ•œ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ docker images
 
## ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ•˜๋‚˜๋” ์ถ”๊ฐ€ํ•œ ํ›„ ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค
$ docker run -i -t --name commit_test2 commit_test:first
 root@07640650696a:/# echo test_second! >> second
 
$ docker commit \
 -a "woowahancu" -m "my second commit " \
 commit_test2 \
 commit_test:second

## ๊ฐ ์ด๋ฏธ์ง€๋“ค์‚ฌ์ด์— ์ถ”๊ฐ€๋œ Layer๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
$ docker inspect ubuntu:latest | jq '.[].RootFS.Layers'
$ docker inspect commit_test:first | jq '.[].RootFS.Layers'
$ docker inspect commit_test:second | jq '.[].RootFS.Layers'
 
$ docker inspect commit_test:first | jq '.[].GraphDriver'
$ docker inspect commit_test:second | jq '.[].GraphDriver'
 
## ์ปค๋ฐ‹ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค. 
$ cat /var/lib/docker/overlay2/[์ปจํ…Œ์ด๋„ˆID]/diff/second

4. ๋„์ปค ๋„คํŠธ์›Œํฌ

  • veth interface

    • ๋žœ์นด๋“œ์— ์—ฐ๊ฒฐ๋œ ์‹ค์ œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐ€์ƒ์œผ๋กœ ์ƒ์„ฑํ•œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.

    • ์ผ๋ฐ˜์ ์ธ ๋„คํŠธ์›Œํฌ์™€๋Š” ๋‹ค๋ฅด๊ฒŒ ํŒจํ‚ท์„ ์ „๋‹ฌ๋ฐ›์œผ๋ฉด, ์ž์‹ ์—๊ฒŒ ์—ฐ๊ฒฐ๋œ ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํŒจํ‚ท์„ ๋ณด๋‚ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ์Œ์œผ๋กœ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค.

  • NET namespace

    • ๋ฆฌ๋ˆ…์Šค์˜ ๊ฒฉ๋ฆฌ ๊ธฐ์ˆ ์ธ namespace ์ค‘ ๋„คํŠธ์›Œํฌ์™€ ๊ด€๋ จ๋œ ๋ถ€๋ถ„์„ ๋งํ•œ๋‹ค.

    • ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐ๊ฐ ๋‹ค๋ฅธ namespace ์— ํ• ๋‹นํ•จ์œผ๋กœ์จ ์„œ๋กœ๊ฐ€ ์„œ๋กœ๋ฅผ ๋ชจ๋ฅด๊ฒŒ๋” ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๋„์ปค ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ

    • ์œ„์˜ ๋‘ ๊ฐ€์ง€ ๊ฐœ๋…์„ ์ด์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค.

    • mac ์ด๋‚˜ window ๋Š” veth interface ๊ฐ€ VM ์•ˆ์— ๊ฐ์ถฐ์ ธ์žˆ์–ด์„œ ํ™•์ธํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.

  1. ์ปจํ…Œ์ด๋„ˆ๋Š” namespace ๋กœ ๊ฒฉ๋ฆฌ๋˜๊ณ , ํ†ต์‹ ์„ ์œ„ํ•œ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค eth0์„ ํ• ๋‹น๋ฐ›๋Š”๋‹ค. (ํŒŒ๋ž€๋ถ€๋ถ„)

  2. ํ˜ธ์ŠคํŠธOS ์˜ veth interface๊ฐ€ ์ƒ์„ฑ๋˜๊ณ , ์ปจํ…Œ์ด๋„ˆ ๋‚ด์˜ eth0 ๊ณผ ์—ฐ๊ฒฐ๋œ๋‹ค.

  3. host ์˜ veth interface ๋Š” docker0๋ผ๋Š” ๋‹ค๋ฅธ veth interface ์™€ ์—ฐ๊ฒฐ๋œ๋‹ค.

    1. docker 0 ๋Š” ๋„์ปค ์‹คํ–‰์‹œ์— ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฐ€์ƒ์˜ ๋ธŒ๋ฆฟ์ง€์ด๋‹ค.

    2. ๋ชจ๋“  ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด ๋ธŒ๋ฆฟ์ง€๋ฅผ ํ†ตํ•ด์„œ ์„œ๋กœ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

## ๋„์ปค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด 3๊ฐ€์ง€ ํ˜•ํƒœ์˜ network๊ฐ€ ์ƒ๊น€์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ sudo docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
6b6ce553a425        bridge              bridge              local
81a18bc9cc40        host                host                local
576b0223f9cf        none                null                local

## bridge ๋„คํŠธ์›Œํฌ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด 172.17.0.0/16 ๋Œ€์—ญ์„ ํ• ๋‹นํ–ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ docker network inspect bridge
[
    {
        "Name": "bridge",
        "Id": "6b6ce553a425c9392c5a65b8dcd2a57e1665289354b97f430758b745b1dc86a7",
        ...
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"

## ๊ทธ๋ฆฌ๊ณ  172.17.0.0/16 ๋Œ€์—ญ์€ docker0๋กœ ๋งคํ•‘๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
$ ip route
default via 192.168.0.193 dev eth0 proto dhcp src 192.168.0.207 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1

## docker0๋Š” veth interface์™€ ๋งคํ•‘๋œ ๋ธŒ๋ฆฟ์ง€์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ brctl show docker0
bridge name	bridge id		STP enabled	interfaces
docker0		8000.024238d4b0f5	no		vethc8e309f

$ ip link ls
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default
66: vethc8e309f@if65: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default
  • docker-compose ๋กœ ๋„์šฐ๋ฉด, ๋‹ค๋ฅธ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ์„ ๊ฐ€์ง„๋‹ค. compose ๋กœ ๋ฌถ์€ ๋ฒ”์œ„์— ๋งž์ถฐ์„œ ๋ธŒ๋ฆฟ์ง€๋ฅผ ํ•˜๋‚˜ ๋” ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ!

    • ์„œ๋กœ ๊ณต์œ ํ•˜๋Š” ๋ธŒ๋ฆฟ์ง€๊ฐ€ ๋‹ค๋ฅด๋ฏ€๋กœ, docker-compose ๋กœ ๋„์šด ์ปจํ…Œ์ด๋„ˆ์™€ ์ผ๋ฐ˜ ์ปจํ…Œ์ด๋„ˆ๋Š” ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์—†๋‹ค.

$ git clone https://github.com/woowacourse/service-practice.git
$ cd lb 
$ docker build -t node-server .
$ docker-compose -p practice up -d

$ sudo docker container inspect practice_lb_1 | jq '.[].NetworkSettings.Networks.practice_default.Gateway'
"172.18.0.1"

$ ip route
172.18.0.0/16 dev br-754310d33f5c proto kernel scope link src 172.18.0.1

$ ip link ls
4: br-754310d33f5c: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
   link/ether 02:42:cd:76:d1:f1 brd ff:ff:ff:ff:ff:ff
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ๋Š” ์™ธ๋ถ€์™€ ํ†ต์‹ ์ด ๋ถˆ๊ฐ€ํ•˜๋‹ค. ํฌํŠธํฌ์›Œ๋”ฉ์„ ์„ค์ •ํ•˜์—ฌ ์™ธ๋ถ€์— ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๊ณต๊ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

# ํฌํŠธํฌ์›Œ๋”ฉ ์„ค์ •๊ณผ ํ•จ๊ป˜ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
$ docker container run -d -p 8081:80 nginx
16cd67c48e5721a6b666192b8960875c720168bf6c5e3ed2138fb04c492447c6

$ sudo docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
16cd67c48e57        nginx               "/docker-entrypoint.โ€ฆ"   4 seconds ago       Up 3 seconds        0.0.0.0:8081->80/tcp   trusting_bhabha

# Host์˜ 8081ํฌํŠธ๊ฐ€ listen ์ž„์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
$ sudo netstat -nlp | grep 8081
tcp6       0      0 :::8081                 :::*                    LISTEN      10009/docker-proxy

# docker-proxy ๋ผ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•ด๋‹น ํฌํŠธ๋ฅผ listen ํ•˜๊ณ  ์žˆ์Œ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 
# docker-proxy๋Š” ๋“ค์–ด์˜จ ์š”์ฒญ์„ ํ•ด๋‹นํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋กœ ๋„˜๊ธฐ๋Š” ์—ญํ• ๋งŒ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. 
# ์ปจํ…Œ์ด๋„ˆ์— ํฌํŠธํฌ์›Œ๋”ฉ์ด๋‚˜ expose๋ฅผ ์„ค์ •ํ–ˆ์„ ๊ฒฝ์šฐ ๊ฐ™์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

$ iptables -t nat -L -n
Chain DOCKER (2 references)
target     prot opt source               destination
RETURN     all  --  0.0.0.0/0            0.0.0.0/0
RETURN     all  --  0.0.0.0/0            0.0.0.0/0
RETURN     all  --  0.0.0.0/0            0.0.0.0/0
RETURN     all  --  0.0.0.0/0            0.0.0.0/0
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8081 to:172.17.0.2:80

# ๋ณด์‹œ๋‹ค์‹œํ”ผ ๋ชจ๋“  ์š”์ฒญ์„ DOCKER Chain ์œผ๋กœ ๋„˜๊ธฐ๊ณ , DOCKER Chain ์—์„œ๋Š” DNAT๋ฅผ ํ†ตํ•ด ํฌํŠธํฌ์›Œ๋”ฉ์„ ํ•ด์ฃผ๊ณ  ์žˆ์Œ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
# ์ด iptables ๋ฃฐ์€ docker daemon์ด ์ž๋™์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • docker container ์˜ ๋„คํŠธ์›Œํฌ ๋ชจ๋“œ๋Š” bridge, host, container, none ๋“ฑ ์ด 4๊ฐœ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

5. ๋„์ปค ๋ณผ๋ฅจ

  • ๋„์ปค ์ด๋ฏธ์ง€๋กœ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, ์ด๋ฏธ์ง€๋Š” ์ฝ๊ธฐ ์ „์šฉ์ด ๋œ๋‹ค.

  • ์ปจํ…Œ์ด๋„ˆ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋งŒ ๋ณ„๋„ ์ €์žฅํ•ด์„œ ๊ฐ ์ปจํ…Œ์ด๋„ˆ์˜ ์ •๋ณด๋ฅผ ๋ณด์กดํ•œ๋‹ค.

  • ํ•˜์ง€๋งŒ mysql ๊ณผ ๊ฐ™์ด ์ปจํ…Œ์ด๋„ˆ ๊ณ„์ธต์— ์ €์žฅ๋˜์–ด์žˆ๋˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •๋ณด๋ฅผ ์‚ญ์ œํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๋ฐ์ดํ„ฐ๋ฅผ ์˜์†์ ์ธ ๋ฐ์ดํ„ฐ๋กœ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘, ๋ณผ๋ฅจ์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ์•ˆ์ด ์žˆ๋‹ค.

  • -v ์˜ต์…˜ : ํ˜ธ์ŠคํŠธ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋งˆ์šดํŠธํ•˜๋‚˜. ๋”ฐ๋ผ์„œ ์ปจํ…Œ์ด๋„ˆ์˜ ํ•ด๋‹น ๊ฒฝ๋กœ์— ํŒŒ์ผ์ด ์žˆ์—ˆ๋‹ค๋ฉด, ํ˜ธ์ŠคํŠธ์˜ ๋ณผ๋ฅจ์œผ๋กœ ๋ฎ์–ด ์”Œ์›Œ์ง„๋‹ค.

$ docker run -d \
--name wordpressdb_hostvolume \
-e MYSQL_ROOT_PASSWORD=password \
-e MYSQL_DATABAS=wordpress \
-v /home/wordpress_db:/var/lib/mysql \
mysql:5.7

$ docker run -d \
--name wordpress_hostvolume \
-e MYSQL_ROOT_PASSWORD=password \
--link wordpressdb_hostvolume:mysql \
-p 80 \
wordpress

$ ls /home/wordpress_db
$ docker stop wordpressdb_hostvolume wordpress_hostvolume
$ docker rm wordpressdb_hostvolume wordpress_hostvolume

์ด๋ ‡๊ฒŒ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์•„๋‹Œ ์™ธ๋ถ€์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ์ปจํ…Œ์ด๋„ˆ๋Š” ๊ทธ ๋ฐ์ดํ„ฐ๋กœ ๋™์ž‘ํ•˜๋„๋ก stateless ํ•˜๊ฒŒ ์„ค๊ณ„ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ์ž์ฒด๋Š” ์ƒํƒœ๊ฐ€ ์—†๊ณ , ์ƒํƒœ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ์ œ๊ณต๋ฐ›๋„๋ก ํ•œ๋‹ค.

์„ ์ฐธ๊ณ ํ•œ๋‹ค.

๐Ÿฐ
snowflake server ์ด์Šˆ
์ „๊ฐ€์ƒํ™”์™€ ๋ฐ˜๊ฐ€์ƒํ™”
์ฐธ๊ณ 
ํ”๋“ค๋ฆฌ๋Š” ๋„์ปค(Docker)์˜ ์œ„์ƒ - OCI์™€ CRI ์ค‘์‹ฌ์œผ๋กœ ์žฌํŽธ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ ์ƒํƒœ๊ณ„
Switch ์˜ ๋™์ž‘๋ฐฉ์‹
์ฐธ๊ณ 
https://joont92.github.io/temp/docker-network.png