CGI 프로그램과 서블릿JAVA/웹 애플리케이션2023. 11. 2. 16:43
Table of Contents
CGI ( Common Gateway Interface )
- 웹 서버와 애플리케이션 사이에 데이터를 주고받는 규약
- CGI 규칙에 따라서 만들어진 프로그램을 CGI 프로그램이라고 함
- CGI 프로그램 종류로는 컴파일 방식(C,C++,Java 등)과 인터프리터 방식 (PHP, Python 등)이 있음
Servlet ( Server + Applet 의 합성어)
- 자바에서 웹 애플리케이션을 만드는 기술
- 자바에서 동적인 웹 퍼이지를 구현하기 위한 표준
ServletContainer :
- 서블릿의 생성부터 소멸까지 라이프사이클을 관리하는 역활
- 섭르릿 컨테이너는 웹 서버와 소켓을 만들고 통신하는 과정을 대신 처리해준다. 개발자는 비즈니스 로직에만 집중하면 된다.
- 서블릿 객체를 싱글톤으로 관리 ( 인스턴스 하나만 생성하여 공유하는 방식 )
- 상태를 유지 ( stateful )하게 설계하면 안됨
- Thread safety 하지 않음
package org.example.counter;
public class Counter implements Runnable {
private int count = 0;
public void increment() {
count++;
}
public void decrement() {
count--;
}
public int getValue() {
return count;
}
@Override
public void run() {
this.increment();
System.out.println("Value for Thread After increment " + Thread.currentThread().getName() + " " + this.getValue());
this.decrement();
System.out.println("Value for Thread at last " + Thread.currentThread().getName() + " " + this.getValue());
}
}
package org.example.counter;
public class RaceConditionDemo {
public static void main(String args[]) {
Counter counter = new Counter();
Thread t1 = new Thread(counter, "Thread-1");
Thread t2 = new Thread(counter, "Thread-2");
Thread t3 = new Thread(counter, "Thread-3");
t1.start();
t2.start();
t3.start();
}
}
WAS vs 서블릿 컨테이너 :
- WAS는 서블릿 컨테이너를 포함하는 개념
- WAS는 매 요청마다 스레드 풀에서 기존 스레드를 사용함
- WAS의 주요 튜닝 포인트는 max thread 수
- 대표적인 WAS로는 톰캣이 있다.
'JAVA > 웹 애플리케이션' 카테고리의 다른 글
서블릿 프로그래밍 (0) | 2023.11.02 |
---|---|
웹 애플리케이션 (2) - 구현하기 (1) | 2023.11.02 |
웹 애플리케이션 (1) 개념 (0) | 2023.11.01 |
@Soohocoding :: Soohocoding
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!