λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • Dev Blog

CS31

[GoF λ””μžμΈ νŒ¨ν„΄] - νŒ©ν† λ¦¬ λ©”μ„œλ“œ νŒ¨ν„΄ λͺ¨λ“  μ½”λ“œλŠ” Swift둜 μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.  μƒμ„± νŒ¨ν„΄μƒμ„± νŒ¨ν„΄μ΄λž€ GoF λ””μžμΈ νŒ¨ν„΄ 쀑 κ°μ²΄λ₯Ό μƒμ„±ν•˜λŠ” 절차λ₯Ό μΆ”μƒν™”ν•˜λŠ” 5가지 λ””μžμΈ νŒ¨ν„΄μ„ λΆ„λ₯˜ν•œ 것을 μΌμ»«λŠ” μš©μ–΄μ΄λ‹€. 생성 νŒ¨ν„΄μ€ ν˜„λŒ€μ˜ 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄ 상속보닀 μ»΄ν¬μ§€μ…˜μ„ μ‚¬μš©ν•˜λŠ” λ°©ν–₯으둜 μ§„ν™”ν•˜λ©΄μ„œ λ”μš± μ€‘μš”ν•΄μ§€κ³  μžˆλ‹€. (μ‹€μ œλ‘œ κ΅¬κΈ€μ—μ„œ κ°œλ°œν•œ ν”„λ‘œκ·Έλž˜λ° 언어인 Golang 은 μ•„μ˜ˆ μƒμ†μ΄λž€ κ°œλ…μ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.)  πŸ“Œ 상속과 μ»΄ν¬μ§€μ…˜ μƒμ†μ€ Animal - Cat, Dog ν˜Ήμ€ Man - Son, Husband, BoyFriend와 같이 IS-A 관계일 λ•Œ 객체의 κΈ°λŠ₯을 μ½”λ“œμ˜ 쀑볡 없이 ν™•μž₯μ‹œν‚¬ 수 μžˆλ‹€.μ»΄ν¬μ§€μ…˜μ€ Computer - Monitor, Keyboard, Mouse와 같이 HAS-A 관계일 λ•Œ 각각의 객체듀을 μ‘°ν•©.. 2024. 5. 28.
[GoF λ””μžμΈ νŒ¨ν„΄] - λ””μžμΈ νŒ¨ν„΄μ΄λž€? λͺ¨λ“  μ½”λ“œλŠ” Swift둜 μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ””μžμΈ νŒ¨ν„΄μ΄λž€?λ””μžμΈ νŒ¨ν„΄μ΄λž€ μ†Œν”„νŠΈμ›¨μ–΄ 섀계에 μžˆμ–΄μ„œ 반볡적으둜 λ°œμƒν•˜λŠ” λ¬Έμ œλ“€μ„ ν•΄κ²°ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” μΌμ’…μ˜ ν…œν”Œλ¦Ώ ν˜Ήμ€ κ°€μ΄λ“œλΌμΈμ΄λ‹€. ν”νžˆ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄κ³Ό 많이 ν˜Όλ™ν•΄μ„œ μš©μ–΄λ₯Ό μ‚¬μš©ν•˜κ³€ ν•œλ‹€.μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 전체적인 ꡬ쑰에 μ΄ˆμ μ„ 맞좘 νŒ¨ν„΄μ΄λΌλ©΄ λ””μžμΈ νŒ¨ν„΄μ€ 객체듀 κ°„μ˜ 관계에 μ΄ˆμ μ„ 맞좘 νŒ¨ν„΄μ΄λΌλŠ” 차이점이 μ‘΄μž¬ν•œλ‹€. GoF λ””μžμΈ νŒ¨ν„΄ν”νžˆ μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ—μ„œ 'λ””μžμΈ νŒ¨ν„΄'은 λŒ€λΆ€λΆ„ GoF(Gang of Four) λ””μžμΈ νŒ¨ν„΄μ„ μ˜λ―Έν•œλ‹€. 이듀은 각각의 λͺ©μ μ— 따라 생성 νŒ¨ν„΄, ꡬ쑰 νŒ¨ν„΄, ν–‰μœ„ νŒ¨ν„΄μœΌλ‘œ λΆ„λ₯˜ν•˜κ³  총 23개의 νŒ¨ν„΄μœΌλ‘œ κ΅¬μ²΄ν™”ν•˜μ˜€λ‹€.   μ΄λ ‡κ²Œλ‚˜ λ§Žμ€ λ””μžμΈ νŒ¨ν„΄μ„ κ³΅λΆ€ν•˜κ³  μ‚¬μš©ν•˜λŠ” μ΄μœ κ°€ λ¬΄μ—‡μΌκΉŒ? μ²«μ§Έ, μžμ—°μŠ€λŸ½κ²Œ 객.. 2024. 5. 28.
[CS] ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„ ν•΄λ‹Ή μ£Όμ œλŠ” κ°€ν†¨λ¦­λŒ€ν•™κ΅ GDSCμ—μ„œ μ§„ν–‰λ˜λŠ” ν…Œμ½”ν†‘ μ„Έμ…˜μ˜ 주제둜 ν™œμš©λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν”„λ‘œκ·Έλž˜λ° νŒ¨λŸ¬λ‹€μž„νŠΉμ • 관점과 μ ‘κ·Ό 방식에 λ”°λ₯Έ 개발자의 μ½”λ”© 방식 μ–΄λŠ 뢄야이건 관점에 λ”°λ₯Έ μ—¬λŸ¬ λ°©λ²•λ‘ μ΄λ‚˜ 체계듀이 λΆ„λͺ…νžˆ μ‘΄μž¬ν•œλ‹€. λ‹Ήμ—°νžˆ ν”„λ‘œκ·Έλž˜λ° λΆ„μ•Όμ—μ„œλ„ "μ–΄λ–»κ²Œ ν”„λ‘œκ·Έλž˜λ°μ„ ν•  것인가?" λΌλŠ” μ§ˆλ¬Έμ— λŒ€ν•œ μ—¬λŸ¬ μ˜κ²¬λ“€μ΄ λͺ¨μ—¬ 이둠적 ν‹€(νŒ¨λŸ¬λ‹€μž„)이 μƒκ²¨λ‚˜κ³  κ°œλ°œμžλ“€μ€ νŒ¨λŸ¬λ‹€μž„μ„ λ°”νƒ•μœΌλ‘œ ν”„λ‘œκ·Έλž˜λ°ν•˜λ €κ³  λ…Έλ ₯ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€. 즉, ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜λŠ” κ²ƒμ—λ§Œ λͺ©μ μ„±μ„ 두지 말고 ν”„λ‘œκ·Έλž¨ μ‹€ν–‰, κ·Έ μ΄μƒμ˜ 것을 μœ„ν•΄ νŒ¨λŸ¬λ‹€μž„μ„ λ°”νƒ•μœΌλ‘œ ν”„λ‘œκ·Έλž˜λ°ν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€λŠ” μ˜λ―Έμ΄λ‹€. ν”„λ‘œκ·Έλž¨ μ‹€ν–‰, κ·Έ μ΄μƒμ˜ 것? μŠ€νŒŒκ²Œν‹° μ½”λ“œλž€ μ •μƒμ μœΌλ‘œ λ™μž‘ν•˜μ§€λ§Œ, μ‚¬λžŒμ΄ μ½”λ“œλ₯Ό μ½μœΌλ©΄μ„œ κ·Έ μ½”λ“œμ˜ μž‘λ™μ„ νŒŒμ•…ν•˜κΈ°λŠ” μ–΄λ €μš΄ μ½”λ“œ.. 2023. 10. 19.
[운영체제] RAID μ‰½κ²Œ λ°°μš°λŠ” 운영체제 κ΅μž¬μ— λŒ€ν•œ TILμž…λ‹ˆλ‹€. RAID (Redundant Array of Independent Disks)데이터λ₯Ό μ €μž₯μž₯μΉ˜μ— 보관할 λ•ŒλŠ” 백업을 ν•΄μ•Όλ§Œ ν•˜λŠ”λ°, μ€‘μš”ν•œ 데이터λ₯Ό μˆ˜μ‹œλ‘œ 백업을 ν•΄μ•Ό ν•  λ•Œ μˆ˜λ™μœΌλ‘œ ν•˜λ©΄ 맀우 번거둭기 λ•Œλ¬Έμ— λ°±μ—… μ „μš© μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‚¬μš©ν•˜κΈ°λ„ ν•œλ‹€. RAIDλŠ” 볡수 λ°°μ—΄ 독립 λ””μŠ€ν¬λ‘œ λ²ˆμ—­λ˜λŠ”λ° μžλ™μœΌλ‘œ λ°±μ—…ν•˜κ³  μž₯μ• κ°€ λ°œμƒν•˜λ©΄ 이λ₯Ό λ³΅κ΅¬ν•˜λŠ” μ‹œμŠ€ν…œμ΄λ‹€. RAID의 μ›λ¦¬λŠ” ν•˜λ‚˜μ˜ 원본 λ””μŠ€ν¬μ™€ 같은 크기의 λ°±μ—… λ””μŠ€ν¬μ— 같은 λ‚΄μš©μ„ λ™μ‹œμ— μ €μž₯ν•˜κ³ , ν•œ λ””μŠ€ν¬κ°€ κ³ μž₯ 났을 λ•Œ λ‹€λ₯Έ λ””μŠ€ν¬λ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό λ³΅κ΅¬ν•˜λŠ” κ²ƒμœΌλ‘œ 미러링이라고 ν•œλ‹€. λ˜ν•œ, RAIDμ—λŠ” μ—¬λŸ¬ λ””μŠ€ν¬μ— 데이터λ₯Ό μͺΌκ°œμ–΄ μ €μž₯ν•˜μ—¬ λ°μ΄ν„°μ˜ μž…μΆœλ ₯ 속도λ₯Ό λ†’μ΄λŠ” 방식도 μžˆλŠ”λ° μ΄λŸ¬ν•œ λ°©.. 2023. 6. 7.