서블릿 동작 과정
·
JAVA
서블릿 동작 과정에 대해 간단하게 알아봐요. 클라이언트가 웹 브라우저에 URL 입력을 하면 해당하는 HTTP Request를 해당하는 서버의 Servlet Container 에 보내요. Servlet Container 는 요청, 응답 객체를 생성해요. 클라이언트가 요청한 URL을 web.xml을 참조해서 분석하고 어느 서블릿에 대한 요청인지 찾아요. 서블릿이 처음 요청된 경우에는 서블릿 클래스를 메모리에서 로딩하여 객체를 생성해요. 생성된 객체는 메모리에 계속 존재하므로 이후에 동일한 요청이 왔을 때는 기존의 객체를 사용해요. init() : 객체가 생성되면서 init()이 최초에 한번 호출돼요 service() : 요청 메소드(GET,POST)에 따라 실행돼요. 여러 클라이언트가 동시에 요청을 하더라도..
추상클래스와 인터페이스에 대하여
·
JAVA
추상클래스 && 인터페이스 추상클래스는 abstract 라는 키워드와 함께 선언된 클래스예요. (추상 메소드를 포함할 수도 있고 하지 않을 수도 있고). 추상클래스는 인스턴스화 될 수 없지만 상속될 수 있어요. 추상클래스를 상속받는 클래스에서는 일반적으로 부모클래스에 있는 모든 추상메소드들을 구현해야 해요. 그렇지 않은 경우엔 해당 서브클래스 또한 abstract 로 선언되어야 합니다. 추상클래스와 인터페이스 차이 추상클래스와 인터페이는 인스턴스로 만들지 못해요. 메소드 구현부가 있는 메소드와 없는 메소드 모두 가질 수 있어요. 인터페이스의 모든 변수엔 public static final , 메소드에는 public abstract가 붙어있어요.(생략가능) 추상클래스엔 static, final 이 아닌 변..
미니 WAS 만들기.
·
JAVA
WAS = Web Application Server 톰캣과 같은 웹서버를 사용할 때, WAS에 대해 조금이라도 아는 것이 도움이 되기에 정리를 해봅니다. 과정은. 1) 접속 2) 요청 3) 응답 4) 연결close 4단계 과정입니다. 1) 접속 우선 main 메소드를 사용할 Main 클래스를 만들어 줍니다. public class Main { public static void main(String[] args) { MiniWAS was = new MiniWAS(); was.start(); System.out.println("was 를 시작하겠습니다~"); } } MiniWAS 클래스에서 Connector 클래스의 생성자를 이용해 포트번호를 connector 객체로 보냅니다.public class Mini..
자바 스레드.
·
JAVA
Thread 쓰레드 : 프로세스(실행중인 프로그램)에서 하나의 실행 흐름을 말한다. JVM 도 프로세스. 자바는 멀티 쓰레드를 지원하고, 멀티 쓰레드란 하나의 프로그램에서 여러 개의 실행 흐름을 만들고 실행 할 수 있는 것이다. 멀티쓰레드는 왜 사용할까? 외부와의 연계같이 대기 시간이 발생할 때 기다리는 동안 다른 작업을 처리할 수 있게 하기 위함이다. 처리 속도를 향상시키기 위함. 쓰레드 만드는 법.1. Runnable 인터페이스를 구현하는 클래스를 만든다. (Runnable 인터페이스에는 run() 메소드가 유일하다. 이 메소드를 반드시 구현해주어야 한다.) (메소드가 하나인 인터페이스 -> 람다 인터페이스) MyThread implements Runnable {} 2. 인터페이스를 구현한 클래스 객..
자바 제네릭 타입에 대해 알아보자.
·
JAVA
출처 : http://palpit.tistory.com/665 제네릭 타입 ( class , interface ) 제네릭 타입은 타입을 파라미터로 가지는 클래스와 인터페이스를 말합니다. 제네릭 타입은 클래스 또는 인터페이스 이름 뒤에 ""부호가 붙고, 사이에 타입 파라미터가 위치합니다. 아래 코드에서 타입 파라미터의 이름은 T 입니다. public class className { ... } public interface interfaceName { ... } 타입 파라미터는 변수명과 동일한 규칙에 따라 작성할 수 있지만, 일반적으로 대문자 알파벳 한 글자로 표현합니다. 제네릭 타입을 실제 코드에서 사용하려면 타입 파라미터에 구체적인 타입을 지정해야 합니다. 그럼 제네릭 타입을 왜 쓸까요? public c..
클래스 생성에 대한 예제 및 설명
·
JAVA
import java.util.Calendar;import java.util.GregorianCalendar; public class CalendarTest { public static void main(String[] args) { // Calendar 는 추상클래스이기 때문에 new 를 이용해서 인스턴스를 생성할 수 없다. // 객체 생성 과정을 숨기는 것. // Calendar 은 추상클래스라서 인스턴스를 만들 수 없다. // getInstance() 는 return 값이 Calendar 이지만 실제로는 Calendar 를 반환하는 것이 아니라. // Calendar 의 자식 클래스들 중에 하나다가 반환 되는 것이다. Calendar cal2 = Calendar.getInstance(); // 위와..
추상클래스와 인터페이스
·
JAVA
https://brunch.co.kr/@kd4/6 클래스는 크게 일반 클래스와 추상 클래스로 나뉘는데 추상 클래스는 클래스 내 '추상 메소드'가 하나 이상 포함되거나 abstract로 정의된 경우를 말합니다. 반면 인터페이스는 모든 메소드가 추상메소드인 경우입니다. 추상클래스와 인터페이스는 상속받는 클래스 혹은 구현하는 인터페이스 안에 있는 추상메소드를 구현하도록 강제한다. 추상클래스와 인터페이스는 존재 목적이 다릅니다.추상클래스는 그 추상 클래스를 상속받아서 기능을 이용하고, 확장시키는데 있습니다.반면에 인터페이스는 함수의 껍데기만 있는데, 그 이유는 그 함수의 구현을 강제하기 위해서입니다. 구현을 강제함으로써 구현 객체의 동작을 보장할 수 있습니다. 상속은 슈퍼클래스의 기능을 이용하거나 확장하기 위해..
자바 컬렉션
·
JAVA
출처 : http://hackersstudy.tistory.com/26