Base64 μΈμ½λ©μ λ°μ΄ν°λ₯Ό ν μ€νΈλ‘ λ³ννλ μΈμ½λ© λ°©λ² μ€ νλλ‘, μ΄ λ°©λ²μ μ΄μ§ λ°μ΄ν°λ₯Ό ν μ€νΈλ‘ λ³ννμ¬ λ€μν μ©λλ‘ μ¬μ©λ©λλ€.
κΈ°λ³Έμ μΌλ‘λ 8λΉνΈ μ΄μ§ λ°μ΄ν°λ₯Ό 6λΉνΈμ© λλμ΄ ν΄λΉ κ°μ λμλλ λ¬Έμλ‘ λ³νν©λλ€. μ΄λ κ² λ³νλ ν μ€νΈ λ°μ΄ν°λ ASCII λ¬Έμλ‘ μ΄λ£¨μ΄μ Έ μμ΄μ μΌλ°μ μΈ ν μ€νΈ νμμΌλ‘ μ μ‘ λ° μ μ₯ν μ μμ΅λλ€.
μμλ‘ "Hello, World!"μ΄λΌλ λ¬Έμμ΄μ Base64λ‘ μΈμ½λ©νλ©΄?
SGVsbG8sIFdvcmxkIQ==
μ΄λ κ² μΈμ½λ©λ λ°μ΄ν°λ μμ νκ² μ μ‘νκ±°λ μ μ₯ν μ μμΌλ©°, μ£Όλ‘ μ΄λ©μΌ μ²¨λΆ νμΌ, μ΄λ―Έμ§ λ°μ΄ν°, μΈμ¦ μ 보μ κ°μ κ³³μμ μ¬μ©λ©λλ€. λμ½λ© μμλ μΈμ½λ©λ λ¬Έμμ΄μ λ€μ μ΄μ§ λ°μ΄ν°λ‘ λ³ννμ¬ μ¬μ©ν©λλ€.
HTTPS μ¬μ©: ν¨μ€μλ μ μ‘ μμλ νμ HTTPSλ₯Ό μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μνΈνν΄μΌ ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ€κ°μ 곡격μ λ°©μ§νκ³ λ°μ΄ν°μ μμ μ±μ 보μ₯ν μ μμ΅λλ€.
νΌ μΈμ¦: λ‘κ·ΈμΈ νΌμ λ§λ€ λ, μ λ ₯ νλμ type="password"λ₯Ό μ¬μ©νμ¬ ν¨μ€μλλ₯Ό μ¨κΈ°μΈμ. λν, νΌ λ°μ΄ν°λ₯Ό μ μ‘ν λ POST λ©μλλ₯Ό μ¬μ©νκ³ , μλ² μΈ‘μμλ μ¬λ°λ₯Έ μΈμ¦ λ°©λ²μ μ¬μ©νμ¬ λ°μ΄ν°λ₯Ό μ²λ¦¬ν μ μμ΅λλ€.
ν΄μ±κ³Ό μν : μ¬μ©μ ν¨μ€μλλ₯Ό 보κ΄ν λ, λ°λμ μμ ν ν΄μ± μκ³ λ¦¬μ¦(μ: bcrypt)μ μ¬μ©νμΈμ. λν, κ° ν¨μ€μλμ κ³ μ ν μνΈ κ°μ μΆκ°νμ¬ λ μΈλ³΄μ° ν μ΄λΈ 곡격μ λ°©μ§νμΈμ.
μ κ·Ό κΆν μ μ΄: μλ² μΈ‘μμλ ν¨μ€μλμ λν μ κ·Ό κΆνμ μ격ν μ μ΄νμΈμ. λ―Όκ°ν μ 보λ μ΅μνμ κΆνλ§ λΆμ¬νκ³ , ν¨μ€μλλ μμ ν λ°©μμΌλ‘ μ μ₯ν΄μΌ ν©λλ€.
νλ‘μΈμ€λ μ€ν μ€μΈ νλ‘κ·Έλ¨μΌλ‘, λ©λͺ¨λ¦¬ μμμ λ
립μ μΌλ‘ ν λΉλ μμμ κ°μ§κ³ λ
립μ μΌλ‘ μ€νλ©λλ€.
λ
립λ λ©λͺ¨λ¦¬ 곡κ°μ κ°μ§λ©°, ν νλ‘μΈμ€μ λ°μ΄ν°μ μ§μ μ κ·Όν μ μμ΅λλ€.
λν κ° νλ‘μΈμ€λ λ
립μ μΌλ‘ μ€ννκ³ μ’
λ£λλ―λ‘, νλμ νλ‘μΈμ€κ° μΆ©λνλλΌλ λ€λ₯Έ νλ‘μΈμ€μλ μν₯μ λ―ΈμΉμ§ μμ΅λλ€.
μ€λ λλ νλ‘μΈμ€ λ΄μμ μ€νλλ κ²½λ νλ‘μΈμ€λ‘, ν΄λΉ νλ‘μΈμ€μ μμμ 곡μ ν©λλ€.
κ°μ νλ‘μΈμ€ λ΄μ μ€λ λλ€μ λμΌν λ©λͺ¨λ¦¬ 곡κ°μ 곡μ νλ©°, μ€λ λ κ°μ μ§μ μ μΌλ‘ λ°μ΄ν° 곡μ κ° κ°λ₯ν©λλ€. λν ν΄λΉ νλ‘μΈμ€ λ΄λΆμμ μμ±λλ©°, ν΄λΉ νλ‘μΈμ€κ° μ’
λ£λ λ ν¨κ» μ’
λ£λ©λλ€.
λκΈ°(Synchronous) λ λκΈ°μ μΈ νλ‘κ·Έλλ°μ μμ°¨μ μΌλ‘ μμ
μ μννλ©°, ν μμ
μ΄ μλ£λ νμ λ€μ μμ
μ΄ μ€νλ©λλ€. μ νΈμΆμ΄λ API μμ²κ³Ό κ°μ μμ
μ΄ μλ£λ λκΉμ§ λκΈ°νλ λμ λ€λ₯Έ μμ
μ΄ μ€λ¨λ©λλ€.
λκΈ°μ μΈ μμ
μ μΌλ°μ μΌλ‘ λΈλ‘νΉλλ©°, λ€λ₯Έ μ½λλ μμ
μ ν΄λΉ μμ
μ΄ μλ£λ λκΉμ§ κΈ°λ€λ €μΌ ν©λλ€.
λΉλκΈ°(Asynchronous) λ λΉλκΈ°μ μΈ νλ‘κ·Έλλ°μ μμ μ΄ μλ£λκΈ°λ₯Ό κΈ°λ€λ¦¬μ§ μκ³ , λ€μ μμ μ μμν©λλ€. μμ μ΄ μλ£λλ©΄ μ½λ°± ν¨μλ μ΄λ²€νΈλ₯Ό ν΅ν΄ μ²λ¦¬λ©λλ€. λΉλκΈ°μ μΈ μμ μ μ£Όλ‘ λ ΌλΈλ‘νΉμ΄λ©°, μ¬λ¬ μμ μ΄ λμμ μ§νλ μ μμ΅λλ€. μ£Όλ‘ μ½λ°± ν¨μ, νλ‘λ―Έμ€, async/awaitλ₯Ό μ¬μ©νμ¬ μμ±λ©λλ€.
μ½ λ°μ΄ λ νΌλ°μ€(Call by reference)λ ν¨μ νΈμΆ μμ 맀κ°λ³μλ‘ μ λ¬λλ κ°μ΄ ν΄λΉ λ³μμ μ°Έμ‘°(λ©λͺ¨λ¦¬ μ£Όμ)κ° λμ΄ ν¨μ λ΄μμ 맀κ°λ³μλ₯Ό λ³κ²½ν κ²½μ°, νΈμΆμ(caller)μκ² μν₯μ μ£Όλ λ°©μμ λλ€.
μλ°μ€ν¬λ¦½νΈ, νμ΄μ¬, Javaμ κ°μ λͺλͺ νλ‘κ·Έλλ° μΈμ΄μμλ κΈ°λ³Έμ μΌλ‘ μ½ λ°μ΄ λ νΌλ°μ€κ° μλλΌ μ½ λ°μ΄ λ°Έλ₯(κ°μ μν νΈμΆ)κ° μΌλ°μ μ΄μ§λ§, λͺ μμ μΌλ‘ μ°Έμ‘°λ₯Ό μ λ¬νλ κ²½μ°μ μ½ λ°μ΄ λ νΌλ°μ€μ²λΌ λμν μ μμ΅λλ€.
λμμ± (Concurrency) μ μ¬λ¬ μμ μ΄ λμμ μ§νλλ κ²μ²λΌ 보μ΄λλ‘ νλ κ°λ μ λλ€. νμ§λ§ μ€μ λ‘λ μ¬λ¬ μμ μ΄ λ²κ°μκ°λ©΄μ μ€νλ©λλ€.
λ³λ ¬μ± (Parallelism) μ μ€μ λ‘ μ¬λ¬ μμ μ΄ λμμ λμνλ κ²μ μλ―Έν©λλ€. μ΄λ μ¬λ¬ νλ‘μΈμ λλ μ½μ΄κ° λμμ λ€λ₯Έ μμ μ μ²λ¦¬νλ κ²μ ν¬ν¨ν©λλ€.
μκ°μ λΉμ : λμμ±μ μ¬λ¬ μμ κ°κ° κ΅λλ‘ μ°μ£Όνλ κ²μ λΉμ λ μ μκ³ , λ³λ ¬μ±μ μ¬λ¬ μμ κ°κ° λμμ κ°μ λ€λ₯Έ μ κΈ°λ‘ μ°μ£Όνλ κ²μ λΉμ λ μ μμ΅λλ€.
μ¬μ© μμ : λμμ±μ μ£Όλ‘ μ μΆλ ₯μ΄λ μ¬μ©μ μ΄λ²€νΈλ₯Ό μ²λ¦¬νλλ° μ¬μ©λλ©°, λ³λ ¬μ±μ CPU μ§μ½μ μΈ μμ μμ μ±λ₯μ ν₯μμν€λ λ° μ¬μ©λ©λλ€.
μμ νμμ±: λ³λ ¬μ±μ λ³λμ νλ‘μΈμλ μ½μ΄κ° νμνμ§λ§, λμμ±μ μμ μ νμ ν΅ν΄ νλμ νλ‘μΈμ λλ μ½μ΄μμ μ¬λ¬ μμ μ μ²λ¦¬ν©λλ€.