λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
tech epilogue

[회고] 쏙쏙 λ“€μ–΄μ˜€λŠ” ν•¨μˆ˜ν˜• μ½”λ”© 뢁 μŠ€ν„°λ””

by rami_ 2025. 8. 26.

 

 

https://github.com/The-survivor-is-strong/coding-study-of-death

 

GitHub - The-survivor-is-strong/coding-study-of-death: πŸ“š πŸ”₯

πŸ“š πŸ”₯. Contribute to The-survivor-is-strong/coding-study-of-death development by creating an account on GitHub.

github.com

 

이 책을 끝낼 무렡, κ°‘μžκΈ° 일이 λ°”λΉ μ§€λ©΄μ„œ 회고λ₯Ό μ“°μ§€ λͺ»ν•˜κ³  μ§€λ‚˜μ³€λ‹€. λ‹€μ‹œ κ·Έλ•Œμ˜ 기얡을 더듬어 νšŒκ³ ν•˜κ³ μž ν•œλ‹€.

 

μ±… μŠ€ν„°λ””μ˜ 2번째 책은 '쏙쏙 λ“€μ–΄μ˜€λŠ” ν•¨μˆ˜ν˜• μ½”λ”©'으둜 μ •ν•΄μ‘Œλ‹€. μ§€κΈˆ κ°œλ°œμ„ ν•˜κ³  μžˆλ‹€λ©΄, λˆ„κ΅¬λΌλ„ ν•œ λ²ˆμ―€μ€ 듀어봀을 ν‚€μ›Œλ“œμ΄λ‹€. 이 책은 κ°œλ°œμ„ κ³΅λΆ€ν•΄μ˜€λ©° μ΅μˆ™ν•˜κ²Œ λ“€μ–΄μ™”λ˜, μš°λ¦¬μ—κ²Œ μΉœμˆ™ν•œ 쒋은 μ½”λ“œ μž‘μ„± κ·œμΉ™λ“€μ„ 닀룬닀. μ™œ κ·Έλ ‡κ²Œ ν•΄μ•Ό ν•˜λŠ”μ§€ μ•Œκ³ λŠ” μžˆμ§€λ§Œ, 또 κ·Έλ ‡κ²Œ ν•˜κ³  μžˆμ§€λ§Œ κ·Έ 원리에 λŒ€ν•΄ 깊게 탐ꡬ할 μ‹œκ°„μ€ μ—†μ—ˆλŠ”λ° 이 책을 보며 그런 μ‹œκ°„λ“€μ„ κ°€μ§ˆ 수 μžˆμ—ˆλ‹€.

이 μ±…μ—μ„œ κ°€μž₯ μ€‘μš”ν•œ ν‚€μ›Œλ“œλ₯Ό 꼽으라면 μ•‘μ…˜, 데이터, 계산이닀. 데이터에 λŒ€ν•΄μ„œλŠ” 이미 잘 μ•Œκ³  μžˆλ“―μ΄ λΆˆλ³€μ„±μ„ κ°€μ§€λ©° μ§λ ¬ν™”λ˜μ–΄ 있으며, 계산은 μˆœμˆ˜ν•¨μˆ˜, μ•‘μ…˜μ€ μˆœμˆ˜ν•˜μ§€ μ•Šμ€ ν•¨μˆ˜μ΄λ‹€.

 

일반적으둜 μ•‘μ…˜μ„ μ“°μ§€ μ•Šκ³  μ•‘μ…˜μ„ κ³„μ‚°μœΌλ‘œ λ°”κΏ€ 수 μžˆλ‹€λ©΄ κ·Έλ ‡κ²Œ ν•˜λŠ” 것이 μ’‹λ‹€κ³  μ±…μ—μ„œλŠ” μ•ˆλ‚΄ν•˜κ³  μžˆλ‹€. μ΄λŠ” μš°λ¦¬κ°€ μˆ±ν•˜κ²Œ λ“€μ–΄μ™”λ˜ "ν•¨μˆ˜κ°€ ν•˜λ‚˜μ˜ 역할을 ν•˜κ²Œ ν•˜κ³ , 항상 같은 input을 λ„£μœΌλ©΄ 같은 output을 λ„μΆœν•΄λ‚΄λŠ” 것이 μ’‹λ‹€"λŠ” μ–˜κΈ°μ΄λ‹€.

