[πŸ‘‘] κΈ°μˆ λ©΄μ ‘ μ˜ˆμƒμ§ˆλ¬Έ - 기타

또띠·2023λ…„ 12μ›” 8일
0

1. Base64 μΈμ½”λ”©μ΄λž€ λ¬΄μ—‡μΈκ°€μš”?

Base64 인코딩은 데이터λ₯Ό ν…μŠ€νŠΈλ‘œ λ³€ν™˜ν•˜λŠ” 인코딩 방법 쀑 ν•˜λ‚˜λ‘œ, 이 방법은 이진 데이터λ₯Ό ν…μŠ€νŠΈλ‘œ λ³€ν™˜ν•˜μ—¬ λ‹€μ–‘ν•œ μš©λ„λ‘œ μ‚¬μš©λ©λ‹ˆλ‹€.

κΈ°λ³Έμ μœΌλ‘œλŠ” 8λΉ„νŠΈ 이진 데이터λ₯Ό 6λΉ„νŠΈμ”© λ‚˜λˆ„μ–΄ ν•΄λ‹Ή 값에 λŒ€μ‘λ˜λŠ” 문자둜 λ³€ν™˜ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ λ³€ν™˜λœ ν…μŠ€νŠΈ λ°μ΄ν„°λŠ” ASCII 문자둜 이루어져 μžˆμ–΄μ„œ 일반적인 ν…μŠ€νŠΈ ν˜•μ‹μœΌλ‘œ 전솑 및 μ €μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ˜ˆμ‹œλ‘œ "Hello, World!"μ΄λΌλŠ” λ¬Έμžμ—΄μ„ Base64둜 μΈμ½”λ”©ν•˜λ©΄?

SGVsbG8sIFdvcmxkIQ==

μ΄λ ‡κ²Œ μΈμ½”λ”©λœ λ°μ΄ν„°λŠ” μ•ˆμ „ν•˜κ²Œ μ „μ†‘ν•˜κ±°λ‚˜ μ €μž₯ν•  수 있으며, 주둜 이메일 첨뢀 파일, 이미지 데이터, 인증 정보와 같은 κ³³μ—μ„œ μ‚¬μš©λ©λ‹ˆλ‹€. λ””μ½”λ”© μ‹œμ—λŠ” μΈμ½”λ”©λœ λ¬Έμžμ—΄μ„ λ‹€μ‹œ 이진 λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ μ‚¬μš©ν•©λ‹ˆλ‹€.

2. μ‚¬μš©μž νŒ¨μŠ€μ›Œλ“œλ₯Ό μ „μ†‘ν•˜κ³  λ³΄κ΄€ν•˜λŠ” 방법을 μ„€λͺ…ν•΄μ£Όμ‹€ 수 μžˆμ„κΉŒμš”?

[ νŒ¨μŠ€μ›Œλ“œ 전솑 2가지 방법 ]

  1. HTTPS μ‚¬μš©: νŒ¨μŠ€μ›Œλ“œ 전솑 μ‹œμ—λŠ” 항상 HTTPSλ₯Ό μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μ•”ν˜Έν™”ν•΄μ•Ό ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ€‘κ°„μž 곡격을 λ°©μ§€ν•˜κ³  λ°μ΄ν„°μ˜ μ•ˆμ „μ„±μ„ 보μž₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  2. 폼 인증: 둜그인 폼을 λ§Œλ“€ λ•Œ, μž…λ ₯ ν•„λ“œμ— type="password"λ₯Ό μ‚¬μš©ν•˜μ—¬ νŒ¨μŠ€μ›Œλ“œλ₯Ό μˆ¨κΈ°μ„Έμš”. λ˜ν•œ, 폼 데이터λ₯Ό 전솑할 λ•Œ POST λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜κ³ , μ„œλ²„ μΈ‘μ—μ„œλŠ” μ˜¬λ°”λ₯Έ 인증 방법을 μ‚¬μš©ν•˜μ—¬ 데이터λ₯Ό μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

