22.10.11 TIL🌬

μ‘°λ°°Β·2022λ…„ 10μ›” 11일
0

TIL

λͺ©λ‘ 보기
17/30
post-thumbnail

λ‚˜λŠ” 였늘 μ•…λ§ˆμ™€ μ‹Έμ›Œ μ΄κ²Όμ§€λ§Œ μ†ŒκΈˆλΉ΅μ— μ‘Œλ‹€πŸ₯²

μ»΄ν“¨ν„°μ‹œμŠ€ν…œ (CS:App)

컴파일 μ‹œμŠ€ν…œμ΄ μ–΄λ–»κ²Œ λ™μž‘ν•˜λŠ”μ§€ μ΄ν•΄ν•˜λŠ”κ²Œ μ€‘μš”!

ν”„λ‘œκ·Έλž˜λ¨ΈλŠ” μ–΄λ–»κ²Œ 컴파일 μ‹œμŠ€ν…œμ΄ λ™μž‘ν•˜λŠ”μ§€ 이해해야 ν•˜λŠ” μ€‘μš”ν•œ μ΄μœ κ°€ μžˆλ‹€.

1. ν”„λ‘œκ·Έλž¨ μ„±λŠ₯ μ΅œμ ν™”λ₯Ό μœ„ν•΄μ„œ

μ΅œμ‹ μ˜ μ»΄νŒŒμΌλŸ¬λ“€μ€ λ³΅μž‘ν•œ λ„κ΅¬λ‘œ μš°μˆ˜ν•œ μ½”λ“œλ₯Ό 생성해쀀닀.
ν”„λ‘œκ·Έλž˜λ¨Έλ‘œμ„œ 효율적인 μ½”λ“œλ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄μ„œ 컴파일러의 λ‚΄λΆ€ λ™μž‘μ„ μ•Œ ν•„μš”λŠ” μ—†μ§€λ§Œ
μ½”λ“œλ₯Ό μž‘μ„±ν• λ•Œ μ˜¬λ°”λ₯Έ νŒλ‹¨μ„ μœ„ν•΄μ„œ 기계어 μˆ˜μ€€ μ½”λ“œμ— λŒ€ν•œ 기본적인 이해가 ν•„μš”ν•˜κ³ ,
μ»΄νŒŒμΌλŸ¬κ°€ μ–΄λ–»κ²Œ μ½”λ“œλ“€μ„ 기계어 μ½”λ“œλ‘œ λ²ˆμ—­ν•˜λŠ”μ§€ μ•Œ ν•„μš”κ°€ μžˆλ‹€.
예λ₯Ό λ“€μ–΄

1. switch 문은 if-else문을 μ—°μ†ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 것보닀 μ–Έμ œ 효율적일까?
2. ν•¨μˆ˜ ν˜ΈμΆœμ‹œ λ°œμƒν•˜λŠ” μ˜€λ²„ν—€λ“œλŠ” μ–΄λ–»κ²Œ λ˜λŠ”κ°€?
3. while λ£¨ν”„λŠ” for 루프보닀 더 νš¨μœ¨μ μΈκ°€?

μš°λ¦¬λŠ” κ²°κ΅­ ν”„λ‘œκ·Έλž¨μ„ μ„±λŠ₯을 높이기 μœ„ν•΄μ„œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” 것이기 λ•Œλ¬Έμ— 일련의 λ™μž‘λ“€μ„ νŒŒμ•…ν•  ν•„μš”κ°€ μžˆλ‹€.

2. 링크 μ—λŸ¬ μ΄ν•΄ν•˜κΈ°

κ²½ν—˜ν•΄λ³΄μ§€ λͺ»ν–ˆμ§€λ§Œ ν”„λ‘œκ·Έλž˜λ¨Έμ— μžˆμ–΄ κ°€μž₯ λ‹Ήν˜ΉμŠ€λŸ¬μš΄ ν”„λ‘œκ·Έλž˜λ° μ—λŸ¬λŠ” 링컀의 λ™μž‘κ³Ό κ΄€λ ¨λ˜μ–΄ 있고, 큰 규λͺ¨μ˜ μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ„ λΉŒλ“œν•˜λ €λŠ” κ²½μš°μ— λ”μš± κ·Έλ ‡λ‹€κ³  ν•œλ‹€.
예λ₯Ό λ“€μ–΄

