목록전체 글 (208)
각진 세상에 둥근 춤을 추자
JSP 파일의 기본 구조를 알아보기 위해 간단한 예제를 입력한다. str1: str1: str1: str1: str1: 실행은 마우스 우클릭 - [Run As] - [Run on Server] 버튼을 클릭한다. Tomcat v9.0 Server at localhost를 클릭한 후 [Next] 버튼을 누른다. Configured에 해당 JSP 파일이 있는 Project가 있는지 확인한 후 [Finish] 버튼을 클릭한다. 결과는 다음과 같다.
Eclipse JSP File 생성 시 사용하기 편한 템플릿을 설정한다. (1) 상단 메뉴 [Eclipse] - [Preference] - [Web] - [JSP Files] - [Editor] - [Templates] 에서 "New JSP File (html5) - JSP with html 5 markup"을 선택 후 Edit를 클릭한다. (2) Edit Template 내용을 다음과 같이 변경한 후 [OK] 버튼을 누른다. ${cursor} (3) [Apply] - [Apply and Close] 버튼을 누른다. 템플릿을 적용한 후 새로 만드는 JSP 파일은 다음 모습과 같다.
JSP의 주된 목적은 웹 브라우저에 띄울 HTML 파일을 생성하는 것이다. 예제를 통하여 JSP 파일의 기본 형태를 이해해 본다. JSP 파일을 생성하기 앞서 프로젝트를 생성한다. 프로젝트 생성 (1) [File] - [New] - [Dynamic Web Project] (2) Project name에 원하는 프로젝트명을 작성하고, [Target runtime]을 Apache Tomcat v9.0으로 설정한 후 [Next] 버튼을 클릭한다. (3) 자바 소스 파일 경로 설정은 수정 없이 [Next] 버튼을 클릭한다. (4) "Generate web.xml deployment descriptor" 체크 박스를 체크한 후 [Finish] 버튼을 클릭한다. (Generate web.xml deployment ..
JSP란? JSP(Java Server Page)는 동적인 웹 페이지를 개발하기 위한 웹 프로그래밍 기술이다. 즉, 자바 언어를 사용하여 서버 측에서 웹 페이지들을 생성해 웹 브라우저로 전송한다. JSP의 구동 방식은 다음과 같다. 서버는 클라이언트의 요청을 해석하여 가장 적절한 웹 페이지를 생성하여 응답한다. 즉, 동적 웹 페이지는 '전처리' 과정을 거쳐 응답 페이지를 동적으로 생성한다. 이때 '전처리' 부분을 서블릿이 담당한다. 서블릿은 JSP 파일을 자바 파일(.java)로 변환하고 자바 파일을 클래스 파일(.class)로 컴파일한 형태이며, 이를 실행하고 관리해 주는 런타임을 웹 컨테이너라고 한다. 한 번 서블릿으로 컴파일된 JSP 파일은 캐시되므로 실질적인 성능 저하 없이 개발 생산성과 유지 보..
1. 검색창에 Tomcat 검색 또는 아래 링크를 통해 Tomcat 사이트에 접속한다. https://tomcat.apache.org/ Apache Tomcat® - Welcome! The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta Annotations and Jakarta Authentication specifications. These specifications are part of the tomcat.apache.org 2. Download - Tomcat 9 ..
소켓(socket)은 네트워크 상에서 수행되는 두 프로그램 간의 양방향 통신 링크의 한쪽 끝 단을 의미한다. 클라이언트의 포트를 통해 서버에 연결을 요청하면 서버에서 요청을 수락할 수 있다. 서버는 요청을 수락한 후, 새로운 소켓을 만들어 클라이언트와 연결을 생성한다. 이후, 클라이언트와 소켓이 연결되어 데이터를 주고 받는다. 대략적인 클라이언트와 서버의 연결 방법은 다음과 같다. Client. 1. 클라이언트 소켓 생성 및 서버 접속 Socket clientSocket = new Socket("128.12.11", 5550); 2. 네트워크 입출력 스트림 생성 BufferedReader in = new BufferedReader(new InpuetStreamReader(clientSocket.getIn..
배열은 연속된 자료 구조를 구현한다. 하지만 배열은 중간에 자료를 삽입하거나 삭제할 때 나머지 자료를 이동시켜 빈 공간을 만들지 못한다. 이런 점을 개선한 자료 구조를 링크드 리스트(linked list)라고 한다. 링크드 리스트의 각 요소는 다음 요소를 가리키는 주소 값을 가진다. 따라서 물리적인 메모리는 떨어져 있어도 논리적으로 앞뒤 순서가 있을 수 있다. 만약 A → B → D 가 순차적으로 저장된 링크드 리스트가 있다고 가정한다. 리스트의 3번째 위치(B와 D사이)에 'C' 요소를 추가해 본다. 기존의 배열이라면 D를 뒤로 밀어내고 공간을 비워 그 자리에 C를 놓을 것이다. 하지만 링크드 리스트는 서로 가리키고 있는 주소 값만 변경해 주면 된다. B가 가리키던 다음 위치를 C로 변경하고, C가 가..
List 인터페이스 List 인터페이스에는 객체를 순서에 따라 저장하고 유지하는 데 필요한 메서드가 선언되어 있다. 순차 자료 구조의 대표적인 예는 배열이다. (1) ArrayList 클래스 ArrayList를 활용한 MemberArrayList 클래스를 생성한다. 클래스에는 회원을 추가하는 addMember(), 회원을 삭제하는 removeMemeber(), 전체 회원을 출력하는 showAllMember() 메서드가 있다. package collection.arraylist; import java.util.ArrayList; import collection.Member; public class MemberArrayList { // ArrayList 선언 private ArrayList arrayList..
문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. package step06; import java.util.Scanner; import java.util.StringTokenizer; public class _06 { public static void main(String[..
프로그램의 기능을 효과적으로 구현하기 위하여 프로그램을 개발할 때 사용하는 자료를 어떤 구조로 관리할 것인가는 중요하다. 이때 사용하는 것을 자료 구조(data structure)라고 한다. 자료 구조는 프로그램 실행 중에 메모리에 자료를 유지, 관리하기 위해 사용한다. 자바에서는 필요한 자료 구조를 미리 구현하여 java.util 패키지에서 제공하고 있는데, 이를 컬렉션 프레임워크(collection framework)라고 한다. 컬렉션 프레임워크의 전체 구조는 Collection 인터페이스와 Map 인터페이스 기반으로 이루어져 있다. Collection 인터페이스: 하나의 자료를 모아서 관리하는 데 필요한 기능을 제공 Map 인터페이스: 쌍(pair)으로 된 자료를 관리하는 데 유용한 기능을 제공 1..