μ΄λŸ¬ν•œ κ°œλ…λ“€μ„ μ‹€μ œλ‘œ μ μš©ν•΄λ³΄λ©΄μ„œ μ•‘μ…˜ μ†μ—μ„œ 계산을 λΆ„λ¦¬ν•˜λŠ” μ—°μŠ΅μ„ ν–ˆμ—ˆλŠ”λ°, ν”νžˆ μ„œλ²„μ— apiλ₯Ό μš”μ²­ν•˜λŠ” μ½”λ“œ 이후 값을 받아와 데이터λ₯Ό κ°€κ³΅ν•˜λŠ” λ‘œμ§μ„ μž‘μ„±ν•˜κ²Œ λœλ‹€. μ΄λ•Œ μžμ—°μŠ€λŸ½κ²Œ ν•˜λ‚˜μ˜ ν•¨μˆ˜μ— 이듀을 λ„£κ²Œ λ˜λŠ”λ°, 이건 μ•‘μ…˜μ΄λ©° λ‚˜λˆ„μ–΄ κ΄€λ¦¬ν•˜λŠ” 것이 μ’‹λ‹€λŠ” 것을 ν•œ 번 더 μ²΄κ°ν•˜κ²Œ λ˜μ—ˆλ‹€.

 

이와 μ—°κ΄€ν•˜μ—¬ κ³„μΈ΅ν˜• μ„€κ³„μ—μ„œλŠ” 졜근 FSDκ°€ μ™œ ν”„λ‘ νŠΈ κ°œλ°œμžλ“€μ˜ λ§Žμ€ 관심을 λ°›κ²Œ λ˜μ—ˆλŠ”μ§€ μ•Œ 수 μžˆμ—ˆλ‹€. κ³„μΈ΅ν˜• μ„€κ³„μ˜ λͺ©μ μ€ ν…ŒμŠ€νŠΈν•˜κ³  μœ μ§€λ³΄μˆ˜ν•˜κΈ° μ‰½κ²Œ λ§Œλ“€κΈ° μœ„ν•¨μΈλ° 4κ°€μ§€μ˜ νŒ¨ν„΄μ— λŒ€ν•΄ μ„€λͺ…ν•˜κ³  μžˆλ‹€. 이 쀑 직접 κ΅¬ν˜„ νŒ¨ν„΄μ€ λΉ„μŠ·ν•œ 좔상화 계측에 μžˆλŠ” ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν•˜λ©°, 같은 계측에 μžˆλŠ” ν•¨μˆ˜λŠ” 같은 λͺ©μ μ„ κ°€μ Έμ•Ό ν•œλ‹€κ³  ν•œλ‹€. μ „μ—­, 계측, ν•¨μˆ˜ 쀌 레벨둜 λ‚˜λˆ„μ–΄ κ΄€λ¦¬ν•˜λŠ”λ° FSDμ—μ„œ pages, widgets, features, entities, shared κ³„μΈ΅μœΌλ‘œ λ‚˜λˆ„λŠ” 것과 기본적인 생각은 κ°™μ•˜λ‹€. κ²°κ΅­μ—λŠ” 기쑴에 ν”„λ‘œκ·Έλž˜λ°μ—μ„œ μ€‘μš”ν•˜λ‹€λŠ” 것듀이 ν”„λ‘ νŠΈμ—”λ“œμ˜ μ‹œκ°μœΌλ‘œ μž¬ν•΄μ„λ˜κ³  μžˆλ‹€λŠ” 생각이 λ“€μ—ˆλ‹€.

 

