웹 프로그램(혹은 웹 시스템, 웹 사이트, 웹 서비스 등)을 실행시킬 수 있는 기초적인 환경을 제공
종류로는 WebLogin, WevShpere, Tomcat, jeus, JBoss 등이 있습니다.
Web Application?
웹을 기반으로 실행되는 프로그램을 의미합니다.
웹브라우저 / 요청
웹서버 / 처리를 요청
웹어플리케이션 / 처리를 수행
DB / 처리를 수행
웹어플리케이션 / 서버(처리결과를 웹서버로 돌려보냄)
웹서버 / 응답
웹 브라우저
Web Server
대표적으로는 Apache, WebtoB 등이 있습니다. 웹 서버는 작성된 html페이지 등을 네트워크망에 종속되지 않고, 웹 서비스를 할 수 있도록 어플리케이션이라고 생각하면 간단합니다. HTTP를 통해 웹 브라우저에서 요청하는 HTML문서나 오브젝트(이미지 파일 등)을 전송해주는 서비스를 말합니다.
Web Server와 Web Application Server의 차이
웹 서버의 아파치나 IIS와 같은 소프트웨어는 HTML/ CGI나 기타 웹 문서들을 HTTP규약에 따라 웹 클라이언트와 주고 받으며 통신하는 것이 주 역할입니다.
웹 애플리케이션 서버는 우선 규모가 크고 엔터프라이즈 환경에 필요한 트랜잭션, 보안, 트래픽관리, DB커넥션 풀, 사용자 관리 등등의 다양하고 강력한 기능을 제공하는 s/w를 의미합니다.
고정된이란 의미를 가지고 있습니다. Static이라는 키워드를 사용하여 Static변수와 Static메소드를 만들 수 있는데 다른말로 정적필드와 정적 메소드라고도 하며 이 둘을 합쳐 정적 멤버(또는 클래스 멤버)라고 합니다. 정적 필드와 정적 메소드는 객체에 소속된 멤버가 아니라 클래스에 고정된 멤버입니다.그렇기에 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스별로 관리됩니다. 따라서 클래스의 로딩이 끝나는 즉시 사용할 수 있습니다.
정적 멤버 선언
필드나 메소드를 생성 시 인스턴스로 생성할것인지 정적으로 생성할것인지에 대한 판단 기준은 공용으로 사용하느냐 아니냐로 내리면 됩니다. 그냥 생성한다면 자동으로 인스턴로 생성되며 정적으로 생성하려면 필드와 메소드 선언 시 static이라는 키워드를 추가적으로 붙이면 됩니다.
1
staticint num = 0;
2
publicstaticvoidstatic_method(){
3
4
} // static 리턴 타입 메소드{}
예시
Number라는 클래스안에 클래스 변수 num과 인스턴스 변수 num2를 생성했고 두개의 Number인스턴스 number1, number2를 생성했을때 number1dptj num1과 num2를 각각 1씩 증가시키고 number2에서 num1과 num2를 각각 출력시켰을때는 num1은 1, num2는 0이 출력되었습니다.인스턴스 변수는 인스턴가 생성될때마다 생성되므로 인스턴스마다 각기 다른 값을 가지지만 정적 변수는 모든 인스턴스가 하나의 저장공간을 공유하고 항상 같은 값을 가지기에 나타난 현상입니다.
예시2
정적 메소든느 클래스가 메모리에 올라갈 때 정적 메소드가 자동으로 생성됩니다. 그렇기에 정적 메소드는 인스턴스를 생성하지 않아도 호출을 할 수 있습니다. 정적 메소드는 유틸리티 함수를 만드는데 유용하게 사용됩니다.