✏️ TIL

[ TIL ] 맀일 TIL μ“°μž.. ν•œ 쀄이라도 μ“°μž.. / 24λ…„ 4μ›” 11일

EarthSea 2024. 4. 11. 23:35

 

좜처 : ν•€ν„°λ ˆμŠ€νŠΈ

 

 

κΎΈλ²…κΎΈλ²… μ‘°λŠ” ν•œμ΄ μžˆλ”λΌλ„.. 맀일 맀일 TIL을 μ“°κ² λ‹€ λ‹€μ§ν•˜λ©°..

λ‹€μ‹œ μžλ¦¬μ— μ•‰μ•˜μŠ΅λ‹ˆλ‹€! 

 

저희 μ‘° νŒ€μž₯λ‹˜μ΄ 곡뢀방법을 κ°€λ₯΄μ³μ£Όμ…¨λŠ”λ°μš”! ν•œλ§ˆλ””λ‘œ 정리할 수 μžˆμ–΄μ•Ό μ•„λŠ” 것이라고 ν•˜λ”λΌκ΅¬μš”!!

κ·Έλž˜μ„œ νŒ€μž₯λ‹˜μ˜ 곡뢀법을 λ³Έλ°›μ•„ μ €μ˜ TIL은 λ‚΄κ°€ 였늘 μ•„λŠ” 것을 μ •μ˜λ‚΄λ €λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€!

 

 

 

λ™μ κ³„νšλ²• ( Dynamic Programming )

동적 κ³„νšλ²•μ€ 같은 것을 λ°˜λ³΅ν•˜μ—¬ κ³„μ‚°ν•˜μ§€ μ•ŠλŠ” κ³„μ‚°λ²•μž…λ‹ˆλ‹€. λ°˜λ³΅λ˜λŠ” 수λ₯Ό λ©”λͺ¨λ¦¬μ— ν• λ‹Ήν•˜μ—¬ λ°˜λ³΅λ˜λŠ” 수λ₯Ό ν˜ΈμΆœν•  λ•ŒλŠ” λ©”λͺ¨λ¦¬μ—μ„œ ν˜ΈμΆœν•˜μ—¬ μ“°λŠ” λ°©λ²•μž…λ‹ˆλ‹€! λŒ€ν‘œμ μΈ 문제 μ˜ˆμ‹œλ‘œ ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ΄ μžˆμŠ΅λ‹ˆλ‹€. 점화식같이 μΈμ ‘ν•œ ν•­λ“€ μ‚¬μ΄μ˜ 관계식이 λ§Œλ“€ 수 μžˆλŠ” 식듀이 λ‹€μ΄λ‚˜λ―Ή ν”„λ‘œκ·Έλž˜λ°μœΌλ‘œ ν’€λ¦½λ‹ˆλ‹€! 이제 μ½”λ”©ν…ŒμŠ€νŠΈμ˜ 문제λ₯Ό 읽고, 점화식이 보인닀면 무쑰건 DP둜 ν’€λ €κ΅¬μš”!

 

동적 κ³„νšλ²•μ—λŠ” νƒ‘λ‹€μš΄κ³Ό 보텀업 방식이 μžˆμŠ΅λ‹ˆλ‹€. νƒ‘λ‹€μš΄ 방식은 말 κ·ΈλŒ€λ‘œ μœ„μ—μ„œ μ•„λž˜λ‘œ λ‚΄λ €μ˜€λŠ” κ²ƒμ΄λ―€λ‘œ 큰 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μž‘μ€ 문제λ₯Ό ν˜ΈμΆœν•œλ‹€κ³  μƒκ°ν•˜μ‹œλ©΄ 될 것 κ°™μ•„μš”! μž¬κ·€ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. λ°˜λŒ€λ‘œ 보텀업 방식 λ˜ν•œ 말 κ·Έλž˜λ„ μ•„λž˜μ—μ„œ μœ„λ‘œ μ˜¬λΌκ°€λŠ” κ²ƒμž…λ‹ˆλ‹€. μž‘μ€ λ¬Έμ œλΆ€ν„° ν•΄κ²°ν•˜μ—¬ 큰 λ¬Έμ œμ— λ„λ‹¬ν•˜λŠ” 것이죠. λ°˜λ³΅λ¬Έμ„ μ‚¬μš©ν•©λ‹ˆλ‹€. 보톡 보텀업 방식을 μ’€ 더 μΆ”μ²œν•˜λ”λΌκ΅¬μš”! 탑 λ‹€μš΄ 방식은 μŠ€νƒμ˜ 크기가 ν•œμ •μ μ΄λΌ μ œν•œμ΄ μžˆμ„ 수 μžˆλ‹€κ³  ν•©λ‹ˆλ‹€!

 

 

