분류 전체보기
CPU
CPU란 중앙처리장치 의 약자 두뇌 역할을 하며 사용자가 입력한 명령어를 해석하고 자료의 연산, 비교 하여 그 결과를 제어. ALU 산술논리장치 : 연산을 수행 CU 컨트롤 장치 : 제어명령을 전달. 레지스터 사이의 데이터 전송을 감시하고 ALU의 동작을 지시. 전체 컴퓨터 시스템의 작동을 통제 지시하는 장치, 적절한 순서로 명령을 꺼내고 명령을 해석하여 그 해석에 따라 적절한 신호를 보냄 레지스터 : 값을 일시적으로 기억. 한 비트를 저장할 수 있는 플립플롭의 모임으로, 소규모의 임시 기억 장소. 메모리 중에서 가장 속도가 빠. 름. 내부 버스가 연산장치와 레지스터를 연결해줌 하이퍼스레딩 : 한개의 코어에서 일을 하는 동안 남는 잉여자원을 활용하는 기술 1개의 쓰레드로서 한가지 일만 할 수 있었지만, ..
ServletContextListner 구현
서블릿은 다양한 시점에서 발생하는 이벤트와 이벤트를 처리하기 위한 인터페이스를 정의 하고 있다. 이들 이벤트와 인터페이스를 이용하면 웹앱에서 필요로 하는 데이터의 초기화나 요청 처리등을 추적할 수 있다. 서블릿 규약은 다양한 이벤트를 처리할 수 있는 인터페이스를 구현하고 있음 ServletContextListener를 이용한 이벤트 처리 웹앱이 시작되거나 종료되는 시점에 특정 클래스의 메서드를 실행할 수 있는 기능을 제공하고 있다. 초기화 작업, 자원 반환 등의 작업 수행 가능. 웹 앱이 시작되고 종료될 때 특정한 기능을 java.servlet.ServletContextListenr(웹앱이 시작되거나 종료될 때 호출할 메서드를 정의한 인터페이스) 인터페이스를 구현한 클래스를 작성한다. web.xml 파일..
JSP란
JavaServer Pages, 동적 페이지를 작성하는데 사용하는 자바의 표준 기술로서 HTML응답을 생성하는데 필요한 기능을 제공하고 있다.더 정확히는 XML, JSON, 바이너리 등 파일등도 응답으로 생성할 수 있지만 주로 HTML생성 목적으로 사용한다. JSP를 이용해서 만든 프로그램을 실행하려면 톰캣이나 제티 또는 JBoss EAP와 같으 ㄴ서버 프로그램이 필요하다. 왜 사용하는가 ? CGI 처럼 사용되지만 자바 서블릿(Java Servlet) 서블릿이란 웹페이지를 동적으로 생성하기 위해 서버측 프로그램을 말한다. 이는 자바 언어를 기반으로 만들지며 웹 어플리케이션 서버 ( Web Application Sever ) 위에서 컴파일 되고 동작한다. JSP 와 서블릿 JSP 와 서블릿의 차이점은 결과..
URL
인터넷에서, 어느 사이트에 접속하기 위해서 입력해야 하는, 주소를 포함한 일련의 문자. 맨 앞에 `http://'를 입력하고 다음에 해당 사이트의 주소를 표시함. 프로토콜 : 웹브라우저가 서버와 내용을 주고 받을 때 사용할 규칙 이름 서버이름 : 웹페이지를 요청할 때 서버의 이름을 지정함, 도메인 이름이나 ip주소를 입력하면 됨. 경로 : 웹페이지의 상세 주소에 해당함. 웹페이지마다 다른 경로를 가짐 쿼리 문자열 : 추가로 서버에 보내는 데이터에 해당함 같은 경로라 하더라도 입력한 값에 따라 다른 결과를 보여줘야 할 대 쿼리 문자열을 사용한다.
자바 Object 클래스
기본적으로 아무런 상속을 받지 않으면 java.lang.Object 클래스를 확장한다. 자바에서 한번에 이중 상속을 받을 수 없지만, 여러 단계 상속을 받을 수 있다. 그러면 왜 Object 클래스의 상속을 받을까? 가장 큰 이유는 Object 클래스에 있는 메소드들을 통해서 클래스의 기본적인 행동을 정의할 수 있기 때문이다. 클래스는 이정도의 메소드는 정의되어 있어야 하고, 처리해줘야 한다. 는 것을 정의하는 작업이 필요하기 때문에 Object 클래스를 상속 받았다고 생각하면 된다. Object 클래스에서 제공하는 메소드들의 종류는? Object클래스에 선언되어 있는 메소드는 객체를 처리하기 위한 메소드와 쓰레드를 처리하기 위한 메소드로 나뉜다. 쓰레드는 프로그램이 실행되는 작은 단위 중 하나이다. 웹..
자바 상속
확장을 하면 부모 클래스에 선언되어 있는 public protected로 선언되어 있는 모든 변수와 메소드를 내가 갖고 있는 것처럼 사용할 수 있다. 즉 다른 패키지에 선언된 부모 클래스의 접근 제어자가 없거나 privat로 선언된 것들은 자식 클래스에서 사용할 수 없다. 하나를 제대로 만들어 놓고 그것에서 파생되는 것들을 조금씩 바꾸어 판매하면 사용자는 기호에 따라 여러 모델을 살 수 있을 것이다. 자바에서의 상속도 비슷한 개념이다. 상속과 생성자 부모 클래스에서는 기본 생성자를 만들어 놓는 것 이외에는 상속을 ㅜ이해서 아무런 작업을 할 필요는 없다 매개변수가 있는 생성자를 만들었을 때 기본 생성자는 자동으로 만들어지지 않는다. 부모 클래스에 매개변수가 없는 기본 생성자를 만든다. 자식 클래스에서 부모..
패키지와 접근 제어
자바 애플리케이션을 개발할 때 클래스들을 분류하지 않으면 이름이 중복되거나, 어떤 클래스가 어떤 일을 하는지 혼동되는일이 발생한다. 그래서 패키지가 존재한다. 패키지 이름은 모두 소문자로 지정, 약속이 되어 있고 99.9프로 자바 개발자들이 소문자로 선언하여 사용하고 있음 자바의 예약어를 절대 사용하면 안된다. import를 이용하여 다른 패키지에 접근하기 JDK5 부터는 import static이라는 것이 추가되었다. 이 import static은 static한 변수와 static 메소들를 사용하고자 할 때 용이하다. 만약 Package 클래스에 import한 동일한 이름의 static 변수나, static메소드가 자신의 클래스에 있으면, 자신의 클래스에 있는 static 변수나 메소드가 import ..
Serializable, NIO
생성한 객체를 파일로 저장할 일, 다른 서버에서 생성한 객체를 받을 일, 보낼일, 이럴 때 꼭필요한 것이 serializable 이다. 파일을 읽거나 쓰거나 보내거나 받도록 하려면 반드시 이 인터페이스를 구현해야한다. 이 인터페이스를 구현해야만 JVM 에서 해당 객체는 저장하거나 다른 서버로 전송할 수 있도록 해준다. ObjevctOutputStream 이라는 클래스를 사용하면 객체를 저장할 수 있다. ObjevcInputStream 은 객체를 읽을 수 있다. transient라는 예약어는 Serializable과 떨어질 수 없는 관계이다. 객체를 저장하거나 다른 JVM으로 보낼 때 , transient라는 예약어를 사용하여 선언한 변수는 Sereialiable의 대상에서 제외된다. 해당 객체를 생성한 ..
자바 참조 자료형
말그대로 나머지 다이다. 기본 자료형 8개를 제외한 나머지 타입은 모두 참조 자료형이다. 가장 큰 차이는 new를 사용해서 객체를 생성하는지 여부의 차이라고 보면 된다. (new없이 생성할 수 있는 유일한 참조자료형은 String 뿐) 기본 생성자는 이미 생성자가 선언되어있으면 생성되지 않는다. 자바에서 생성자는 왜 필요할까? 생성자는 자바 클래스의 객체를 생성하기 위해서 존쟇나다. 컴파일러가 생성자의 이름이 클래스와 동일해야 생성자로 인식하기 때문이다. DTO는 데이터 전송용 객체 VO 데이터 보관용 객체 VO가 DTO에 속하는 개념이라, DTO를 많이 사용한다. DTO를 만들어 두면, 메소드를 선언할 대 리턴타입은 한가지만 선언할 수 있다. 이와 같이 복합적인 데이터를 리턴하려면 String[]과 같..
자바 배열
한 변수에 여러 개의 값을 넣을 수 있는 것이 배열이다 배열의 기본값 기본 자료형 배열의 기본값은 각 자료형의 기본값과 동일하다. 지역변수의 경우에는 초기화를 하지 않으면 사용이 불가능하다고 얘기했다. 하지만 배열에서는 지역변수라고 할지라도 배열의 크기만 지정해주면 된다. 참고로 char 배열의 기본값은 \u0000 이며 화면에 출력할 대에는 한칸의 공백으로 보인다. boolean의 기본값은 false이다. 배열의 크기를 지정하여 배열 객체를 초기화만 하면 기본값이 지정되며, 참조 자료형 배열의 각각의 값은 각각의 값을 초기화 해줘야만 null이 되지 않음(String포함) static 배열은 클래스 객체를 생성할 때마다 배열을 새로 생성하지 않는다