Programming

    [Servlet & Jsp] Servlet 생명주기, service, doGet, doPost

    ※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] Servlet 생명주기 Servlet은 Servlet Container에 의해 관리되며, Servlet Container는 Servlet의 생명주기 관리, 멀티스레딩 관리 등의 기능을 수행한다. Servlet의 생명주기는 다음과 같다. (1) WAS가 서블릿 요청을 받으면 해당 서블릿의 객체가 메모리에 있는지 확인 (2) 만약 메모리에 없다면 → 해당 서블릿 클래스를 메모리에 올림 → init() 메소드를 호출 → service() 메소드를 호출 만약 메모리에 해당 서블릿 객체가 존재한다면 → service() 메소드를 바로 호출 (3) WAS 종료 시 혹은 init() 메소드 수정 등 객체 삭제해야 할 때 d..

    [Servlet & Jsp] Application, Session, Cookie

    Application, Session, Cookie는 HTTP 환경에서 상태를 유지하기 위한 기술이다. HTTP 트랜잭션은 별개의 요청으로 판단하기 때문에 상태를 가질 수 없다. 예를 들어, www.exam.com/page1 & www.exam.com/page2가 있을 때 둘의 요청은 서로 연관성을 가지지 않고 독립적이기 때문에 page1에서 만들어진 데이터는 page2를 요청할 때 유지되지 않는다. 그러나 웹 개발 시 필연적으로 여러 요청(혹은 사이트)에 걸쳐 상태를 유지해야 하는 경우가 있다. ex1) 최초 페이지에서 로그인 후 여러 페이지에 걸쳐 로그인 상태가 유지되어야 하는 경우 ex2) 쇼핑몰 장바구니에 담긴 물건 정보들이 다른 페이지로 이동하더라도 유지되어야 하는 경우 [ 1 ] Applica..

    [Java] List Interface

    ※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] List Interface List Interface란 선형 자료구조로서 순서가 있는 데이터를 저장하기 위해 만들어진 인터페이스이다. 보통 같은 종류의 데이터를 저장할 때 int[] arr = new int[10] 와 같은 '배열'을 활용하지만, 이처럼 선언한 배열은 10개의 데이터만 저장할 수 있다. 만약 할당된 범위를 넘어설 경우 IndexOutofBoundsException 에러가 발생한다. List interface 는 '동적 크기'를 가지므로 배열의 단점을 보완할 수 있고, '중복을 허용'하고 '저장순서가 유지'된다는 특징도 있다. List interface 의 대표적인 메소드는 다음과 같다. 메소드 ..

    [Java] 컬렉션 프레임워크

    ※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] 컬렉션 프레임워크란? 컬렉션 프레임워크란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합이다. 즉, 데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현한 것을 의미한다. 자바 컬렉션 프레임워크는 Interface로 구현된다. [ 2 ] 구조 컬렉션 프레임워크에는 Collection 인터페이스를 상속받는 List, Set, Queue 가 있고, Collection 을 상속받지 않는 Map 이 있다. 둘의 큰 차이는 Iterable 인터페이스를 상속받냐, 상속받지 않냐의 차이인데 Iterable 인터페이스를 상속받은 Collection 인터페이스..

    [Java] length, length(), size() 차이

    [ 1 ] length - 배열의 길이 int[] arr = new int[10]; double[] arr2 = new double[10]; String[] arr3 = new String[10]; System.out.println(arr.length); System.out.println(arr2.length); System.out.println(arr3.length); length는 배열의 길이를 구할 때 사용된다. [ 2 ] length() - 문자열의 길이 String str = "length() test"; System.out.println(str.length()); length() 는 문자열의 길이를 구할 때 사용된다. [ 3 ] size() - 컬렉션프레임워크 타입의 길이 ArrayList l..

    [Java] Enum 클래스

    ※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] Enum 클래스란? enum 이란 관련있는 상수(constant)들의 집합을 의미한다. Java에서는 final, interface 활용 등 상수를 정의할 수 있는 여러가지 방법이 있다. 하지만, 여러가지 불편함과 한계가 있었기에 JDK 1.5부터 enum 을 사용할 수 있게 되었다. enum 클래스의 대표적인 장점은 다음과 같다. (1) 코드가 단순해진다. (2) 인스턴스 생성과 상속을 방지할 수 있다. (3) 구현의 의도가 열거임을 분명하게 나타낼 수 있다. final과 interface로 상수 정의하는 방법을 먼저 살펴보며 enum 클래스의 장점을 느껴보자. [ 2 ] final 활용 public cl..

    [Java] Object 클래스

    ※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] Object 클래스란? 자바에는 가장 기본적인 동작을 수행하는 클래스의 집합으로서 import하지 않고도 사용할 수 있는 java.lang 패키지가 있다. java.lang 패키지에는 모든 클래스의 최고 조상 클래스인 Object 클래스가 있으며, Object 클래스는 필드는 없고, 11개의 메소드로 구성되어 있다. 그 중 대표적인 메소드인 toString, equals, finalize, clone을 정리하고자 한다. [ 2 ] toString() toString() 메소드는 해당 인스턴스에 대한 정보를 문자열로 반환하는 메소드이다. 반환되는 문자열은 "class가 속해있는 패키지.class@객체식별자"이며,..

    [Java] 타입 변환 (type conversion) - 자동 타입 변환, 강제 타입 변환

    ※ 본문은 혼자 공부한 내용을 기록한 글입니다. 오개념이 있다면 댓글로 알려주세요! [ 1 ] 타입 변환 (type conversion) 이란? 하나의 타입을 다른 타입으로 바꾸는 것을 타입 변환이라 하며, Java에는 자동 타입 변환과 강제 타입 변환이 있다. 기본적으로 크기가 작은 타입에서 큰 타입으로의 타입 변환은 생략할 수 있고(자동 타입 변환), 자동 타입 변환이 되지 않는 경우에는 타입 캐스트 연산자를 활용하여 강제 타입 변환을 해야 한다(기본 데이터 타입의 경우 데이터 손실 발생할 수 있다). C/C++과 유사한 기본 데이터 타입에서의 타입 변환은 간단히 정리하도록 하고, 본문에서는 Java의 클래스 타입 변환에 초점을 두도록 하겠다. byte → short / char → int → lon..