[ νŒ¨μŠ€μ›Œλ“œ 보관 2가지 방법 ]

  1. ν•΄μ‹±κ³Ό μ†”νŒ…: μ‚¬μš©μž νŒ¨μŠ€μ›Œλ“œλ₯Ό 보관할 λ•Œ, λ°˜λ“œμ‹œ μ•ˆμ „ν•œ ν•΄μ‹± μ•Œκ³ λ¦¬μ¦˜(예: bcrypt)을 μ‚¬μš©ν•˜μ„Έμš”. λ˜ν•œ, 각 νŒ¨μŠ€μ›Œλ“œμ— κ³ μœ ν•œ μ†”νŠΈ 값을 μΆ”κ°€ν•˜μ—¬ 레인보우 ν…Œμ΄λΈ” 곡격을 λ°©μ§€ν•˜μ„Έμš”.

  2. μ ‘κ·Ό κΆŒν•œ μ œμ–΄: μ„œλ²„ μΈ‘μ—μ„œλŠ” νŒ¨μŠ€μ›Œλ“œμ— λŒ€ν•œ μ ‘κ·Ό κΆŒν•œμ„ μ—„κ²©νžˆ μ œμ–΄ν•˜μ„Έμš”. λ―Όκ°ν•œ μ •λ³΄λŠ” μ΅œμ†Œν•œμ˜ κΆŒν•œλ§Œ λΆ€μ—¬ν•˜κ³ , νŒ¨μŠ€μ›Œλ“œλŠ” μ•ˆμ „ν•œ λ°©μ‹μœΌλ‘œ μ €μž₯ν•΄μ•Ό ν•©λ‹ˆλ‹€.

3. ν”„λ‘œμ„ΈμŠ€μ™€ μŠ€λ ˆλ“œλ₯Ό λΉ„κ΅ν•˜μ—¬ μ„€λͺ…ν•΄μ£Όμ‹€ 수 μžˆμ„κΉŒμš”?

ν”„λ‘œμ„ΈμŠ€λŠ” μ‹€ν–‰ 쀑인 ν”„λ‘œκ·Έλž¨μœΌλ‘œ, λ©”λͺ¨λ¦¬ μƒμ—μ„œ λ…λ¦½μ μœΌλ‘œ ν• λ‹Ήλœ μžμ›μ„ 가지고 λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰λ©λ‹ˆλ‹€.
λ…λ¦½λœ λ©”λͺ¨λ¦¬ 곡간을 가지며, ν•œ ν”„λ‘œμ„ΈμŠ€μ˜ 데이터에 직접 μ ‘κ·Όν•  수 μ—†μŠ΅λ‹ˆλ‹€.
λ˜ν•œ 각 ν”„λ‘œμ„ΈμŠ€λŠ” λ…λ¦½μ μœΌλ‘œ μ‹€ν–‰ν•˜κ³  μ’…λ£Œλ˜λ―€λ‘œ, ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ μΆ©λŒν•˜λ”λΌλ„ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ—λŠ” 영ν–₯을 λ―ΈμΉ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μŠ€λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€ λ‚΄μ—μ„œ μ‹€ν–‰λ˜λŠ” κ²½λŸ‰ ν”„λ‘œμ„ΈμŠ€λ‘œ, ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€μ˜ μžμ›μ„ κ³΅μœ ν•©λ‹ˆλ‹€.
같은 ν”„λ‘œμ„ΈμŠ€ λ‚΄μ˜ μŠ€λ ˆλ“œλ“€μ€ λ™μΌν•œ λ©”λͺ¨λ¦¬ 곡간을 κ³΅μœ ν•˜λ©°, μŠ€λ ˆλ“œ 간에 μ§μ ‘μ μœΌλ‘œ 데이터 κ³΅μœ κ°€ κ°€λŠ₯ν•©λ‹ˆλ‹€. λ˜ν•œ ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€ λ‚΄λΆ€μ—μ„œ μƒμ„±λ˜λ©°, ν•΄λ‹Ή ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ  λ•Œ ν•¨κ»˜ μ’…λ£Œλ©λ‹ˆλ‹€.

