LILDB

🐒 chap3. λͺ©μ  파일

⭐ 3.1 ABI βœ… ABI와 APIλž€? ABI : μ‘μš©ν”„λ‘œκ·Έλž¨ 이진 μΈν„°νŽ˜μ΄μŠ€ API : μ‘μš©ν”„λ‘œκ·Έλž¨ μΈν„°νŽ˜μ΄μŠ€ API : 두 μ†Œν”„νŠΈμ›¨μ–΄ μ»΄ν¬λ„ŒνŠΈκ°€ μ„œλ‘œλ₯Ό μ‚¬μš©ν•˜κ±°λ‚˜ μ„œλ‘œ κΈ°λŠ₯을 μ œκ³΅ν•  λ•Œ μˆ˜μš©ν•˜λŠ” κ·œμΉ™μ΄λ‚˜ ν‘œμ€€ ( μš΄μ˜μ²΄μ œμ™€ μ‘μš©ν”„λ‘œκ·Έλž¨ μ‚¬μ΄μ˜ 톡신에 μ‚¬μš©λ˜λŠ” μ–Έμ–΄λ‚˜ λ©”μ‹œμ§€ ν˜•μ‹) 라이브러리λ₯Ό μ‚¬μš©ν•˜κΈ° μœ„κΈ°μœ„ν•΄μ„œλŠ” APIλ₯Ό ...

🐒 chap2. μ†ŒμŠ€ μ½”λ“œμ—μ„œ 이진 파일둜

⭐ 2.1 ν‘œμ€€ 컴파일 νŒŒμ΄ν”„λΌμΈ λ„€ 가지 μš”μ†Œλ‘œ κ΅¬μ„±λœ νŒŒμ΄ν”„λΌμΈ μ „μ²˜λ¦¬κΈ° 컴파일러 μ–΄μ…ˆλΈ”λŸ¬ 링컀 νŒŒμ΄ν”„λΌμΈ λ‚΄λΆ€μ˜ 각 μ»΄ν¬λ„ŒνŠΈλŠ” 이전 μš”μ†Œλ‘œλΆ€ν„° νŠΉμ •ν•œ μž…λ ₯값을 λ°›κ³ , λ‹€μŒ μ»΄ν¬λ„ŒνŠΈλ₯Ό μœ„ν•œ νŠΉμ • 결괏값을 μƒμ„±ν•©λ‹ˆλ‹€. μ»΄ν¬λ„ŒνŠΈ 쀑 μ–΄λŠ μž‘μ€ ν•œ 단계라도 μ‹€νŒ¨ν•œλ‹€λ©΄ μ΄λŠ” 컴파일 μ‹€νŒ¨ λ˜λŠ” 링크 μ‹€νŒ¨...

🐹 chap3. λžŒλ‹€ ν‘œν˜„μ‹

3.1 λžŒλ‹€λž€ 무엇인가? : λ©”μ„œλ“œλ‘œ 전달할 수 μžˆλŠ” 읡λͺ… ν•¨μˆ˜λ₯Ό λ‹¨μˆœν™”ν•œ 것 읡λͺ… λ³΄ν†΅μ˜ λ©”μ„œλ“œμ™€ 달리 이름이 μ—†μœΌλ―€λ‘œ 읡λͺ…이라 ν‘œν˜„ν•œλ‹€. ν•¨μˆ˜ λžŒλ‹€λŠ” λ©”μ„œλ“œμ²˜λŸΌ νŠΉμ • ν΄λž˜μŠ€μ— μ’…μ†λ˜μ§€ μ•ŠμœΌλ―€λ‘œ ν•¨μˆ˜λΌκ³  λΆ€λ₯Έλ‹€. ν•˜μ§€λ§Œ λ©”μ„œλ“œμ²˜λŸΌ νŒŒλΌλ―Έν„° 리슀트, λ°”λ””, λ°˜ν™˜ ν˜•μ‹, κ°€λŠ₯ν•œ μ˜ˆμ™Έ 리슀트λ₯Ό ν¬ν•¨ν•œλ‹€...

🦊 chap3. λžŒλ‹€ ν‘œν˜„μ‹

3.1 λžŒλ‹€λž€ 무엇인가? λžŒλ‹€ ν‘œν˜„μ‹μ€ λ©”μ„œλ“œλ‘œ 전달할 수 μžˆλŠ” 읡λͺ… ν•¨μˆ˜λ₯Ό λ‹¨μˆœν™”ν•œ 것이닀. 이름은 μ—†μ§€λ§Œ, νŒŒλΌλ―Έν„° 리슀트, λ°”λ””, λ°˜ν™˜ ν˜•μ‹, λ°œμƒν•  수 μžˆλŠ” μ˜ˆμ™Έ λ¦¬μŠ€νŠΈλŠ” κ°€μ§ˆ 수 μžˆλ‹€. 읡λͺ… : 이름이 μ—†κΈ° λ•Œλ¬Έμ— 읡λͺ…이닀. ν•¨μˆ˜ : νŠΉμ • ν΄λž˜μŠ€μ— μ’…μ†λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— λ©”μ„œλ“œκ°€ μ•„λ‹Œ ν•¨μˆ˜λΌκ³  λΆ€λ₯Έλ‹€. 전달 : λžŒλ‹€ ν‘œν˜„μ‹μ„ ...