ν•¨μˆ˜ν˜• 도ꡬ 체이닝을 μ‚¬μš©ν•  λ•Œ filter와 map methodλ₯Ό μ‚¬μš©ν•˜λ©΄ μƒˆλ‘œμš΄ 배열을 λ§Œλ“€μ–΄ λΉ„νš¨μœ¨μ μ΄λΌκ³  생각할 수 μžˆμ§€λ§Œ, λ§Œλ“€μ–΄μ§„ 배열이 ν•„μš” 없을 λ•Œ κ°€λΉ„μ§€ 컬렉터가 λΉ λ₯΄κ²Œ μ²˜λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— λ¬Έμ œκ°€ λ˜μ§€ μ•ŠλŠ”λ‹€λŠ” 이야기가 λͺ…μ‹œλ˜μ–΄ μžˆλ‹€. 처음 코딩을 μ ‘ν–ˆμ„ λ•Œ "map, filterλŠ” μƒˆλ‘œμš΄ 배열을 returnν•˜λ‹ˆ κ·Έ 배열을 μ‚¬μš©ν•˜μ§€ μ•Šμ„ 거라면 차라리 for문을 μ‚¬μš©ν•˜λŠ” 것이 λ‚«λ‹€"λΌλŠ” 이야기λ₯Ό λ³Έ 적이 μžˆμ—ˆλŠ”λ°, μ΄μ œλŠ” κ°€λΉ„μ§€ 컬렉터가 λ°œμ „ν•˜μ—¬ 이 뢀뢄을 μ‹ κ²½ μ“°μ§€ μ•Šμ•„λ„ 되며 체이닝을 톡해 λͺ…μ‹œμ μœΌλ‘œ ν•¨μˆ˜μ˜ μ‹€ν–‰ 단계듀을 λͺ…ν™•νžˆ ν•  수 μžˆλ‹€λŠ” 뢀뢄이 ν₯λ―Έλ‘œμ› λ‹€.

 

μŠ€ν„°λ””λ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ μš°λ¦¬κ°€ 자주 λ“£λ˜ μ½”λ”©μ˜ κ·œμΉ™λ“€μ΄ μ—¬κΈ°μ„œλΆ€ν„° λΉ„λ‘―λœ κ²ƒμž„μ„ κΉ¨λ‹¬μ•˜λ‹€λŠ” 점을 νŒ€μ›λ“€κ³Ό 많이 κ³΅κ°ν–ˆλ‹€. μ΄ν›„λ‘œλ„ 계속 μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ‹€ 보면 '이 뢀뢄은 λ”°λ‘œ ν•¨μˆ˜λ‘œ λ‚˜λˆ μ•Όμ§€', '암묡적인 μΈμžκ°’μ„ μ‚¬μš©ν•˜κΈ°λ³΄λ‹€ μΈμžκ°’μ„ ν•¨μˆ˜ μ‹€ν–‰ μ‹œ λ°›μ•„ returnλ˜λŠ” 값이 μ˜ˆμΈ‘λ˜λ„λ‘ ν•΄μ•Όμ§€' λ“± μ’€ 더 ꡬ체적으둜 μ™œ μ΄λ ‡κ²Œ ν•΄μ•Ό ν•˜λŠ”μ§€μ— λŒ€ν•΄ λ‚˜ μžμ‹ μ—κ²Œ λ‚©λ“μ‹œν‚¬ 수 μžˆμ—ˆλ‹€.

 

이 책을 톡해 ν‰μ†Œ λ‹Ήμ—°ν•˜κ²Œ μ—¬κ²Όλ˜ μ½”λ”© νŒ¨ν„΄λ“€μ˜ 이둠적 배경을 깊이 이해할 수 μžˆμ—ˆκ³ , μ•žμœΌλ‘œ 더 μ˜μ‹μ μœΌλ‘œ ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ° 원칙을 μ μš©ν•΄ λ‚˜κ°ˆ 수 μžˆμ„ 것 κ°™λ‹€.