1. μλ° νλ‘ν μ½μ΄λ
μλ° νλ‘ν μ½μ μλ° μΈμ΄λ₯Ό μ¬μ©νμ¬ λ€νΈμν¬ ν΅μ μ μ¬μ©λλ κ·μ½μ΄λ€. λ€νΈμν¬ νλ‘ν μ½μ μ»΄ν¨ν°λ μ₯μΉ κ°μ ν΅μ λ°©λ²μ μ μνλ κ·μ λ€μ μ§ν©μΌλ‘, λ°μ΄ν°λ₯Ό μ μ‘νκ³ μμ νλ λ°©λ², ν¨ν·μ΄ μ΄λ€ νμμΌλ‘ ꡬμ±λμ΄μΌ νλμ§, μ΄λ€ κ·μΉμ λ°λΌμΌ νλμ§ λ±μ μΈλΆ μ¬νμ λνλΈλ€.
μλ° νλ‘ν μ½μ μλ°λ‘ μμ±λ λ€νΈμν¬ μμ© νλ‘κ·Έλ¨μμ 곡ν΅μ μΌλ‘ μ¬μ©λλ ν΅μ κ·μ½μ΄λ€. μ΄λ μλ°μ νΉμ§κ³Ό μ₯μ μ νμ©νμ¬ ν¨μ¨μ μ΄κ³ μμ μ μΈ λ€νΈμν¬ ν΅μ μ ꡬνν μ μλλ‘ λμμ€λ€. μλ° νλ‘ν μ½μ μ¬λ¬ κ°μ§ νλ‘ν μ½μ μν API(μμ© νλ‘κ·Έλλ° μΈν°νμ΄μ€)μ ν΄λμ€λ€μ μ§ν©μΌλ‘ ꡬμ±λμ΄ μλ€.
μλ° νλ‘ν μ½μ λ€μν κΈ°λ₯κ³Ό 보μ μμ€μ μ 곡νμ¬ λ€νΈμν¬ μμ© νλ‘κ·Έλ¨μ λ€μν μꡬμ μ μν μ μλ€. λν, μλ°μ κ°λ ₯ν κ°μ²΄ μ§ν₯ κ°λ° κΈ°λ₯μ νμ©νμ¬ νμ₯μ±κ³Ό μ μ§ λ³΄μμ±μ΄ λμ μ루μ μ μ 곡νλ€.
μλ° νλ‘ν μ½μ μ¬λ¬ κ°μ§ νμ€ νλ‘ν μ½μ ꡬννλ©°, μ΄λ₯Ό ν΅ν΄ TCP/IP, HTTP, FTP, SMTP, POP3 λ±μ λ€μν νλ‘ν μ½μ μ§μνλ€. μ΄λ₯Ό ν΅ν΄ μλ°λ₯Ό μ¬μ©νμ¬ κ°μ’ λ€νΈμν¬ μμ© νλ‘κ·Έλ¨μ κ°λ°ν μ μλ€.
μ¬κΈ°μλ μλ°μ λ€νΈμν¬ νλ‘ν μ½μ λν κ°μλ₯Ό μ΄ν΄λ³΄κ³ , λ€μ μΉμ μμλ μλ° λ€νΈμν¬ νλ‘ν μ½μ μ’ λ₯λ₯Ό μμΈν μ΄ν΄λ³΄λλ‘ νκ² λ€.
2. μλ° λ€νΈμν¬ νλ‘ν μ½μ κ°μ
μλ° λ€νΈμν¬ νλ‘ν μ½μ λ€νΈμν¬ ν΅μ μ μ¬μ©λλ μ¬λ¬ κ°μ§ νλ‘ν μ½μ μλ° μΈμ΄λ‘ μ½κ² κ°λ°νκ³ κ΅¬νν μ μλλ‘ λλ κΈ°μ μ΄λ€. μ΄λ₯Ό ν΅ν΄ μλ° κ°λ°μλ κ°λ ₯ν λ€νΈμν¬ μμ© νλ‘κ·Έλ¨μ ꡬννκ³ μ€νν μ μλ€.
μλ° λ€νΈμν¬ νλ‘ν μ½μ μλ°μ νμ€ ν΄λμ€ λΌμ΄λΈλ¬λ¦¬μΈ java.net ν¨ν€μ§λ₯Ό ν΅ν΄ μ 곡λλ€. μ΄ ν¨ν€μ§μλ λ€μν ν΄λμ€μ μΈν°νμ΄μ€κ° ν¬ν¨λμ΄ μμΌλ©°, λ€νΈμν¬ ν΅μ μ μν νμμ μΈ κΈ°λ₯μ μ 곡νλ€.
μλ° λ€νΈμν¬ νλ‘ν μ½μ TCP/IP κΈ°λ°μ λ€νΈμν¬ ν΅μ μ μν Socketκ³Ό ServerSocket ν΄λμ€λ₯Ό μ 곡νλ€. Socket ν΄λμ€λ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μ°κ²°μ κ΄λ¦¬νκ³ λ°μ΄ν°λ₯Ό μ‘μμ νλ μν μ νλ€. ServerSocket ν΄λμ€λ μλ²μμ ν΄λΌμ΄μΈνΈμ μ°κ²°μ λ°μλ€μ΄κ³ μ°κ²°λ Socket κ°μ²΄λ₯Ό λ°ννλ μν μ νλ€.
λν, μλ° λ€νΈμν¬ νλ‘ν μ½μ HTTP νλ‘ν μ½μ μν HttpURLConnection ν΄λμ€μ FTP νλ‘ν μ½μ μν FTPClient ν΄λμ€ λ±μ μ 곡νλ€. μ΄λ₯Ό ν΅ν΄ μΉ μλ²μ ν΅μ νκ±°λ νμΌ μ μ‘κ³Ό κ΄λ ¨λ κΈ°λ₯μ μνν μ μλ€.
μλ° λ€νΈμν¬ νλ‘ν μ½μ λ§μ νΈμμ±κ³Ό μ μ°μ±μ μ 곡νλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ λ€νΈμν¬ μμμ λ°μ΄ν°λ₯Ό μ‘μμ νκ³ , μ격 μλ²μμ ν΅μ μ ν΅ν΄ μνλ κΈ°λ₯μ μνν μ μλ€. λν, μλ°μ λ€μν 보μ κΈ°λ₯μ νμ©νμ¬ ν΅μ κ³Όμ μμ λ°μ΄ν°μ 보μμ±μ κ°νν μ μλ€.
λ€μ μΉμ μμλ μλ° λ€νΈμν¬ νλ‘ν μ½μ μ’ λ₯λ₯Ό μμΈν μ΄ν΄λ³΄λλ‘ νκ² λ€.
3. μλ° λ€νΈμν¬ νλ‘ν μ½μ μ’ λ₯
μλ° λ€νΈμν¬ νλ‘ν μ½μ λ€μν μ’ λ₯μ νλ‘ν μ½μ μ§μνλ€. μ΄λ₯Ό ν΅ν΄ μλ° κ°λ°μλ λ€μν λ€νΈμν¬ κΈ°λ₯μ ꡬνν μ μλ€. κ°κ°μ νλ‘ν μ½μ νΉμ ν λͺ©μ μ λ§κ² μ€κ³λμμΌλ©°, μλ°μμλ μ΄λ¬ν νλ‘ν μ½λ€μ μ½κ² ꡬννκ³ μ‘°μν μ μλλ‘ APIλ₯Ό μ 곡νλ€.
3.1 TCP/IP νλ‘ν μ½
TCP/IP νλ‘ν μ½μ μΈν°λ·μμ κ°μ₯ λ리 μ¬μ©λλ νλ‘ν μ½μ΄λ€. μλ°μμλ TCP/IP κΈ°λ°μ λ€νΈμν¬ ν΅μ μ μννκΈ° μν΄ Socketκ³Ό ServerSocket ν΄λμ€λ₯Ό μ 곡νλ€. Socketμ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μ°κ²°μ κ΄λ¦¬νκ³ λ°μ΄ν°λ₯Ό μ‘μμ νλ μν μ νλ©°, ServerSocketμ μλ²μμ ν΄λΌμ΄μΈνΈμ μ°κ²°μ λ°μλ€μ΄κ³ μ°κ²°λ Socket κ°μ²΄λ₯Ό λ°ννλ μν μ νλ€.
3.2 HTTP νλ‘ν μ½
HTTP νλ‘ν μ½μ μΉ μλ²μ ν΄λΌμ΄μΈνΈ κ°μ ν΅μ μ μν΄ μ¬μ©λλ νλ‘ν μ½μ΄λ€. μλ°μμλ HTTP νλ‘ν μ½μ μ¬μ©νμ¬ μΉ μλ²μ ν΅μ νκΈ° μν΄ HttpURLConnection ν΄λμ€λ₯Ό μ 곡νλ€. μ΄ ν΄λμ€λ₯Ό μ¬μ©νλ©΄ μΉ μλ²μ GET λλ POST μμ²μ 보λ΄κ³ , μλ²λ‘λΆν° μλ΅ λ°μ΄ν°λ₯Ό λ°μ μ μλ€.
3.3 FTP νλ‘ν μ½
FTP νλ‘ν μ½μ νμΌ μ μ‘μ μν νλ‘ν μ½μ΄λ€. μλ°μμλ FTP νλ‘ν μ½μ μ¬μ©νμ¬ νμΌμ μ λ‘λνκ³ λ€μ΄λ‘λνκΈ° μν΄ FTPClient ν΄λμ€λ₯Ό μ 곡νλ€. μ΄ ν΄λμ€λ₯Ό μ¬μ©νλ©΄ μ격 FTP μλ²μ μ°κ²°μ μ립νκ³ , νμΌμ μ μ‘νλ κΈ°λ₯μ μνν μ μλ€.
3.4 SMTP νλ‘ν μ½
SMTP νλ‘ν μ½μ μ΄λ©μΌ μ μ‘μ μν νλ‘ν μ½μ΄λ€. μλ°μμλ SMTP νλ‘ν μ½μ μ¬μ©νμ¬ μ΄λ©μΌμ 보λ΄κΈ° μν΄ JavaMail APIλ₯Ό μ 곡νλ€. JavaMail APIλ₯Ό μ¬μ©νλ©΄ μ΄λ©μΌ μλ²μμ μ°κ²°μ μ립νκ³ , μ΄λ©μΌμ 보λ΄λ κΈ°λ₯μ μνν μ μλ€.
3.5 POP3 νλ‘ν μ½
POP3 νλ‘ν μ½μ μ΄λ©μΌ μμ μ μν νλ‘ν μ½μ΄λ€. μλ°μμλ POP3 νλ‘ν μ½μ μ¬μ©νμ¬ μ΄λ©μΌμ λ°μμ€κΈ° μν΄ JavaMail APIλ₯Ό μ 곡νλ€. JavaMail APIλ₯Ό μ¬μ©νλ©΄ μ΄λ©μΌ μλ²μμ μ°κ²°μ μ립νκ³ , μ΄λ©μΌμ λ°μμ€λ κΈ°λ₯μ μνν μ μλ€.
μ΄ μΈμλ μλ° λ€νΈμν¬ νλ‘ν μ½μλ Telnet, DNS, ICMP λ± λ€μν νλ‘ν μ½μ ꡬννλ ν΄λμ€μ μΈν°νμ΄μ€κ° μ 곡λλ€. μ΄λ₯Ό ν΅ν΄ μλ° κ°λ°μλ μμ μ΄ νμλ‘ νλ νΉμ νλ‘ν μ½μ μ½κ² ꡬννκ³ νμ©ν μ μλ€.
μλ° λ€νΈμν¬ νλ‘ν μ½μ λ€μν νλ‘ν μ½μ ν΅ν΄ λ€νΈμν¬ ν΅μ μ ꡬνν μ μλ κ°λ ₯ν κΈ°λ₯μ μ 곡νλ€. κ°λ°μλ μ΄λ₯Ό νμ©νμ¬ μμ μ μ΄κ³ ν¨μ¨μ μΈ λ€νΈμν¬ μμ© νλ‘κ·Έλ¨μ κ°λ°ν μ μλ€.
4. μλ° λ€νΈμν¬ νλ‘ν μ½μ νΉμ§
μλ° λ€νΈμν¬ νλ‘ν μ½μ λ€νΈμν¬ ν΅μ μ μν λ€μν κΈ°λ₯κ³Ό νΉμ§μ μ 곡νλ€. μ΄λ₯Ό ν΅ν΄ μλ° κ°λ°μλ μ μ°νκ³ ν¨μ¨μ μΈ λ€νΈμν¬ μμ© νλ‘κ·Έλ¨μ κ°λ°ν μ μλ€. μλλ μλ° λ€νΈμν¬ νλ‘ν μ½μ μ£Όμ νΉμ§μ΄λ€.
4.1 νμ€ ν΄λμ€ λΌμ΄λΈλ¬λ¦¬ μ 곡
μλ° λ€νΈμν¬ νλ‘ν μ½μ μλ°μ νμ€ ν΄λμ€ λΌμ΄λΈλ¬λ¦¬μΈ java.net ν¨ν€μ§λ₯Ό ν΅ν΄ μ 곡λλ€. μ΄ ν¨ν€μ§μλ λ€μν ν΄λμ€μ μΈν°νμ΄μ€κ° ν¬ν¨λμ΄ μμΌλ©°, λ€νΈμν¬ ν΅μ μ μν νμμ μΈ κΈ°λ₯μ μ 곡νλ€. κ°λ°μλ μ΄ νμ€ ν΄λμ€ λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νμ¬ μ½κ³ λΉ λ₯΄κ² λ€νΈμν¬ νλ‘ν μ½μ ꡬνν μ μλ€.
4.2 TCP/IP νλ‘ν μ½ μ§μ
μλ° λ€νΈμν¬ νλ‘ν μ½μ TCP/IP κΈ°λ°μ λ€νΈμν¬ ν΅μ μ μ§μνλ€. TCP/IP νλ‘ν μ½μ μΈν°λ·μμ κ°μ₯ λ리 μ¬μ©λλ νλ‘ν μ½μ΄λ©°, μμ μ μ΄κ³ μ λ’°μ± μλ ν΅μ μ μ 곡νλ€. μλ°μμλ Socketκ³Ό ServerSocket ν΄λμ€λ₯Ό ν΅ν΄ TCP/IP νλ‘ν μ½μ μ¬μ©νμ¬ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μ°κ²°μ ꡬννκ³ λ°μ΄ν°λ₯Ό μ‘μμ ν μ μλ€.
4.3 λ€μν νλ‘ν μ½ μ§μ
μλ° λ€νΈμν¬ νλ‘ν μ½μ HTTP, FTP, SMTP, POP3 λ± λ€μν νλ‘ν μ½μ μ§μνλ€. HTTP νλ‘ν μ½μ μ¬μ©νμ¬ μΉ μλ²μ ν΅μ νκ±°λ, FTP νλ‘ν μ½μ μ¬μ©νμ¬ νμΌμ μ μ‘νκ³ , SMTP νλ‘ν μ½μ μ¬μ©νμ¬ μ΄λ©μΌμ 보λ΄λ λ±μ κΈ°λ₯μ ꡬνν μ μλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ λ€μν λ€νΈμν¬ κΈ°λ₯μ μμ λ‘κ² μ¬μ©ν μ μλ€.
4.4 보μ κΈ°λ₯ μ 곡
μλ° λ€νΈμν¬ νλ‘ν μ½μ μλ°μ λ€μν 보μ κΈ°λ₯μ νμ©νμ¬ ν΅μ κ³Όμ μμ λ°μ΄ν°μ 보μμ±μ κ°νν μ μλ€. SSL(Secure Socket Layer)κ³Ό κ°μ μνΈν νλ‘ν μ½μ μ¬μ©νμ¬ λ°μ΄ν° μ μ‘ μ μνΈνλ μ°κ²°μ μ립νκ±°λ, μΈμ¦ κΈ°λ₯μ μ¬μ©νμ¬ μμ ν ν΅μ μ 보μ₯ν μ μλ€. μ΄λ₯Ό ν΅ν΄ κ°λ°μλ λ€νΈμν¬ ν΅μ μ λ°μν μ μλ 보μ μνμ μ΅μνν μ μλ€.
4.5 νΈμμ±κ³Ό μ μ°μ± μ 곡
μλ° λ€νΈμν¬ νλ‘ν μ½μ κ°λ°μμκ² λ§μ νΈμμ±κ³Ό μ μ°μ±μ μ 곡νλ€. κ°λ ₯ν APIμ λ€μν ν΄λμ€λ₯Ό νμ©νμ¬ λ€νΈμν¬ ν΅μ μ μ½κ² ꡬνν μ μμΌλ©°, νμμ λ°λΌ κΈ°λ₯μ 컀μ€ν°λ§μ΄μ§ν μ μλ€. λν, λ©ν°μ€λ λ νλ‘κ·Έλλ°μ μ§μνμ¬ λμμ μ¬λ¬ ν΄λΌμ΄μΈνΈμμ μ°κ²°μ μ²λ¦¬ν μ μλ€.
μλ° λ€νΈμν¬ νλ‘ν μ½μ λ€νΈμν¬ ν΅μ μ νμν κΈ°λ₯κ³Ό 보μμ±μ μ 곡νλ κ°λ ₯ν κΈ°μ μ΄λ€. κ°λ°μλ μ΄λ₯Ό νμ©νμ¬ μμ μ μ΄κ³ νμ₯ κ°λ₯ν λ€νΈμν¬ μμ© νλ‘κ·Έλ¨μ κ°λ°ν μ μλ€.
5. μλ° λ€νΈμν¬ νλ‘ν μ½μ νμ© μμ
μλ° λ€νΈμν¬ νλ‘ν μ½μ λ€μν μμλ₯Ό ν΅ν΄ μ€μ λ‘ νμ©λ μ μλ€. μλλ λͺ κ°μ§ μλ° λ€νΈμν¬ νλ‘ν μ½μ νμ© μμμ΄λ€.
5.1 μΉ μλ²μμ ν΅μ
μλ°λ HTTP νλ‘ν μ½μ μ§μνμ¬ μΉ μλ²μμ ν΅μ μ κ°νΈνκ² μ²λ¦¬ν μ μλ€. HttpURLConnection ν΄λμ€λ₯Ό μ¬μ©νμ¬ μΉ μλ²μ GET λλ POST μμ²μ 보λ΄κ³ , μλ²λ‘λΆν° μλ΅ λ°μ΄ν°λ₯Ό λ°μ μ μλ€. μ΄λ₯Ό ν΅ν΄ μλνλ μΉ νμ΄μ§ μ μ, λ°μ΄ν° μΆμΆ, λ°μ΄ν° μ μ‘ λ± λ€μν μΉ κΈ°λ₯μ μλ°λ‘ ꡬνν μ μλ€.
5.2 νμΌ μ μ‘
FTP νλ‘ν μ½μ νμ©νμ¬ νμΌ μ μ‘ κΈ°λ₯μ ꡬνν μ μλ€. FTPClient ν΄λμ€λ₯Ό μ¬μ©νμ¬ μ격 FTP μλ²μ μ°κ²°μ μ립νκ³ , νμΌμ μ λ‘λνκ±°λ λ€μ΄λ‘λν μ μλ€. μ΄λ₯Ό ν΅ν΄ μλ°λ‘ λ€λ₯Έ μμ€ν κ³Όμ νμΌ κ³΅μ , μ격 λ°±μ , μλ² λ‘κ·Έ μμ§ λ± νμΌ μ μ‘ κ΄λ ¨ μμ μ μνν μ μλ€.
5.3 μ΄λ©μΌ μ μ‘ λ° μμ
SMTPμ POP3 νλ‘ν μ½μ νμ©νμ¬ μ΄λ©μΌμ μ μ‘νκ³ λ°μ μ μλ€. JavaMail APIλ₯Ό μ¬μ©νμ¬ μ΄λ©μΌ μλ²μμ μ°κ²°μ μ립νκ³ , λ©μΌμ μμ±νκ±°λ λ°μμ¬ μ μλ€. μ΄λ₯Ό ν΅ν΄ μλνλ μ΄λ©μΌ λ°μ‘, μ΄λ©μΌ λ§μΌν , μ΄λ©μΌ ν΄λΌμ΄μΈνΈ λ± λ€μν μ΄λ©μΌ κ΄λ ¨ κΈ°λ₯μ μλ°λ‘ ꡬνν μ μλ€.
5.4 μμΌ ν΅μ
μλ°λ TCP/IP νλ‘ν μ½μ μ§μνμ¬ μμΌ ν΅μ μ ꡬνν μ μλ€. Socketκ³Ό ServerSocket ν΄λμ€λ₯Ό μ¬μ©νμ¬ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μ°κ²°μ μ립νκ³ , λ°μ΄ν°λ₯Ό μ‘μμ ν μ μλ€. μ΄λ₯Ό ν΅ν΄ μ€μκ° μ±ν , λ©ν°νλ μ΄μ΄ κ²μ, λΆμ° μ²λ¦¬ μμ λ± λ€μν λ€νΈμν¬ κΈ°λ₯μ μλ°λ‘ ꡬνν μ μλ€.
μλ° λ€νΈμν¬ νλ‘ν μ½μ νμ©νλ©΄ λ€μν λ€νΈμν¬ κΈ°λ₯μ μ½κ² ꡬνν μ μλ€. μΉ μλ²μμ ν΅μ , νμΌ μ μ‘, μ΄λ©μΌ μ²λ¦¬, μμΌ ν΅μ λ± λ€μν μμλ₯Ό ν΅ν΄ λ€νΈμν¬ μμ© νλ‘κ·Έλ¨μ κ°λ°ν μ μλ€. κ°λ°μλ μλ°μ κ°λ ₯ν λ€νΈμν¬ νλ‘ν μ½μ ν΅ν΄ λ€μν λλ©μΈμμ μ μ©νκ² νμ©ν μ μλ€.
λκΈ