πΎ [CS] νλ‘μ ν¨ν΄κ³Ό νλ‘μ μλ² - 2
1οΈβ£ νλ‘μ ν¨ν΄(Proxy Pattern).
- νλ‘μ ν¨ν΄(Proxy Pattern)μ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μμ μ¬μ©λλ λμμΈ ν¨ν΄ μ€ νλλ‘, μ΄λ€ κ°μ²΄μ λν μ κ·Όμ μ μ΄νκΈ° μν΄ κ·Έ κ°μ²΄μ λλ¦¬μΈ μν μ νλ λ³λμ κ°μ²΄(νλ‘μ, Proxy)λ₯Ό μ 곡νλ ν¨ν΄μ
λλ€.
- μ΄ ν¨ν΄μ ν΅ν΄ ν΄λΌμ΄μΈνΈλ μλμ κ°μ²΄ λμ νλ‘μ κ°μ²΄λ₯Ό ν΅ν΄ κ°μ μ μΌλ‘ μλμ κ°μ²΄μ μ κ·Όν μ μμ΅λλ€.
1οΈβ£ νλ‘μ ν¨ν΄μ μ£Όμ λͺ©μ .
- 1. μ κ·Ό μ μ΄ : ν΄λΌμ΄μΈνΈκ° μ€μ κ°μ²΄μ μ§μ μ κ·Όνλ κ²μ μ ννκ±°λ μ μ΄ν μ μμ΅λλ€.
-
2. μ§μ° μ΄κΈ°ν(Lazy Initialization) : μ€μ κ°μ²΄μ μμ±κ³Ό μ΄κΈ°νλ₯Ό νμν λκΉμ§ λ―Έλ£° μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, λ©λͺ¨λ¦¬λ 리μμ€ μλͺ¨κ° ν° κ°μ²΄λ₯Ό μ¬μ©νλ κ²½μ° μ±λ₯μ μ΅μ νν μ μμ΅λλ€.
- 3. 보νΈ(Protection) : νΉμ 쑰건μμλ§ μ€μ κ°μ²΄μ μ κ·Όν μ μλλ‘ λ³΄μμ κ°νν μ μμ΅λλ€.
- 4. μ격 μ κ·Ό : μ격 κ°μ²΄μ λ‘컬 κ°μ²΄μ²λΌ μ κ·Όν μ μλλ‘ λμμ€λλ€.
2οΈβ£ νλ‘μ ν¨ν΄μ μ ν.
-
1. κ°μ νλ‘μ(Virtual Proxy)
- μ€μ κ°μ²΄μ μμ±μ μ§μ°μμΌ μ±λ₯μ μ΅μ νν©λλ€.
- μλ₯Ό λ€μ΄, μ΄λ―Έμ§ λ‘λ©μ μ§μ°μμΌ νμν λλ§ λ‘λν μ μμ΅λλ€.
- μ€μ κ°μ²΄μ μμ±μ μ§μ°μμΌ μ±λ₯μ μ΅μ νν©λλ€.
-
2. λ³΄νΈ νλ‘μ(Protection Proxy)
- μ κ·Ό κΆνμ΄ μλ μ¬μ©μλ ν΄λΌμ΄μΈνΈκ° κ°μ²΄μ μ κ·Όνλ κ²μ λ°©μ§ν©λλ€.
- μλ₯Ό λ€μ΄, νΉμ μ¬μ©μλ§ νμ κΈ°λ₯μ μ¬μ©ν μ μλλ‘ μ νν μ μμ΅λλ€.
- μ κ·Ό κΆνμ΄ μλ μ¬μ©μλ ν΄λΌμ΄μΈνΈκ° κ°μ²΄μ μ κ·Όνλ κ²μ λ°©μ§ν©λλ€.
-
3. μ격 νλ‘μ(Remote Proxy)
- μ격 μλ²μ μμΉν κ°μ²΄λ₯Ό λ‘컬μμ μ¬μ©νλ κ²μ²λΌ 보μ΄λλ‘ ν©λλ€.
- μλ₯Ό λ€μ΄, λΆμ° μμ€ν μμ μ격 λ©μλλ₯Ό νΈμΆν λ μ¬μ©ν μ μμ΅λλ€.
- μ격 μλ²μ μμΉν κ°μ²΄λ₯Ό λ‘컬μμ μ¬μ©νλ κ²μ²λΌ 보μ΄λλ‘ ν©λλ€.
-
4. μ€λ§νΈ μ°Έμ‘° νλ‘μ(Smart Reference Proxy)
- μ€μ κ°μ²΄μ λν μΆκ°μ μΈ νλμ μνν©λλ€.
- μλ₯Ό λ€μ΄, μ°Έμ‘° νμλ₯Ό κΈ°λ‘νκ±°λ, κ°μ²΄μ μ κ·Όν λλ§λ€ λ‘κ·Έλ₯Ό λ¨κΈΈ μ μμ΅λλ€.
- μ€μ κ°μ²΄μ λν μΆκ°μ μΈ νλμ μνν©λλ€.
3οΈβ£ νλ‘μ ν¨ν΄μ ꡬ쑰.
- νλ‘μ ν¨ν΄μ λ€μκ³Ό κ°μ κ΅¬μ± μμλ‘ μ΄λ£¨μ΄μ§λλ€.
- Subject(μ£Όμ ) : νλ‘μμ μ€μ κ°μ²΄κ° ꡬννλ μΈν°νμ΄μ€λ‘, 곡ν΅λ λ©μλλ₯Ό μ μν©λλ€.
- RealSubject(μ€μ μ£Όμ ) : μ€μ λ‘ μμ μ μννλ κ°μ²΄μ λλ€. ν΄λΌμ΄μΈνΈκ° μλ μ κ·Όνκ³ μ νλ λμμ λλ€.
- Proxy(νλ‘μ) : RealSubjectμ λν μ°Έμ‘°λ₯Ό κ°μ§κ³ μμΌλ©°, RealSubjectμ λ©μλλ₯Ό νΈμΆνκ±°λ μ κ·Όμ μ μ΄νλ μν μ ν©λλ€.
4οΈβ£ μμ .
- μλ₯Ό λ€μ΄, μ΄λ―Έμ§λ₯Ό λ‘λ©νλ νλ‘κ·Έλ¨μ΄ μλ€κ³ κ°μ ν΄λ΄ μλ€.
- μ΄λ―Έμ§λ₯Ό λ‘λνλ μμ
μ μκ°μ΄ μ€λ 걸릴 μ μμΌλ―λ‘, μ΄λ―Έμ§κ° μ€μ λ‘ νμν λκΉμ§ λ‘λ©μ μ§μ°μν€κ³ μΆμ΅λλ€.
- μ΄λ κ°μ νλ‘μλ₯Ό μ¬μ©ν μ μμ΅λλ€.
interface Image {
void display();
}
class RealImage implements Image {
private String filename;
public RealImage(String filename) {
this.filename = filename;
loadFromDisk();
}
private void loadFromDisk() {
System.out.println("Loading " + filename);
}
@Override
public void display() {
System.out.println("Displaying " + filename);
}
}
class ProxyImage implements Image {
private RealImage realImage;
private String filename;
public ProxyImage(String filename) {
this.filename = filename;
}
@Override
public void display() {
if (realImage == null) {
realImage = new RealImage(filename);
}
realImage.display();
}
}
public class ProxyPatternExample {
public static void main(String[] args) {
Image image = new ProxyImage("test.jpg");
// μ€μ λ‘ μ΄λ―Έμ§κ° νμν λλ§ λ‘λν©λλ€.
image.display(); // Loading test.jpg, Displaying test.jpg
image.display(); // Displaying test.jpg (μ΄λ―Έ λ‘λλμμΌλ―λ‘ λ€μ λ‘λνμ§ μμ΅λλ€.)
}
}
- μ μ½λμμ
ProxyImage
λRealImage
μ λν νλ‘μ μν μ ν©λλ€.-
ProxyImage
λ₯Ό ν΅ν΄ μ΄λ―Έμ§λ₯Ό λ‘λν λ, μ΄λ―Έμ§λ₯Ό μ€μ λ‘ νμν λλ§ λ‘λνλλ‘ μ§μ°μν¬ μ μμ΅λλ€. - λ λ²μ§Έ
display()
νΈμΆμμλ μ΄λ―Έ λ‘λλ μ΄λ―Έμ§κ° μκΈ° λλ¬Έμ λ€μ λ‘λνμ§ μμ΅λλ€.
-
- μ΄λ κ² νλ‘μ ν¨ν΄μ ν΄λΌμ΄μΈνΈμ μ½λ λ³κ²½ μμ΄ μ€μ κ°μ²΄μ μ κ·Ό λ°©μμ΄λ λμμ λ³κ²½νκ±°λ νμ₯νλ λ° μ μ©νκ² μ¬μ©ν μ μμ΅λλ€.
5οΈβ£ Javaμμμ νλ‘μ ν¨ν΄.
- νλ‘μ ν¨ν΄(Proxy Pattern)μ Javaμμλ λ§€μ° μμ£Ό μ¬μ©λλ λμμΈ ν¨ν΄ μ€ νλμ
λλ€.
- νλ‘μ ν¨ν΄μ μ΄λ€ κ°μ²΄μ λν μ κ·Όμ μ μ΄νκΈ° μν΄ κ·Έ κ°μ²΄μ λλ¦¬μΈ μν μ νλ λ³λμ κ°μ²΄(νλ‘μ κ°μ²΄)λ₯Ό μ 곡νλ ν¨ν΄μ λλ€.
- Javaμμ νλ‘μ ν¨ν΄μ λ€μν μν©μμ μ¬μ©λ μ μμΌλ©°, λνμ μΈ μμλ λ€μκ³Ό κ°μ΅λλ€.
-
1. κ°μ νλ‘μ(Virtual Proxy)
- μ€μ κ°μ²΄μ μμ±μ μ§μ°μν€κ³ , νμν λμλ§ κ°μ²΄λ₯Ό μμ±νλλ‘ν©λλ€.
- μλ₯Ό λ€μ΄, λ©λͺ¨λ¦¬λ 리μμ€κ° ν° κ°μ²΄μ μμ±μ μ§μ°μμΌ μ±λ₯μ ν₯μμν¬ μ μμ΅λλ€.
- μ€μ κ°μ²΄μ μμ±μ μ§μ°μν€κ³ , νμν λμλ§ κ°μ²΄λ₯Ό μμ±νλλ‘ν©λλ€.
-
2. 보μ νλ‘μ(Protectioon Proxy)
- κ°μ²΄μ λν μ κ·Όμ μ μ΄νμ¬, νΉμ μ¬μ©μλ 쑰건μ λ°λΌ μ κ·Ό κΆνμ λΆμ¬νκ±°λ μ νν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, μ¬μ©μ μΈμ¦μ΄ νμν μμ€ν μμ νΉμ μλΉμ€λ μμμ μ κ·Όν λ μ¬μ©λ©λλ€.
- κ°μ²΄μ λν μ κ·Όμ μ μ΄νμ¬, νΉμ μ¬μ©μλ 쑰건μ λ°λΌ μ κ·Ό κΆνμ λΆμ¬νκ±°λ μ νν μ μμ΅λλ€.
-
3. μ격 νλ‘μ(Remote Proxy)
- μ격 μλ²μ μμΉν κ°μ²΄λ₯Ό λ‘컬μμ μ¬μ©νλ κ²μ²λΌ 보μ΄λλ‘ νλ ν¨ν΄μ
λλ€.
- Java RMI(Remote Method Invocation)κ° λνμ μΈ μμ λλ€.
- μ격 μλ²μ μμΉν κ°μ²΄λ₯Ό λ‘컬μμ μ¬μ©νλ κ²μ²λΌ 보μ΄λλ‘ νλ ν¨ν΄μ
λλ€.
-
4. μΊμ± νλ‘μ(Caching Proxy)
- λ°λ³΅μ μΌλ‘ νΈμΆλλ λ©μλλ κ°μ²΄μ κ²°κ³Όλ₯Ό μΊμ±νμ¬ μ±λ₯μ μ΅μ νν©λλ€.
-
1. κ°μ νλ‘μ(Virtual Proxy)
6οΈβ£ Javaμμ νλ‘μ ν¨ν΄μ ꡬννλ λ°©λ².
-
νλ‘μ ν΄λμ€λ₯Ό μ§μ ꡬν
- μΈν°νμ΄μ€λ₯Ό ꡬννλ νλ‘μ ν΄λμ€λ₯Ό μμ±νμ¬, μ€μ κ°μ²΄μ λν μ κ·Όμ μ μ΄ν©λλ€.
-
Java Dynamic Proxy
- Javaμ
java.lang.reflect.Proxy
ν΄λμ€λ₯Ό μ΄μ©νμ¬ λ°νμμ λμ μΌλ‘ νλ‘μ κ°μ²΄λ₯Ό μμ±ν μ μμ΅λλ€.- μ΄ λ°©λ²μ μΈν°νμ΄μ€ κΈ°λ°μ νλ‘μ μμ±μ μ μ©ν©λλ€.
- Javaμ
-
CGLIB
- μΈν°νμ΄μ€κ° μλ ν΄λμ€μ λν΄μλ νλ‘μλ₯Ό μμ±ν μ μλλ‘ μ§μνλ λΌμ΄λΈλ¬λ¦¬μ
λλ€.
- Spring νλ μμν¬μμλ μ£Όλ‘ AOP(Aspect-Oriented Programming) κΈ°λ₯μ ꡬνν λ CGLIBμ νμ©ν©λλ€.
- μΈν°νμ΄μ€κ° μλ ν΄λμ€μ λν΄μλ νλ‘μλ₯Ό μμ±ν μ μλλ‘ μ§μνλ λΌμ΄λΈλ¬λ¦¬μ
λλ€.
- νλ‘μ ν¨ν΄μ νΉν Spring νλ μμν¬μμ AOPλ₯Ό ꡬννκ±°λ, νΈλμμ κ΄λ¦¬μ κ°μ ν¬λ‘μ€μ»·ν (Cross-cutting) κ΄μ¬μ¬λ₯Ό μ²λ¦¬ν λ λ리 μ¬μ©λ©λλ€.
2οΈβ£ νλ‘μ μλ²(Proxy Server).
- νλ‘μ μλ²(Proxy Server)λ μ»΄ν¨ν° λ€νΈμν¬μμ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μ€κ³μ μν μ νλ μλ²μ λλ€.
- νλ‘μ μλ²λ ν΄λΌμ΄μΈνΈκ° μμ²ν 리μμ€(μΉνμ΄μ§, νμΌ λ±)λ₯Ό λμ λ°μμ ν΄λΌμ΄μΈνΈμκ² μ λ¬νκ±°λ, ν΄λΌμ΄μΈνΈμ μμ²μ λ€λ₯Έ μλ²λ‘ μ λ¬ν©λλ€.
- μ΄λ₯Ό ν΅ν΄ μ¬λ¬ κ°μ§ μ€μν κΈ°λ₯μ μνν μ μμ΅λλ€.
1οΈβ£ νλ‘μ μλ²μ μ£Όμ κΈ°λ₯.
- 1. μ΅λͺ μ± μ 곡 : ν΄λΌμ΄μΈνΈμ IP μ£Όμλ₯Ό μ¨κΈ°κ³ , λμ νλ‘μ μλ²μ IP μ£Όμλ‘ μλ²μ μ κ·Όν©λλ€. μ΄λ₯Ό ν΅ν΄ ν΄λΌμ΄μΈνΈλ μ΅λͺ μ±μ μ μ§ν μ μμΌλ©°, μλ²λ ν΄λΌμ΄μΈνΈμ μ€μ IP μ£Όμλ₯Ό μμ§ λͺ»ν©λλ€.
- 2. 보μ κ°ν : νλ‘μ μλ²λ ν΄λΌμ΄μΈνΈμ μλ² κ°μ νΈλν½μ λͺ¨λν°λ§νκ³ μ μ΄ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λΆνμν μμ²μ μ°¨λ¨νκ±°λ, νΉμ μΉμ¬μ΄νΈ μ κ·Όμ μ νν μ μμ΅λλ€. λν, μ μ± νΈλν½μ νν°λ§νμ¬ λ€νΈμν¬ λ³΄μμ κ°νν μ μμ΅λλ€.
- 3. μΊμ±(Caching) : νλ‘μ μλ²λ μμ£Ό μμ²λλ 리μμ€λ₯Ό μΊμ±νμ¬ μλ²μ λΆνλ₯Ό μ€μ΄κ³ , ν΄λΌμ΄μΈνΈμ μμ²μ λΉ λ₯΄κ² μλ΅ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, λμΌν μΉνμ΄μ§κ° μ¬λ¬ λ² μμ²λλ κ²½μ°, νλ‘μ μλ²λ μ΄ νμ΄μ§λ₯Ό μΊμμ μ μ₯ν΄ λκ³ , μ΄ν μμ²μ λν΄ μΊμμμ μ§μ μλ΅ν©λλ€.
- 4. μ½ν μΈ νν°λ§ : νλ‘μ μλ²λ νΉμ μ½ν μΈ μ λν μ κ·Όμ μ ννκ±°λ μ°¨λ¨ν μ μμ΅λλ€. μ΄λ νκ΅, κΈ°μ λλ κ°μ μμ νΉμ μΉμ¬μ΄νΈλ μ½ν μΈ μ λν μ κ·Όμ μ μ΄νλ λ° μ μ©ν©λλ€.
- 5. λ‘λ λ°Έλ°μ± : νλ‘μ μλ²λ μ¬λ¬ μλ²μ κ±Έμ³ νΈλν½μ λΆμ°μμΌ λ‘λ λ°Έλ°μ±μ ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μλ²μ λΆνλ₯Ό κ· λ±νκ² λλκ³ , μμ€ν μ μ±λ₯κ³Ό μμ μ±μ ν₯μμν¬ μ μμ΅λλ€.
- 6. λ°μ΄ν° μμΆ : νλ‘μ μλ²λ ν΄λΌμ΄μΈνΈμ μλ² κ°μ μ£Όκ³ λ°λ λ°μ΄ν°λ₯Ό μμΆνμ¬ λ€νΈμν¬ νΈλν½μ μ€μ΄κ³ , μλ΅ μλλ₯Ό ν₯μμν¬ μ μμ΅λλ€.
2οΈβ£ νλ‘μ μλ²μ μ ν.
-
1. μ λ°©ν₯ νλ‘μ(Forward Proxy)
- ν΄λΌμ΄μΈνΈμ μλ² μ¬μ΄μμ ν΄λΌμ΄μΈνΈμ μμ²μ λμ μλ²λ‘ μ λ¬ν©λλ€.
- μ£Όλ‘ ν΄λΌμ΄μΈνΈκ° νλ‘μ μλ²λ₯Ό ν΅ν΄ μΈλΆ λ€νΈμν¬μ μ κ·Όν λ μ¬μ©λ©λλ€.
- μλ₯Ό λ€μ΄, μΉ λΈλΌμ°μ μ€μ μμ νλ‘μ μλ²λ₯Ό μ μ₯νλ©΄, λͺ¨λ μΉ νΈλν½μ΄ μ΄ νλ‘μ μλ²λ₯Ό ν΅ν΄ μ λ¬λ©λλ€.
-
2. 리λ²μ€ νλ‘μ(Reverse Proxy)
- μλ²μ ν΄λΌμ΄μΈνΈ μ¬μ΄μμ μλ²λ₯Ό λμ νμ¬ ν΄λΌμ΄μΈνΈμ μμ²μ μ²λ¦¬ν©λλ€.
- μ£Όλ‘ μΉ μλ² μλ¨μ μμΉνμ¬ μλ²μ λΆνλ₯Ό μ€μ΄κ³ , 보μμ κ°ννλ©°, λ‘λ λ°Έλ°μ±μ μνν©λλ€.
- 리λ²μ€ νλ‘μλ ν΄λΌμ΄μΈνΈκ° μ€μ μλ²μ μμΉλ₯Ό μμ§ λͺ»νκ² νμ¬ λ³΄μμ κ°νν μ μμ΅λλ€.
-
3. μΉ νλ‘μ(Web Proxy)
- μΉ λΈλΌμ°μ λ₯Ό ν΅ν΄ νΉμ μΉμ¬μ΄νΈμ μ κ·Όν λ μ¬μ©νλ νλ‘μ μλ²μ λλ€.
- μ¬μ©μλ μΉ νλ‘μ μ¬μ΄νΈλ₯Ό ν΅ν΄ μ°¨λ¨λ μΉμ¬μ΄νΈμ μ κ·Όνκ±°λ, μ΅λͺ μΌλ‘ μΉμ νμν μ μμ΅λλ€.
-
4. νΈλμ€νμ΄λ°νΈ νλ‘μ(Transparent Proxy)
- ν΄λΌμ΄μΈνΈκ° νλ‘μ μλ²λ₯Ό μ¬μ©νκ³ μλ€λ μ¬μ€μ λͺ¨λ₯΄κ² νλ©΄μ νΈλν½μ μ€κ³νλ νλ‘μ μλ²μ λλ€.
- μ£Όλ‘ ISP(μΈν°λ· μλΉμ€ μ 곡μ)λ κΈ°μ λ€νΈμν¬μμ νΈλ ν½μ λͺ¨λν°λ§νκ±°λ νν°λ§νλ λ° μ¬μ©λ©λλ€.
3οΈβ£ νλ‘μ μλ²μ μ.
-
νμ¬ λ€νΈμν¬μμμ νλ‘μ μλ²
- νμ¬λ μ§μλ€μ΄ μΈν°λ·μ μ κ·Όν λ νλ‘μ μλ²λ₯Ό ν΅ν΄ μ κ·Όνλλ‘ μ€μ ν μ μμ΅λλ€.
- μ΄ νλ‘μ μλ²λ μ§μλ€μ΄ μ΄λ€ μΉμ¬μ΄νΈμ μ κ·Όνλμ§ λͺ¨λν°λ§νκ³ , νμμ λ°λΌ νΉμ μ¬μ΄νΈμ λν μ κ·Όμ μ°¨λ¨ν μ μμ΅λλ€.
-
곡곡 Wi-Fiμ νλ‘μ μλ²
- 곡곡 Wi-Fi λ€νΈμν¬λ νλ‘μ μλ²λ₯Ό ν΅ν΄ μ¬μ©μ νΈλν½μ λͺ¨λν°λ§νκ³ , 보μμ κ°νν μ μμ΅λλ€.
- μ΄λ₯Ό ν΅ν΄ μ μ± μ¬μ΄νΈμ λν μ κ·Όμ μ°¨λ¨νκ±°λ, λ€νΈμν¬λ₯Ό ν΅ν΄ μ μ‘λλ λ°μ΄ν°λ₯Ό μνΈνν μ μμ΅λλ€.
- νλ‘μ μλ²λ λ€νΈμν¬μ μ±λ₯, 보μ, κ·Έλ¦¬κ³ μ¬μ©μ κ²½νμ κ°μ νκΈ° μν κ°λ ₯ν λκ΅¬λ‘ μ¬μ©λ©λλ€.
4οΈβ£ Javaμμμ νλ‘μ μλ²(Proxy Server) μ¬μ© μ¬λ‘.
- νλ‘μ μλ²λ λ€νΈμν¬ νκ²½μμ ν΄λΌμ΄ν΄νΈμ μλ² κ°μ μ€κ³μ μν μ νλ μλ²μ
λλ€.
- Javaμμλ λ€μν μν©μμ νλ‘μ μλ²λ₯Ό μ¬μ©ν μ μμΌλ©°, κ·Έ νμ© λ°©λ²λ λ§€μ° λ€μν©λλ€.
-
1. HTTP/HTTPS νλ‘μ
- Java μ ν리μΌμ΄μ μ΄ μΈλΆ λ€νΈμν¬μ μμ²μ 보λ΄μΌ ν λ, νλ‘μ μλ²λ₯Ό ν΅ν΄ νΈλν½μ μ€κ³ν μ μμ΅λλ€.
- μ΄λ₯Ό ν΅ν΄ 보μ, λ‘κΉ
, μΊμ±, IP λ§μ€νΉ λ±μ μνν μ μμ΅λλ€.
System.setProperty("http.proxyHost", "proxy.example.com"); System.setProperty("http.proxyPort", "8080"); System.setProperty("https.proxyHost", "proxy.example.com"); System.setProperty("https.proxyPort", "8080");
-
μμ κ°μ΄ μμ€ν νλ‘νΌν°λ₯Ό μ€μ νμ¬ Java μ ν리μΌμ΄μ μ΄ HTTP λ° HTTPS μμ²μ λ³΄λΌ λ νλ‘μ μλ²λ₯Ό μ¬μ©νλλ‘ ν μ μμ΅λλ€.
-
2. SOCKS νλ‘μ
- Javaμμλ SOCKS νλ‘μλ₯Ό μ¬μ©νμ¬ TCP/IP κΈ°λ°μ λͺ¨λ μ°κ²°μ νλ‘μ μλ²λ₯Ό ν΅ν΄ μ€κ³ν μ μμ΅λλ€.
- SOCKS νλ‘μλ HTTP/HTTPS νλ‘μλ³΄λ€ λ μΌλ°μ μΈ νΈλν½μ μ²λ¦¬ν μ μμ΅λλ€.
System.setProperty("socksProxyHost", "proxy.example.com"); System.setProperty("socksProxyPort", "1080");
-
μ΄λ κ² μ€μ νλ©΄ Java μ ν리μΌμ΄μ μ΄ TCP/IP μ°κ²°μ μλν λ SOCKS νλ‘μ μλ²λ₯Ό ν΅ν΄ μ°κ²°μ μλν©λλ€.
-
3. RMI(Remote Method Invocation) νλ‘μ
- Java RMIλ λΆμ° μ ν리μΌμ΄μ μ ꡬννκΈ° μν΄ μ격 λ©μλ νΈμΆμ κ°λ₯νκ² νλ κΈ°μ μ λλ€.
- RMIμμ νλ‘μλ₯Ό μ¬μ©νμ¬ ν΄λΌμ΄μΈνΈκ° μ격 κ°μ²΄μ μ κ·Όν λ λ‘컬 κ°μ²΄μ²λΌ μ κ·Όν μ μλλ‘ ν©λλ€.
-
4. Spring Clould Gateway
- λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²μμ Javaλ‘ κ°λ°λ μλΉμ€λ€μ μ°κ²°νκ³ API κ²μ΄νΈμ¨μ΄ μν μ μννλ λ° Spring Clould Gatewayμ κ°μ νλ‘μ μλ² μν μ νλ νλ μμν¬λ₯Ό μ¬μ©ν μ μμ΅λλ€.
- μ΄λ λ§μ΄ν¬λ‘μλΉμ€ κ°μ ν΅μ μ κ΄λ¦¬νκ³ , 보μ, λ‘κΉ , μΈμ¦/μΈκ°λ₯Ό λ΄λΉνλ λ° μ¬μ©λ©λλ€.
-
5. Reverse Proxy
- Java μΉ μ ν리μΌμ΄μ μλ²λ 리λ²μ€ νλ‘μ μλ² λ€μμ μ€νλ μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, Nginxλ Apache HTTP Serverλ₯Ό νλ‘μλ‘ μ€μ νμ¬ ν΄λΌμ΄μΈνΈμ μμ²μ Java μΉ μ ν리μΌμ΄μ μΌλ‘ μ λ¬ν μ μμ΅λλ€.
5οΈβ£ νλ‘μ μλ² μ¬μ©μ μ₯μ .
-
보μ κ°ν
- ν΄λΌμ΄μΈνΈμ μλ² μ¬μ΄μ νΈλν½μ λͺ¨λν°λ§νκ³ , νΉμ μμ²μ μ°¨λ¨νκ±°λ νμ©ν μ μμ΅λλ€.
-
μΊμ±
- νλ‘μ μλ²λ μμ£Ό μμ²λλ λ°μ΄ν°λ₯Ό μΊμνμ¬ μλ² λΆνλ₯Ό μ€μ΄κ³ μλ΅ μλλ₯Ό ν₯μμν¬ μ μμ΅λλ€.
-
νΈλν½ κ΄λ¦¬
- νλ‘μ μλ²λ λ€νΈμν¬ νΈλν½μ κ΄λ¦¬νκ³ , λ‘λ λ°Έλ°μ±κ³Ό κ°μ κΈ°λ₯μ ν΅ν΄ μμ€ν μ μ±λ₯μ μ΅μ νν μ μμ΅λλ€.
-
IP λ§μ€νΉ
- ν΄λΌμ΄μΈνΈμ IP μ£Όμλ₯Ό μ¨κΈ°κ³ , νλ‘μ μλ²μ IP μ£Όμλ₯Ό λμ μ¬μ©ν μ μμ΅λλ€.
- Java μ ν리μΌμ΄μ μμ νλ‘μ μλ²λ₯Ό μ¬μ©νλ κ²μ λ€νΈμν¬ νκ²½μ μ μ΄νκ³ λ³΄μμ κ°ννλ©° μ±λ₯μ μ΅μ ννλλ° λ§€μ° μ μ©ν©λλ€.