2013년 8월 27일 화요일

Servlet에 대해서

1. Servelt : Java기반의 웹 프로그래밍 기술, thread기반의 빠른 처리속도가 장점.


2.HTTP특징
   
    -비 연결 : 클라이언트 요청에 응답 후 바로 연결을 끊음(과부하 방지)
    -비 상태 : 서버의 상태가 어떤지 상관없이 요청

    http : (프로토콜) 통신규약
    localhost : 호스트, 내부아이피, 실제아이피 3개중에 사용
    80 : 인터넷 접속시 사용하는 포트 (보여지진 않음)
    8080 : 포트번호(테스트 포트)
    ServletMain : 컨텍스트 루트


3.Servlet의 패키지 및 주요 객체
   
    패키지
        -javax.servlet : 패키지는 프로토콜에 독립적인 서블릿을 만들기 위한 클래스
        -javax.servlet.http : 패키지는 HTTP프로토콜의 고유한 기능(GET,POST 등)을 제공
   
    주요객체
       -HttpServletRequest : HTTP요청에 대한 기능 제공
       _HttpServletResponse : HTTP응답에 대한 기능 제공

*request : 클라이언트 요청정보가 담긴다.
*response : 클라이언트에게 보낼 정보가 담긴다.

2013년 8월 19일 월요일

Statement VS PreparedStatement

Statement

소스 가독성 : SQL문이 복잡할 수록 읽기 어렵다.

바이너리 데이터 입력 : 입력불가.

반복 수행시 속도 : 매번 SQL문을 DBMS에 형식에 따라 속도 느림.

성능 : SQL문을 매번 컴파일 후 사용.

사용법 : 매번 SQL문을 지정해준다.



Prepared Statement

소스 가독성 : 간결하다.

바이너리 데이터 입력 : 입력가능.

반복 수행시 속도 : SQL문을 한번만 변환하고 실행하여 속도 빠름.

성능 : 컴파일한 상태에서 바인딩

사용법 : SQL문에서의 ?의 변화만 준다.

My SQL에 대해서

 Downloads 클릭
 MySQL Community Server클릭
 사용자 컴퓨터 사양에 맞는 버전으로 다운로드

 로그인 할 필요없이 밑에 빨간색 네모 클릭






2013년 8월 8일 목요일

추상클래스

추상클래스란?
 
추상클래스(abstract class)는 추상적인 클래스로써 그 구현이 덜 되었거나 또는 아직은 미완성 클래스이므로 실제 인스턴스(또는 객체)를 생성할 수 없도록 한 클래스입니다. 다시 말해서, 추상클래스는 객체가 가지는 특성들을 추상화시켜 놓았을 뿐 아직 구체화 시키지 못한 클래스이므로, 이 추상클래스를 상속하는 하위클래스에서 좀 더 구체화 시키도록 하는 것입니다.
따라서, 추상클래스를 상위클래스로 하여 상속하는 하위클래스는 추상클래스인 상위클래스에서 완전히 구현하지 못한 부분들을 완전하게 구현해 주어야만 하위클래스에 대한 객체 생성이 가능하고, 그렇지 못할 경우 하위클래스는 상위클래스인 추상클래스와 같이 미완성이므로 자체적으로 객체를 생성할 수 없고, 이 하위클래스는 다시 추상클래스가 됩니다.

2 추상메소드는 추상클래스와 마찬가지로 아직 구현이 이루어지지 않고 단지 그 프로토타입만을 가지고 있는 메소드를 말합니다.
 
추상메소드는 미완성 메소드이어야 하므로, 메소드의 몸체(body)를 가질 수 없습니다. 추상메소드는 클래스가 가져야 할 인터페이스에 대한 프로토타입(메소드의 형태)을 정의하고 있습니다. 추상메소드는 하위클래스가 가져야 할 인터페이스를 정의합니다. 추상메소드를 포함하는 클래스는 반드시 추상클래스로 선언되어야 합니다.
추상클래스는 추상메소드를 포함할 수 있고, 추상메소드를 포함하는 클래스는 반드시 추상클래스로 선언되어야 합니다. 추상메소드를 포함하고 있는 추상클래스를 상속하는 하위클래스는 추상클래스가 갖고 있는 모든 추상메소드를 구현하여 주어야 합니다. 그럴 경우, 하위클래스는 하나의 클래스처럼 사용할 수 있고, 인스턴스의 생성도 가능하지만, 추상메소드를 모두 구현해 주지 못한 경우에는 하위클래스도 구현이 완전히 이루어지지 않은 추상메소드를 포함하게 되므로 추상클래스가 되며,
이 때 반드시 추상클래스로 선언되어야 합니다. 그렇지 않을 경우 다음과 같은 에러가 발생합니다. 이러한 추상 클래스(abstract class)와 추상 메소드는 해당 클래스와 메소드의 앞에 abstract 키워드를 사용하여 선언할 수 있습니다.

 3추상클래스의 선언방법 
 

abstract class 클래스이름 { 
   abstract 메소드선언;        // 메소드의 몸체는 없음 
}

예) 
abstract class AbstractClass { 
   abstract void abstractMethod(); 
}

Binary, Character 입출력에대해서

                         Binary                               |                Character
----------------------------------------|-----------------------------------
       |           1 byte 단위 read / write            |        문자셋에 따라 다르다
       |            Input Stream (추상)                |               Reader (추상)
       |                        ↑                              |                       ↑
입력|           FileInputStream(File)                 |              FileReader(File)
       |      ByteArrayInputStream(Memory)      |    CharArrayReader(Memory)
       |       PipedInputStream(Process)          |            StringReader(Memory)
       |                                                         |           PipedReader(Process)
----|------------------------------------+------------------------------------
       |           OutputStream(추상)                 |                 Writer(추상)
       |                         ↑                             |                        ↑
       |           FileOutputStream(File)              |              FileWriter(File)
       |     ByteArrayOutputStream(Memory)    |       CharArrayWriter(Memory)
출력 |       PipedOutputStream(Process)       |         StringWriter(Memory)
       |                                                         |          PipedWriter(Process)
----|-------------------------------------------------------------------------


2013년 8월 6일 화요일

Value Object에 대해서

Value Object
     
         >J2EE 패턴중의 하나로 화면의 입력값을 정리하여 보관 및 유지해주는 Class
                  >데이터를 전달하는 Class
                           >setter, getter 클래스

Value Object Pattern

1. 데이터 베이스에 포함된 데이터의 논리적인 view를 표현
2. 데이터들의 관계를 추상화하는 방법
3. 다양한 Data Source로부터 가져온 데이터를 단일 인터페이스로 표현.