4. 동기와 비동기λ₯Ό λΉ„κ΅ν•˜μ—¬ μ„€λͺ…ν•΄μ£Όμ‹€ 수 μžˆμ„κΉŒμš”?

동기(Synchronous) λŠ” 동기적인 ν”„λ‘œκ·Έλž˜λ°μ€ 순차적으둜 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ©°, ν•œ μž‘μ—…μ΄ μ™„λ£Œλœ 후에 λ‹€μŒ μž‘μ—…μ΄ μ‹€ν–‰λ©λ‹ˆλ‹€. 수 ν˜ΈμΆœμ΄λ‚˜ API μš”μ²­κ³Ό 같은 μž‘μ—…μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ λŒ€κΈ°ν•˜λŠ” λ™μ•ˆ λ‹€λ₯Έ μž‘μ—…μ΄ μ€‘λ‹¨λ©λ‹ˆλ‹€.
동기적인 μž‘μ—…μ€ 일반적으둜 λΈ”λ‘œν‚Ήλ˜λ©°, λ‹€λ₯Έ μ½”λ“œλ‚˜ μž‘μ—…μ€ ν•΄λ‹Ή μž‘μ—…μ΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ κΈ°λ‹€λ €μ•Ό ν•©λ‹ˆλ‹€.

비동기(Asynchronous) λŠ” 비동기적인 ν”„λ‘œκ·Έλž˜λ°μ€ μž‘μ—…μ΄ μ™„λ£Œλ˜κΈ°λ₯Ό 기닀리지 μ•Šκ³ , λ‹€μŒ μž‘μ—…μ„ μ‹œμž‘ν•©λ‹ˆλ‹€. μž‘μ—…μ΄ μ™„λ£Œλ˜λ©΄ 콜백 ν•¨μˆ˜λ‚˜ 이벀트λ₯Ό 톡해 μ²˜λ¦¬λ©λ‹ˆλ‹€. 비동기적인 μž‘μ—…μ€ 주둜 λ…ΌλΈ”λ‘œν‚Ήμ΄λ©°, μ—¬λŸ¬ μž‘μ—…μ΄ λ™μ‹œμ— 진행될 수 μžˆμŠ΅λ‹ˆλ‹€. 주둜 콜백 ν•¨μˆ˜, ν”„λ‘œλ―ΈμŠ€, async/awaitλ₯Ό μ‚¬μš©ν•˜μ—¬ μž‘μ„±λ©λ‹ˆλ‹€.

5. Call by referenceλž€ 무엇이고 보톡 μ–΄λ–»κ²Œ μ“°μ΄λ‚˜μš”?

콜 바이 레퍼런슀(Call by reference)λŠ” ν•¨μˆ˜ 호좜 μ‹œμ— λ§€κ°œλ³€μˆ˜λ‘œ μ „λ‹¬λ˜λŠ” 값이 ν•΄λ‹Ή λ³€μˆ˜μ˜ μ°Έμ‘°(λ©”λͺ¨λ¦¬ μ£Όμ†Œ)κ°€ λ˜μ–΄ ν•¨μˆ˜ λ‚΄μ—μ„œ λ§€κ°œλ³€μˆ˜λ₯Ό λ³€κ²½ν•  경우, 호좜자(caller)μ—κ²Œ 영ν–₯을 μ£ΌλŠ” λ°©μ‹μž…λ‹ˆλ‹€.