1. 링컀가 μ–΄λ–€ μ°Έμ‘°λ₯Ό ν’€μ–΄λ‚Ό 수 μ—†λ‹€κ³  ν•  λ•ŒλŠ” 무엇을 μ˜λ―Έν•˜λŠ”κ°€?
2. 정적 λ³€μˆ˜μ™€ μ „μ—­λ³€μˆ˜μ˜ μ°¨μ΄λŠ” 무엇인가?
3. 만일 각기 λ‹€λ₯Έ νŒŒμΌμ— λ™μΌν•œ 이름이 두 개의 μ „μ—­λ³€μˆ˜λ₯Ό μ •μ˜ν•œλ‹€λ©΄ 무슨 일이 μΌμ–΄λ‚˜λŠ”κ°€?
4. 정적 λΌμ΄λΈŒλŸ¬λ¦¬μ™€ 동적 라이브러리의 μ°¨μ΄λŠ” 무엇인가?

ν”„λ‘ νŠΈμ—”λ“œμ˜ ν˜„μ—…μ—μ„œμ˜ κΈ°μˆ μŠ€νƒμ„ 보면 λ¦¬μ•‘νŠΈλ₯Ό μ‚¬μš©ν• λ•Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό 보톡 μ‚¬μš©ν•œλ‹€.
νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” λ³€μˆ˜λ‚˜ λ§€κ°œλ³€μˆ˜λ“€μ˜ νƒ€μž…μ„ κ΄€λ¦¬ν•˜κΈ° λ•Œλ¬Έμ— 큰 규λͺ¨μ˜ ν”„λ‘œμ νŠΈ 관리에 μžˆμ–΄ μœ μš©ν•˜λ‹€.
λ‚΄κ°€ 처음 λ§ν¬μ—λŸ¬λ₯Ό μ ‘ν–ˆμ„λ•ŒλŠ” '이게 뭘까?'λΌλŠ” 생각이 λ“€μ—ˆμ§€λ§Œ μ΄μ œλŠ” λ³€μˆ˜μ— μ–΄λ–€ 값을 μ—°κ²°ν•˜κΈ° λ•Œλ¬Έ 'linker'라고 μ΄ν•΄ν–ˆλ‹€.

3. λ³΄μ•ˆ 약점 ν”Όν•˜κΈ°

인터넷과 λ„€νŠΈμ›Œν¬κ°€ λ“±μž₯ν•˜κ³  μ˜€λž«λ™μ•ˆ 버퍼 μ˜€λ²„ν”Œλ‘œμš° 취약성이 λ³΄μ•ˆ μ•½μ μ˜ μ£Όμš” μ›μΈμœΌλ‘œ μ„€λͺ…λ˜μ—ˆλ‹€.
버퍼 μ˜€λ²„ν”Œλ‘œμš° 취약성은 ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ΄ μ‹ λ’°ν•  수 μ—†λŠ” κ³³μ—μ„œ νšλ“ν•œ λ°μ΄ν„°μ˜ μ–‘κ³Ό ν˜•νƒœκ°€ μœ„ν—˜ν•  수 μžˆλ‹€λŠ” 것을 μΈμ§€ν•˜μ§€ λͺ»ν•˜κΈ° λ•Œλ¬Έμ— 생긴닀.
μ•ˆμ „ν•œ ν”„λ‘œκ·Έλž˜λ°μ„ λ°°μš°λŠ” μ²«λ‹¨κ³„λŠ” ν”„λ‘œκ·Έλž¨ μŠ€νƒμ— 데이터와 μ œμ–΄ 정보가 μ €μž₯λ˜λŠ” 방식 λ•Œλ¬Έμ— μƒκ²¨λ‚˜λŠ” 영ν–₯을 μ΄ν•΄ν•˜λŠ” 것이닀.

였늘의 μΆ”μ²œκ³‘ 🎢


λ‘œμ΄ν‚΄ ν‚¬λ§λ²ŒμŠ€ 🎡
였늘 λ‚˜μ˜¨ λ”°λˆλ”°λˆν•œ μ˜μƒμ΄κ³ , 벌써 3λ²ˆμ΄λ‚˜ λ°˜λ³΅ν•΄μ„œ λ“€μ—ˆλ‹€.
λ‚œ 특히 또 μ˜€ν•΄μ˜μ˜ Ostμ˜€λ˜ 'μ–΄μ©Œλ©΄λ‚˜'κ°€ 제일 쒋은 것 κ°™λ‹€πŸ‘

λ‚΄μΌμ˜ λ‚˜μ—κ²ŒπŸ₯²

  • μ–΄λ €μ› λ˜ 문제 λ‹€μ‹œ ν’€μ–΄ 보기
  • Cs:app 1μž₯ λ‹€ 읽기
profile
κΉƒν—ˆλΈŒλ‘œ μ΄μ „ν–ˆμŠ΅λ‹ˆλ‹€ -> https://chobae.github.io/

2개의 λŒ“κΈ€

comment-user-thumbnail
2022λ…„ 10μ›” 12일

μ†ŒκΈˆλΉ΅ν•œν…ŒλŠ” μ Έμ£ΌλŠ”κ²Œ λ§žλ‹€

1개의 λ‹΅κΈ€