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

CS31

[GoF λ””μžμΈ νŒ¨ν„΄] - νŒ©ν† λ¦¬ λ©”μ„œλ“œ νŒ¨ν„΄ λͺ¨λ“  μ½”λ“œλŠ” Swift둜 μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.  μƒμ„± νŒ¨ν„΄μƒμ„± νŒ¨ν„΄μ΄λž€ GoF λ””μžμΈ νŒ¨ν„΄ 쀑 κ°μ²΄λ₯Ό μƒμ„±ν•˜λŠ” 절차λ₯Ό μΆ”μƒν™”ν•˜λŠ” 5가지 λ””μžμΈ νŒ¨ν„΄μ„ λΆ„λ₯˜ν•œ 것을 μΌμ»«λŠ” μš©μ–΄μ΄λ‹€. 생성 νŒ¨ν„΄μ€ ν˜„λŒ€μ˜ 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ΄ 상속보닀 μ»΄ν¬μ§€μ…˜μ„ μ‚¬μš©ν•˜λŠ” λ°©ν–₯으둜 μ§„ν™”ν•˜λ©΄μ„œ λ”μš± μ€‘μš”ν•΄μ§€κ³  μžˆλ‹€. (μ‹€μ œλ‘œ κ΅¬κΈ€μ—μ„œ κ°œλ°œν•œ ν”„λ‘œκ·Έλž˜λ° 언어인 Golang 은 μ•„μ˜ˆ μƒμ†μ΄λž€ κ°œλ…μ΄ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.)  πŸ“Œ 상속과 μ»΄ν¬μ§€μ…˜ μƒμ†μ€ Animal - Cat, Dog ν˜Ήμ€ Man - Son, Husband, BoyFriend와 같이 IS-A 관계일 λ•Œ 객체의 κΈ°λŠ₯을 μ½”λ“œμ˜ 쀑볡 없이 ν™•μž₯μ‹œν‚¬ 수 μžˆλ‹€.μ»΄ν¬μ§€μ…˜μ€ Computer - Monitor, Keyboard, Mouse와 같이 HAS-A 관계일 λ•Œ 각각의 객체듀을 μ‘°ν•©.. 2024. 11. 25.
[GoF λ””μžμΈ νŒ¨ν„΄] - λ””μžμΈ νŒ¨ν„΄μ΄λž€? λͺ¨λ“  μ½”λ“œλŠ” Swift둜 μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€. λ””μžμΈ νŒ¨ν„΄μ΄λž€?λ””μžμΈ νŒ¨ν„΄μ΄λž€ μ†Œν”„νŠΈμ›¨μ–΄ 섀계에 μžˆμ–΄μ„œ 반볡적으둜 λ°œμƒν•˜λŠ” λ¬Έμ œλ“€μ„ ν•΄κ²°ν•˜λŠ” 데 μ‚¬μš©λ˜λŠ” μΌμ’…μ˜ ν…œν”Œλ¦Ώ ν˜Ήμ€ κ°€μ΄λ“œλΌμΈμ΄λ‹€. ν”νžˆ μ•„ν‚€ν…μ²˜ νŒ¨ν„΄κ³Ό 많이 ν˜Όλ™ν•΄μ„œ μš©μ–΄λ₯Ό μ‚¬μš©ν•˜κ³€ ν•œλ‹€.μ•„ν‚€ν…μ²˜ νŒ¨ν„΄μ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 전체적인 ꡬ쑰에 μ΄ˆμ μ„ 맞좘 νŒ¨ν„΄μ΄λΌλ©΄ λ””μžμΈ νŒ¨ν„΄μ€ 객체듀 κ°„μ˜ 관계에 μ΄ˆμ μ„ 맞좘 νŒ¨ν„΄μ΄λΌλŠ” 차이점이 μ‘΄μž¬ν•œλ‹€. GoF λ””μžμΈ νŒ¨ν„΄ν”νžˆ μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ—μ„œ 'λ””μžμΈ νŒ¨ν„΄'은 λŒ€λΆ€λΆ„ GoF(Gang of Four) λ””μžμΈ νŒ¨ν„΄μ„ μ˜λ―Έν•œλ‹€. 이듀은 각각의 λͺ©μ μ— 따라 생성 νŒ¨ν„΄, ꡬ쑰 νŒ¨ν„΄, ν–‰μœ„ νŒ¨ν„΄μœΌλ‘œ λΆ„λ₯˜ν•˜κ³  총 23개의 νŒ¨ν„΄μœΌλ‘œ κ΅¬μ²΄ν™”ν•˜μ˜€λ‹€.   μ΄λ ‡κ²Œλ‚˜ λ§Žμ€ λ””μžμΈ νŒ¨ν„΄μ„ κ³΅λΆ€ν•˜κ³  μ‚¬μš©ν•˜λŠ” μ΄μœ κ°€ λ¬΄μ—‡μΌκΉŒ? μ²«μ§Έ, μžμ—°μŠ€λŸ½κ²Œ 객.. 2024. 11. 22.
[HTTP] - HTTP λ©”μ„œλ“œμ˜ ν™œμš© μΈν”„λŸ° κ°•μ˜ 쀑 λͺ¨λ“  개발자λ₯Ό μœ„ν•œ HTTP μ›Ή κΈ°λ³Έ μ§€μ‹μ΄λΌλŠ” κ°•μ˜μ— λŒ€ν•œ TILμž…λ‹ˆλ‹€.HTTP λ©”μ„œλ“œμ˜ ν™œμš©ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œμ˜ 데이터 전솑 ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ μ„œλ²„λ‘œμ˜ 데이터 전솑데이터 전달 방식은 크게 2가지가 μžˆλ‹€. 첫 λ²ˆμ§Έλ‘œλŠ”, GET λ©”μ„œλ“œλ₯Ό μ΄μš©ν•΄μ„œ 쿼리 νŒŒλΌλ―Έν„°λ₯Ό ν†΅ν•œ 데이터 전솑이닀. 주둜 κ²€μƒ‰μ–΄λ‚˜ μ •λ ¬ ν•„ν„° κΈ°λŠ₯을 μš”κ΅¬ν•  λ•Œ μ‚¬μš©λœλ‹€. 두 λ²ˆμ§Έλ‘œλŠ”, μš”μ²­ λ©”μ‹œμ§€μ˜ λ°”λ””λ₯Ό ν†΅ν•œ 데이터 전솑이닀. POSTλ‚˜ PUT λ©”μ„œλ“œκ°€ 이에 μ‚¬μš©λœλ‹€. 주둜 νšŒμ› κ°€μž…, μƒν’ˆ μ£Όλ¬Έ, λ¦¬μ†ŒμŠ€ 등둝, 변경등을 μš”κ΅¬ν•  λ•Œ μ‚¬μš©λœλ‹€.  πŸ’‘μš”μ²­ λ©”μ‹œμ§€λ‘œ 데이터λ₯Ό μ „λ‹¬ν•˜λŠ” 4가지 상황 μ •μ  데이터 μ‘°νšŒμ΄λ―Έμ§€ νŒŒμΌμ΄λ‚˜ 정적 ν…μŠ€νŠΈ λ¬Έμ„œλ“±μ„ μ‘°νšŒν•˜λŠ” 상황일 λ•Œλ₯Ό 정적 데이터 쑰회라고 ν•œλ‹€. μ΄λŸ¬ν•œ 정적 λ°μ΄ν„°λŠ” 일반적.. 2024. 11. 20.
[HTTP] - HTTP 헀더 μΈν”„λŸ° κ°•μ˜ 쀑 λͺ¨λ“  개발자λ₯Ό μœ„ν•œ HTTP μ›Ή κΈ°λ³Έ μ§€μ‹μ΄λΌλŠ” κ°•μ˜μ— λŒ€ν•œ TILμž…λ‹ˆλ‹€. HTTP 헀더 1 - 일반 헀더 RFC 7230~7235의 HTTP λ©”μ‹œμ§€  ν‘œν˜„μ΄λž€ μš”μ²­μ΄λ‚˜ μ‘λ‹΅μ—μ„œ μ‹€μ œ 데이터λ₯Ό μ˜λ―Έν•œλ‹€. μ΄λŸ¬ν•œ ν‘œν˜„ λ°μ΄ν„°λŠ” νŽ˜μ΄λ‘œλ“œ, 즉 λ©”μ‹œμ§€ λ³Έλ¬Έ(Body)을 톡해 μ „λ‹¬λœλ‹€. μ΄λ•Œ, ν΄λΌμ΄μ–ΈνŠΈμ™€ μ„œλ²„λŠ” 각각의 μˆ˜μ‹ λœ HTTP λ©”μ‹œμ§€μ—μ„œ ν‘œν˜„ 데이터듀을 해석할 수 μžˆμ–΄μ•Ό ν•˜λŠ”λ° μ΄λŸ¬ν•œ 정보듀은 ν‘œν˜„ ν—€λ”μ—μ„œ μ œκ³΅ν•œλ‹€. λ‹€μŒμ€ HTTP λ©”μ‹œμ§€μ˜ ν‘œν˜„ ν—€λ”μ˜ μ˜ˆμ‹œλ“€μ΄λ‹€. Content-Typeν‘œν˜„ λ°μ΄ν„°μ˜ ν˜•μ‹μ— λŒ€ν•œ 정보λ₯Ό λ‹΄κ³  μžˆλŠ” 헀더이닀. λ‹€μŒμ€ μ‚¬μš© μ˜ˆμ‹œμ΄λ‹€.1. Content-Type: text/html;charset=UTF-8=> ν‘œν˜„ λ°μ΄ν„°μ˜ ν˜•μ‹μ΄ HTML νŒŒμΌμ΄λΌλŠ” 것을 .. 2024. 11. 13.