ARC

ARCλŠ” Automatic Reference Counting의 μ€„μž„λ§λ‘œ Reference Counting을 μžλ™μœΌλ‘œ κ΄€λ¦¬ν•΄μ£ΌλŠ” μŠ€μœ„ν”„νŠΈμ˜ λ©”λͺ¨λ¦¬ 관리 λͺ¨λΈμž…λ‹ˆλ‹€. μ—¬κΈ°μ„œ Reference Counting은 자기 μžμ‹ μ„ 가리킀고 μžˆλŠ” 참쑰의 κ°œμˆ˜μ΄λ‹€. 이 RC이 0이 λœλ‹€λ©΄ λ©”λͺ¨λ¦¬μ—μ„œ μ‚­μ œλ©λ‹ˆλ‹€. μ‚¬μš©ν•˜μ§€ μ•ŠλŠ”λ°, λ©”λͺ¨λ¦¬μ— λ‚¨μ•„μžˆλŠ” 상황을 λ©”λͺ¨λ¦¬ λˆ„μˆ˜λΌκ³  ν•˜λŠ”λ°μš”. μŠ€μœ„ν”„νŠΈμ—μ„œλŠ” κ°•ν•œ μ°Έμ‘° 사이클일 λ•Œ, 무쑰건 λ©”λͺ¨λ¦¬ λˆ„μˆ˜κ°€ λ°œμƒν•˜κ²Œ λ©λ‹ˆλ‹€. 이λ₯Ό ν•΄κ²°ν•  수 μžˆλŠ” 방법은 두 κ°€μ§€ μž…λ‹ˆλ‹€. weak λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” μ•½ν•œ 참쑰와 unowned μ΄λΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” λΉ„μ†Œμœ  μ°Έμ‘°μž…λ‹ˆλ‹€. 두 κ°€μ§€ λ°©λ²•μ˜ 차이점은 μ˜΅μ…”λ„ νƒ€μž…μ΄ 뢈렀올 수 μžˆλƒ μ—†λƒμ˜ μ°¨μ΄μ—μš”. 곡톡점은 κ°•ν•œ μ°Έμ‘° 사이클이 μžˆλ‹€κ³  해도 weakμ΄λ‚˜ unowned둜 μ„ μ–Έλœ λ³€μˆ˜κ°€ nil둜 할당이 λœλ‹€λ©΄ 이λ₯Ό μ°Έμ‘°ν•˜κ³  μžˆλŠ” 것도 nil둜 μžλ™ 할당이 λ˜μ–΄μ„œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό λ°©μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

 

 

 

Github APIλ₯Ό μ‚¬μš©ν•œ repository 정보 κ°€μ Έμ˜€κΈ°

ν™”μš”μΌκ³Ό μˆ˜μš”μΌμ— repository μ •λ³΄λŠ” κ°€μ Έμ™”μœΌλ‚˜ 이λ₯Ό cell에 좜λ ₯ν•˜λŠ” 것을 ν•˜μ§€ λͺ»ν•΄μ„œ μ• λ₯Ό λ¨Ήκ³  μžˆμ—ˆλŠ”λ°μš”. λ”± μ•Œμ•„λ‚΄μ—ˆμŠ΅λ‹ˆλ‹€. completion: @escaping (Result<GithubUser, Error> -> Void) 둜 μ •μ˜ν•˜μ—¬ ν•¨μˆ˜μ˜ 호좜 λΆ€λΆ„μ—μ„œ ν•΄λ‹Ή ν΄λ‘œμ €λ₯Ό μ‚¬μš©ν•˜μ—¬ 값을 μ‚¬μš©ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

 

였늘 νŠœν…¨λ‹˜μ˜ μžμ—°μŠ€λŸ¬μš΄ 라이브 코딩을 보고 μžˆμžλ‹ˆ 마음이 μ›…μž₯ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. 주말엔 κΉƒν—™ λ ˆνΌμ§€ν† λ¦¬λ₯Ό λ‹€μ‹œ λ§Œλ“€μ–΄λ΄μ•Όκ² κ΅°μš”!! 

 

 

 

그럼 μ˜€λŠ˜λ„ κ΅³λ°€!!!!!!!!!!!!!!