목요일, 5월 2
Shadow

#007 기본 객체와 영역

미분류
1. out 객체 2. pageContext 객체 3. application 객체 4. exception 객체 를 공부한다. 2. out 객체 - JSP페이지가 생성하는 모든 내용은 out 본객체를 통해 전송된다 . 웹 브라우저에 데이터를 전송하는 출력 스티림으로서 JSP 페이지가 생성한 데이터를 출력한다. <% out.println("<html">); out.println("<head">); %> - out 기본 객체의 출력 메서드 print() : 데이터를 출력한다. println() : 데이터를 출력하고 \r\n을 출력한다. newLine() : \r\n을 출력한다. - out 기본 객체와 버퍼의 관계 page 디렉티브의 버퍼 속성을 사용하여 jsp페이지의 버퍼 크기를 조절할수 있다 <%@ page buffer="16kb" %> out 기본 객체가 내부적으로 내부적으로 사용하는 버퍼의 크기를 16킬로바이트가 된다. : 버퍼와 관련된 메소드들 getBufferSize() : 버퍼의 크기를 구한다. getRemaing() : 현재 퍼어의 남은 크기를 구한다. clear() : 버퍼의 내용을 비운다. 만약 버퍼가 이미 플러시 되었다면 IOException을 발생시킨다. clearBuffer() : 버퍼의 내용을 비운다. 다만 버퍼가 플러시 한 경우에도 IOException을 발생 시키지 않는다. flush() : 버퍼를 플러시 한다. isAutoFlush() : 버퍼가 다 찼을때 자동으로 플러시 할 경우 true를 리...

#006 필수 이해 요소

미분류
웹 브라이저의 서비스 요청에 응답하는지와 출력 버퍼가 응답과정에서 어떻게 동작하는 지를 살펴 볼것이다. 엡 컨테이너는 JSP페이지에 대한 요청이 들어올 경우 다음과 같은 처리를 한다. JSP에 해당하는 서블릿이 존재 하지 않을경우 JSP페이지를 컴파일 하여 서블릿을 생성 후 생성된 서블릿을 사용하여 클라이언트 요청을 처리한다. JSP에 해당하는 서블릿이 존재하는 경우 곧바로 서블릿을 사용하여 클라이언트의 요청을 처리한다. 즉, JSP페이지를 요청할때에는 JSP를 직접적으로 실행하는 것이 아니라, JSP를 자바 소스코드로 변환 한뒤 컴파일 해서 생성된 서블릿을 실행하는 것이다. JSP페이지를 자바 코드로 변환하는 단계를 변환 단계라고 하며, 자바코드를 서블릿클래스에 변경하는 단계를 컴파일 단계라고 한다. 1. 출력 버퍼와 응답JSP페이지에 생성하는 출력 내용을 곧바로 웹 브라우저에 전송하지 ㅇ낳고 버퍼에 저장했다가 한꺼번에 전송 함으로써 생기는 장점은 다음과 같다. 데이터 전송 성능을 향상시킨다. 곧바로 웹 브라우저로 전송되지 않기 때문에, JSP 실행 도중에 버퍼를 비우고 새로운 내용을 보여 줄수 있다. 버퍼가 다 차기 전까지는 헤더를 변경 할수 잇다. 버퍼를 사용하면 성능이 향상되는데 네트워크를 비롯한 모든 데이터 교환에서는 작은 단위를 여러차례 보내는 것보다 큰단위로 한번에 묶어서 보내는 것이 더 높은 성능을 발휘하게 된다. 또한 <JSP:forward>기능과 에러 페이지 처리 기능이 가능하다는 점이다. JSP실행과정에서 에러가 발생할 경우, 지금까지 생성한 내용을 버퍼에서 지우고 에러 화면을 ...

#004 JSP로 시작하는 웹 프로그래밍