🐹 chap2. λ™μž‘ νŒŒλΌλ―Έν„°ν™” μ½”λ“œ μ „λ‹¬ν•˜κΈ°

λ™μž‘ νŒŒλΌλ―Έν„°ν™”(behavior parameterization) 아직은 μ–΄λ–»κ²Œ μ‹€ν–‰ν•  것인지 κ²°μ •ν•˜μ§€ μ•Šμ€ μ½”λ“œ 블둝 이 μ½”λ“œ λΈ”λ‘μ˜ 싀행은 λ‚˜μ€‘μœΌλ‘œ 미뀄지고, 결과적으둜 μ½”λ“œ 블둝에 따라 λ©”μ„œλ“œμ˜ λ™μž‘μ΄ νŒŒλΌλ―Έν„°ν™”λ¨ 2.1 λ³€ν™”ν•˜λŠ” μš”κ΅¬μ‚¬ν•­μ— λŒ€μ‘ν•˜κΈ° 사과 농μž₯의 재고 νŒŒμ•…μ„ μœ„ν•œ 리슀트 필터링 κΈ°λŠ₯을 μ˜ˆμ‹œλ‘œ ν•œ...

🦊 chap2. λ™μž‘ νŒŒλΌλ―Έν„°ν™” μ½”λ“œ μ „λ‹¬ν•˜κΈ°

λ³€ν™”ν•˜λŠ” μš”κ΅¬μ‚¬ν•­μ€ μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄λ§μ—μ„œ ν”Όν•  수 μ—†λŠ” λ¬Έμ œμ΄λ‹€. μ‹œμ‹œκ°κ° λ³€ν•˜λŠ” μ‚¬μš©μž μš”κ΅¬μ‚¬ν•­μ— μ–΄λ–»κ²Œ λŒ€μ‘ν•΄μ•Ό ν• κΉŒ? 2.1 λ³€ν™”ν•˜λŠ” μš”κ΅¬μ‚¬ν•­μ— λŒ€μ‘ν•˜κΈ° 2.1.1 첫 번째 μ‹œλ„ : 녹색 사과 필터링 사과 색을 μ •μ˜ν•˜λŠ” λ‹€μŒ enum 이 μ‘΄μž¬ν•œλ‹€κ³  ν•˜μž enum Color { RED, GREEN } public static Lis...

🐹 3. Binary Search & Bitwise Operations

05. λΉ„νŠΈ μ‘°μž‘ [ λΉ„νŠΈ μ‘°μž‘μ„ ν•  λ•Œ μ•Œμ•„μ•Ό ν•  사싀듀과 νŠΈλ¦­λ“€ ] (0s: λͺ¨λ“  λΉ„νŠΈκ°€ 0인 κ°’, 1s: λͺ¨λ“  λΉ„νŠΈκ°€ 1인 κ°’) [ 2의 λ³΄μˆ˜μ™€ 음수 ] μ»΄ν“¨ν„°λŠ” 일반적으둜 μ •μˆ˜λ₯Ό μ €μž₯ν•  λ•Œ 2의 보수 ν˜•νƒœλ‘œ μ €μž₯ν•œλ‹€. μ–‘μˆ˜μ˜ 경우 λ¬Έμ œκ°€ μ—†μ§€λ§Œ, 음수λ₯Ό ν‘œν˜„ν•  λ•ŒλŠ” μ ˆλŒ“κ°’μ— λΆ€ν˜ΈλΉ„νŠΈ(sign bit)λ₯Ό 1둜 μ„ΈνŒ…ν•œ λ’€ 2의 보수λ₯Ό...

🐒 3. Binary Search & Bitwise Operations

πŸ’‘ μΆ”κ°€ 지식 이진 탐색/이진 검색 λΉ„νŠΈ μ—°μ‚° 🫧 트리 : ν•˜λ‚˜μ˜ 루트 μ½”λ“œλ₯Ό 가진닀 루트 λ…Έλ“œλŠ” 0개 μ΄μƒμ˜ μžμ‹ λ…Έλ“œλ₯Ό κ°–κ³  μžˆλ‹€ νŠΈλ¦¬μ—λŠ” 사이클 μ‘΄μž¬ν•  수 μ—†λ‹€ λ…Έλ“œλ“€μ€ νŠΉμ • μˆœμ„œλ‘œ λ‚˜μ—΄λ  μˆ˜λ„ 있고 그럴 수 없을 μˆ˜λ„ μžˆλ‹€ ...