μžλ°”μŠ€ν¬λ¦½νŠΈ, 파이썬, Java와 같은 λͺ‡λͺ‡ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œλŠ” 기본적으둜 콜 바이 λ ˆνΌλŸ°μŠ€κ°€ μ•„λ‹ˆλΌ 콜 바이 λ°Έλ₯˜(값에 μ˜ν•œ 호좜)κ°€ μΌλ°˜μ μ΄μ§€λ§Œ, λͺ…μ‹œμ μœΌλ‘œ μ°Έμ‘°λ₯Ό μ „λ‹¬ν•˜λŠ” κ²½μš°μ— 콜 바이 레퍼런슀처럼 λ™μž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

6. λ™μ‹œμ„±κ³Ό 병렬성을 λΉ„κ΅ν•˜μ—¬ μ„€λͺ…ν•΄μ£Όμ‹€ 수 μžˆμ„κΉŒμš”?

λ™μ‹œμ„± (Concurrency) 은 μ—¬λŸ¬ μž‘μ—…μ΄ λ™μ‹œμ— μ§„ν–‰λ˜λŠ” κ²ƒμ²˜λŸΌ 보이도둝 ν•˜λŠ” κ°œλ…μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ‹€μ œλ‘œλŠ” μ—¬λŸ¬ μž‘μ—…μ΄ λ²ˆκ°ˆμ•„κ°€λ©΄μ„œ μ‹€ν–‰λ©λ‹ˆλ‹€.

병렬성 (Parallelism) 은 μ‹€μ œλ‘œ μ—¬λŸ¬ μž‘μ—…μ΄ λ™μ‹œμ— λ™μž‘ν•˜λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. μ΄λŠ” μ—¬λŸ¬ ν”„λ‘œμ„Έμ„œ λ˜λŠ” μ½”μ–΄κ°€ λ™μ‹œμ— λ‹€λ₯Έ μž‘μ—…μ„ μ²˜λ¦¬ν•˜λŠ” 것을 ν¬ν•¨ν•©λ‹ˆλ‹€.

  • μ‹œκ°μ  λΉ„μœ : λ™μ‹œμ„±μ€ μ—¬λŸ¬ μŒμ•…κ°€κ°€ κ΅λŒ€λ‘œ μ—°μ£Όν•˜λŠ” 것에 λΉ„μœ λ  수 있고, 병렬성은 μ—¬λŸ¬ μŒμ•…κ°€κ°€ λ™μ‹œμ— 각자 λ‹€λ₯Έ μ•…κΈ°λ‘œ μ—°μ£Όν•˜λŠ” 것에 λΉ„μœ λ  수 μžˆμŠ΅λ‹ˆλ‹€.

  • μ‚¬μš© μ‹œμ : λ™μ‹œμ„±μ€ 주둜 μž…μΆœλ ₯μ΄λ‚˜ μ‚¬μš©μž 이벀트λ₯Ό μ²˜λ¦¬ν•˜λŠ”λ° μ‚¬μš©λ˜λ©°, 병렬성은 CPU 집약적인 μž‘μ—…μ—μ„œ μ„±λŠ₯을 ν–₯μƒμ‹œν‚€λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

  • μžμ› ν•„μš”μ„±: 병렬성은 λ³„λ„μ˜ ν”„λ‘œμ„Έμ„œλ‚˜ μ½”μ–΄κ°€ ν•„μš”ν•˜μ§€λ§Œ, λ™μ‹œμ„±μ€ μž‘μ—… μ „ν™˜μ„ 톡해 ν•˜λ‚˜μ˜ ν”„λ‘œμ„Έμ„œ λ˜λŠ” μ½”μ–΄μ—μ„œ μ—¬λŸ¬ μž‘μ—…μ„ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

profile
✨ π‘¬π’—π’†π’“π’šπ’•π’‰π’Šπ’π’ˆ π’„π’π’Žπ’†π’” 𝒕𝒐 π’‰π’Šπ’Ž π’˜π’‰π’ 𝒉𝒖𝒔𝒕𝒍𝒆𝒔 π’˜π’‰π’Šπ’π’† 𝒉𝒆 π’˜π’‚π’Šπ’•π’”. ✨

0개의 λŒ“κΈ€