미분류
벌써 세번째 군요. 토요일에 올렸어야 했는데 다음 라이프 체인저 때문에..ㅜㅜ 세번째 시간에는 기본적인 코드 구조와 GET/POST등에 대해서 알아 볼꺼에요 이장에서는 JSP를 사용하는데 필요한 기본적인 지식을 학습합니다. HTML 문서를 생성하는 JSP페이지의 기본 골격을 살펴본뒤, request와, response 객체를 살펴 보고 JSP페이지에서 HTML문서를 생성하는데 기본적인 지식을 배우게 된다. 1. JSP에서 HTML 문서를 생성하는 기본 코드 구조 JSP의 주된 목적은 웹 브라우저에서 보여줄 HTML 문서를 생성하는 것이다. JSP페이지에 대한 정보를 입혁하는 설정 부분과 실제로 HTML 문서를 생성하는 생성 부분으로 나눌수 있다. JSP의 설정 부분에는 JSP 페이지에 대한 정보가 위치하며, 일반적으로 다음과 같은 정보를 입력한다. - JSP페이지가 생성하는 문서의 타입 - JSP페이지에서 사용할 커스텀 태그 - JSP페이지에서 사용할 자바 클래스 지정 2. JSP페이지의 구성요소 JSP페이지를 작성할때는 JSP페이지에 대한 정보를 지정해 주는것이 필요하며, 웹 브라우저가 전송한 데이터를 읽어 오는 기능이 필요하며, JSP페이지에서 사용할 데이터를 생성해주는 실행 코드가 필요하며, 웹 브라우저에 문서 데이터를 전송해주는 기능이 필요하다. -디렉티브 -JSP스크립트 -표현언어 -내장객체 -정작인 데이터 -표준액션 태그 -커스텀 태그와 표준 태그 라이브러리 이 7가지 구성요소들을 익히는 과정이 바로 JSP를 공부하는 과정이라 할수 있다. 2...

#005 자바 기초 문법

미분류
1. 기본 데이터 타입 자바의 기본 데이터 타입 char : 자바 언어가 지원하는 모든 유니코드 byte : -128~127 short : -32768 ~ 32767 int : -2147483648 ~2147483647 long : -922337203854775808~922337203854775807 float : 32비트 double : 32비트 boolen : ture, false 1.1 문자 타입과 값 \ : \\ 탭 : \t new line : \n carriage return : \r 작은따옴표(') : \' 큰따옴표(") : \" char ch =-"\'"; 로 사용 1.2 배열 int[] intArray = new int[10]; intArray[8] = 10; int arry = intArray[1]*3; 1.3 타입 변환 묵시적 형변환 : 같은 형으로 받을 경우 (작은것에서 큰것으로 변환) 예) byte = 1 + 2 라면 1 + 2는 integer로 인식 되기 때문에 integer형이 byte형 보다 크므로 들어갈 수 없다. 만약 값을 변수에 넣고자 한다면 int = 1 + 2로 하면된다. int형 = int형 공존 하게 된다. 명시적 형변환 : 명시적으로 (byte)형식으로 만느는 방법 (큰것에서 작은것으로 변환) 강제로 변환 예) byte = 1 + 2 를 계산하면 3이므로 byte에 값을 넣을 수 있다 이럴 경우 강제로 값을 byte에 넣는다. byte = (byte)(2+2)로 하면 byte = byte형으로 ...

#002 웹프로그래밍 기초

미분류
1. JSP란 무엇인가? JSP 즉, JavaSever Pages는 스크립트 언어이며, 다음과 같은 특징을 가지고 있다. - 자바언어를 기반으로 하는 스크립트 언어로서 자바가 제공하는 기능을 그대로 사용할수 있다. - HTTP와 같은 프로토콜에 따라 클라이언트의 요청을 처리하고 응답한다. - HTML, XML등 클라이언트가 요청한 문서를 생성하는데 주로 사용된다. - 서블릿/EJB등의 엔터프라이즈 기술들과 잘 융합된다. - 표현언어, 표현식, 스크립트릿 등 다양한 스크립트 요소와 액션 태그 등을 제공함으로써 보다 쉽게 웹 어플리케이션을 프로그래밍 할수 있도록 도와준다. 자바언어를 그대로 사용할수 있다는 것은 JSP의 가장큰 장점중 하나다. JSP는 HTTP프로토콜을 알맞게 처리할수 있도록 되어있다. 웹브라우저가 전송한 데이터를 읽어오고 생성한 데이터를 웹 브라우저에 전송한 것 처럼 웹 어플리케이션을 개할하는데 필요한 기능들을 스크립트 차원에서 제공하고 있다. 사용자의 세션을 쉽게 관리 할 수 임ㅆ도록 자체적으로 새션 기능을 제공하고 있다. JSP는 주로 웹 브라우저의 요청에 따라 알맞은 HTML 결과 화면을 생성하기 위해 사용된다. HTML 뿐만 아니라 XML, PDF등 다양한 문서를 생성하는데도 JSP를 사용할수 있다. 여기에서 설명하는 JSP 2.1은 J2EE 5의 규약이 포함되어 있다. 2. 웹 컨테이너 웹컨테이너는 이름 그대로 웹 어플리케이션을 실행 할수 있는 컨테이너이다. 자바에서 웹어플리케이션은 JSP와 서블릿으로 구현되므로 자바에서의 웹 컨테이너는 밑에 그...

#003 웹 프로그래밍 시작하기

미분류
1. 웹 프로그래밍의 절차 - 개발 환경 구축 - 웹 애플리케이션 코드 개발 및 테스트 - 완성된 웹 애플리케이션을 서비스 환경에 배포 2. 개발환경 구축하기 - JSP와 서블릿을 이용해서 웹 애플리케이션을 개발하기 위해서 설치해야할 프로그램 (1) JDK : 자바 개발 도구, 자바 기반의 웹 애플리케이션을 개발하고 실행하기 위해서 필요하다 (2) 웹 컨테이너 : JSP나 서블릿을 실행시켜 주는 컨테이너로 톰켓, 제티, 글래스피쉬 등이 있다. (3) 코드 편집기 : 코드를 작성하거나 배포하기 위해 필요한 것으로 울트라 에디트, 노트패드플러스플러스, 이클립스 나 넷빈즈와 같은 개발도구가 있다. 3. JDK의 설치 1. JDK를 다운 받기 위해서 http://java.sun.com에서 다운로드 페이지로 이동한다. 2. J2SE Kit 6버젼을 다운로드 하는데 플래폼을 윈도우즈로 설정하고 계속 버튼을 클릭하고 다운로드 페이지로 이동한다. 3. 다운로드 페이지에서 오프라인으로 설치가 가능한 버젼을 다운로드 한다. 4.다운로드 설치 파일을 설치한다. ※ 가급적 설치 폴더를 program file이 아닌 root(c:\)밑에 폴더를 만들어 설치한다. 폴더를 만들때 폴더명은 영문으로 하고 띄워쓰기가 없이 붙여서 이름을 명명한다. 예)Java EE(x)--> JavaEE(o) 4. JAVA_HOME 환경 변수 설정 : 톰켓과 같은 웹 컨테이너가 JDK의 경로가 필요하기 때문에 사용하는 환경변수 이다. - 비스타, 7의 경우 : 제어판 - 시스템 및 유지관리-시스템 에서 고급 시스템 설정을 클릭한다. - 윈도우...

#001 JSP의 시작

미분류
이제 본격적으로 구글에 들어갈 준비를 해야 하기에.. 해야 할것들을 해야 하는 시간이 돌아 온것 같다. JSP, 알고리즘, 아케텍쳐 디자인 패턴.. 등 1년안에 해야 하는것들이 너무나 많다. 첫번째로JSP를 시작으로 비즈니스 모델을 설계할수 있을때 까지 남은 시간은 별로 없는것 같다. 내가 블로그를 하는 이유는 사람들이 자바를 공부할때 인터넷으로만으로도 자바를 공부할수 있다. 꼭 책을 사야 할 필요가 없다는 것을 알려주기 위함이다. 한명이 책을 읽고 정리해서 올리면 다른사람이 그것을 보고 이해를 한다면 얼마나 좋은 일인가?? 그럴려면 다들 납득이 갈만한 그러한 책을 골라서 공부해야 한다는 것이.. 어렵겠지만.. 그래도 블로그를 가지고 한번 도전해 보고 싶을 뿐이다. 그래서 이제 시작을 하고 남들이 하지 않은 분야 꺼려하는 분야를 호되게 공부해서 올려 볼까 한다. 난 첫번째로 JSP의 책 "JSP 2.1 웹 프로그래밍 기초부터 실전까지"의 책과 인터넷을 자료를 종합하여 나만의 책을 만들어 볼까 한다. 오늘부터 한달정도의시간동안 열심히 해 보고 JSP을 한번 마스터 하보는 그러한 시간이 되었으면 한다....

#001 구글에 가려면…

미분류
우연히 구글에 대한 검색을 하다가 이런 글을 보았습니다. http://www.inews24.com/php/news_view.php?g_menu=020100&g_serial=224746 좀 오래된 글이지만 , [앞과뒤] 구글에 구겨진 'IT 코리아'의 자존심 이라는 제목의 글인데 글의 요지는 한국에서 내노라는 100여명의 CEO지망자가 있었는데 떨어졌다는것 일반 엔지니어도 10번이상의 인터뷰와 복잡함 등등 을 말하면서 구글이 한국의 사정을 모르면서 무시하는 것 아닌가 하는 글이다. 충분히 이러한 글을 쓸 수 있다고는 생각이 되긴 하지만 , 이것은 자존심의 문제는 아니다. 왜냐면 구글은 어디에서나 이러한 까다로운 인사정책을 가지고 있기 때문이다. 한국인이라서가 아니라는 것이다. 즉 한국인이라서 다 떨어치고 무시하고 여러번 시험본다 라는 것이 아니라는것이다. 구글입사시험문제를 보시면 알겠지만 구글은 이미 원래 입사절차가 까다로운 회사로 유명하다. http://www.zdnet.co.kr/news/internet/0,39031211,39129065,00.htm 윗글은 더 오래된 2004년도 글로서 구글의 까다로운 입사절차에 대해서 말하고 있다. 위 기사의 내용중 다음 내용을 보라 !! 회사 설립 첫날부터 3월 31일 현재 직원수 1907명에 이르기까지 구글은 자사만의 채용 기준을 엄격히 준수해왔다. 나는 오히려 저러한 까다로운 절차가 맘에 든다. 피플웨어 또는 조엘온 소프트웨어 같은 IT의 인재관리에 대해서 언급한 책들은 말하고 있다. 다음과 같...

#003 변수 part 01

미분류
01. 변수 ㅇ 메모리 구성요소 - 숫자 - 컴퓨터를 구성하는 모든것은 숫자로 이루어져 있습니다. 숫자를 하나 저장하려고 합니다. 저장하는 이유는 어디선가 사용하기 위함입니다. 여러개의 하드디스크 드라이브가 있고, 메모리가 있스빈다. 그러나, 숫자를 저장할수 있는 곳은 무조건 메모리가 될수 밖에 없습니다. CPU는 너무 빠르기 때문에 하드디스크에 저장하면 숫자를 읽어오는 동안 대부분의 시간을 놀아야 합니다. 메모리는 CPU의 능력을 최대한 사용하기 위한 고속의 데이터 저장공간으로 CPU가 사용하려는 모든 숫자는 사용전에 하드 디스크로 부터 메모리에 복사됩니다. CPU를 제외하면 메모리가 두번쨰로 빠른 녀석인 셈입니다. ㅇ 숫자 하나를 저장하는데 드는 비용  - 세개의 숫자 어디에 저장해 놓았는지 알아야 나중에 가져다 쓸수 있습니다. 첫번째 숫자는 5를 저장한 메모리상의 위치입니다. 두번째는 5라는 숫자를 저장하기 위해 사용한 메모리의 크기입니다. 5를 저장하기 위해 1바이르르 사용했는지 2바이트를 사용했는지 꼭 기억하고 있어야 합니다. 1. 상수 5 2. 주소번지 : 100번지 3. 방의 크기 : 4바이트 첫번째 : 무언가를 저장하는것에 있습니다. 메모리는 숫자를 저장하니다. 두번쨰는 메모리에서도 저장한 숫자를 사용하기 위해서 주소를 기억해야 합니다. 세번째는 어떤숫자를 저장하느냐에 따라 사용하는 메모리의 크기가 달라집니다. 변수에 숨어있는 세개의 숫자 확인 #ncldue<stdio.h> int main() { int n=5; printf("숫자 : %d, n);...

#004 변수 part 02

미분류
01. 변수 ㅇ 메모리 구성요소 - 숫자 - 컴퓨터를 구성하는 모든것은 숫자로 이루어져 있습니다. 숫자를 하나 저장하려고 합니다. 저장하는 이유는 어디선가 사용하기 위함입니다. 여러개의 하드디스크 드라이브가 있고, 메모리가 있스빈다. 그러나, 숫자를 저장할수 있는 곳은 무조건 메모리가 될수 밖에 없습니다. CPU는 너무 빠르기 때문에 하드디스크에 저장하면 숫자를 읽어오는 동안 대부분의 시간을 놀아야 합니다. 메모리는 CPU의 능력을 최대한 사용하기 위한 고속의 데이터 저장공간으로 CPU가 사용하려는 모든 숫자는 사용전에 하드 디스크로 부터 메모리에 복사됩니다. CPU를 제외하면 메모리가 두번쨰로 빠른 녀석인 셈입니다. ㅇ 숫자 하나를 저장하는데 드는 비용  - 세개의 숫자 어디에 저장해 놓았는지 알아야 나중에 가져다 쓸수 있습니다. 첫번째 숫자는 5를 저장한 메모리상의 위치입니다. 두번째는 5라는 숫자를 저장하기 위해 사용한 메모리의 크기입니다. 5를 저장하기 위해 1바이르르 사용했는지 2바이트를 사용했는지 꼭 기억하고 있어야 합니다. 1. 상수 5 2. 주소번지 : 100번지 3. 방의 크기 : 4바이트 첫번째 : 무언가를 저장하는것에 있습니다. 메모리는 숫자를 저장하니다. 두번쨰는 메모리에서도 저장한 숫자를 사용하기 위해서 주소를 기억해야 합니다. 세번째는 어떤숫자를 저장하느냐에 따라 사용하는 메모리의 크기가 달라집니다. 변수에 숨어있는 세개의 숫자 확인 #ncldue<stdio.h> int main() { int n=5; printf("숫자 : %d, n);...