개발/Java
JSP란?
JSP에서 동적컨텐츠를 지원하는 웹페이지를 개발하기 위한 기술 로 끝나는 특수한 태그를 이용하여 HTML에 Java 코드를 삽입할 수 있음. Java 웹 응용 프로그램의 사용자 인터페이스 역할을 수행할 수 있도록 설계된 서블릿이다. 왜 JSP를 사용할까? JSP는 별도의 CGI 파일 대신에 HTML 페이지 자체에 동적 요소를 포함할 수 있어 성능이 크게 향상됨. JSP는 페이지가 요청될 때 마다 서버가 인터프리터와 대상 스크립트를 로드해야하는 CGI와 달리 서버에서 처리되기 전에 항상 컴파일 된다. JSP는 Servlets API위에 구축된다. 따라서 JSP는 서블릿 템플릿 엔진이 지원하는 모델인 비지니스 로직을 처리하는 서블릿과 함께 사용할 수 있음. 서블릿에서 콘텐츠를 출력하려면 스트림 클래스를 사용..
서블릿이란?
서블릿은 자바를 통해 웹페이지를 동적으로 생성하는 서버측 프로그램이다. 서블릿은 JSP 표준이 나오기 전에 만들어진 표준으로, 자바로 웹 어플리케이션을 개발할 수 있도록 하기 위해 만들어졌다. 자바EE의 일부분이고, HTTP 통신 기반의 클래스를 살펴보면, 어노테이션 기반이든 매개변수든 서블릿 클래스가 활용된다. 서블릿 구현 서블릿의 개발 과정 서블릿은 JSP 표준이 나이고 전에 만들어진 표준으로 자바로 웹어플리케이션을 개발할 수 있도록 하기 위해서 만들어졌다. 1. 서블릿 규약에 따라 자바 코드를 작성한다. 2. 자바 코드를 컴파일 해서 클래스 파일을 생성한다. 3. 클래스 파일을 /WEB-INF/classess 폴더에 패키지에 알맞게 위치시킨다. 4. web.xml 파일에 서블릿 클래스를 설정한다. ..
데이터베이스부터 JDBC까지
데이터베이스 일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미한다. 보통 데이터베이스 관리 시스템 DBMS에 의해 제어된다. 오늘날 운용되는 가장 공통적인 유형의 데이터베이스는 일련의 행과 열로 모델링되며, 이는 프로세싱과 데이터 쿼리 작업을 더 효율적으로 실행하기 위함이다. 이로써 데이터를 쉽게 엑세스, 관리, 수정, 업데이트, 제어를 체계적으로 수행할 수 있다. - Oracle 공식문서 데이터베이스가 나오기 전의 시스템 : 파일 처리 시스템 폴더별로 묶어 데이터를 개별 관리하는 시스템인데, 사용하고자 하는 애플리케이션이 직접적으로 데이터를 관리하기 떄문에 데이터 종속의 문제 데이터가 특정 사용자, OS만 사용될 수 있는 제한이 생긴다. 데이터 중복의 문..
java.util 톺아보기
java.lang 다음으로 많이 쓰인다. 알아두면 유용한 클래스들 Date, Calendar Collections Arrays StringTokenizer Properties Random Formatter
Java Formatter
다양한 상황에서 원하는 형태로 출력을 도와주는 클래스 숫자와 통화를 나타내기 위한 NumberFormat 날짜와 시간을 간단히 표현하려면 DateFormat SimpleDateFormat 문자열을 쉽게 처리하기 위한 MessageFormat C언어 같은 형식의 문자열 처리 Formatter
classpath와 자바 옵션들
클래스패스란 말 그대로 클래스를 찾기위한 경로이다. 자바에서 클래스패스의 의미도 똑같다. 즉, JVM이 프로그램을 실행할 때, 클래스파일을 찾는 데 기준이 되는 파일 경로를 말하는 것이다. 소스 코드(.java로 끝나는 파일)를 컴파일하면 소스 코드가 “바이트 코드”(바이너리 형태의 .class 파일)로 변환된다. java runtime(java 또는 jre)으로 이 .class 파일에 포함된 명령을 실행하려면, 먼저 이 파일을 찾을 수 있어야 한다. 이때 .class 파일을 찾을 때 classpath에 지정된 경로를 사용한다. classpath는 .class 파일이 포함된 디렉토리와 파일을 콜론으로 구분한 목록이다. java runtime은 이 classpath에 지정된 경로를 모두 검색해서 특정 클래..
자바 Jar란
- 일종의 자바 프로젝트 압축 파일 - ZIP 파일 압축 알고리즘을 기반으로 만들어짐 >> 반디집, 알집과 같은 zip 프로그램과 호환 가능 - JAR 파일은 웹브라우저에서 빠르게 다운로드할 수 있도록, 자바 애플릿을 위한 클래스, 이미지 및 사운드 파일들을 하나의 파일에 압축하여 담고 있는 파일이다. - 사용자의 요청에 의해 웹페이지의 일부로 들어오는 애플릿에는 여러개의 파일들이 담겨 있을 수 있는데, 각각은 웹페이지와 함께 다운로드 되어야 한다. 이 때 그 파일들을 하나의 파일에 압축하면 다운로드에 소요되는 시간이 절약된다. - 자바로 개발한 여러 클래스 파일들 또는 패키지 파일이 있을 때, 이를 하나로 묶으면 그 클래스들을 참조하기도 편하고, 다운 받기도 쉽다. - 자바 어플리케이션 프로그램을 개발..
자바8의 날짜 관련 클래스
Date나 SimpleDateFormmater는 스레드 안전하지 않다. 그리고 immutable 객체도 아니라서 지속적으로 값을 변경할 수 있었다. 게다가 API구성도 복잡하여 연도는 1990년부터 시작하고, 달은 1부터이지만 일은 0부터 시작한다;; 그래서 1990년 1월 1일은 1990, 1, 0 이렇게 값을 넘겨줘야만 했다. 그래서 자바8에서 java.time 이라는 패키지를 만들었다.
함수형 인터페이스, java.util.function 패키지
함수형 인터페이스 : 1개의 추상 메서드를 갖고 있는 인터페이스를 말한다. SAM라고도 불린다. 함수형 인터페이스는 자바의 람다식은 함수형 인터페이스로만 접근이 되기 때문이다. public interface FunctionalInterface { public abstract void doSomething(String text); } FunctionalInterface func = text -> System.out.println(text); // 이와 같이 재정의하고 func.doSomething("do something"); // 이와 같이 함수를 호출한다. 즉 함수형 인터페이스는 람다식으로 만든 객체에 접근하기 위해서이다. 익명클래스를 사용하면 아래와 같다. FunctionalInterface func..
Parallel array sorting 병렬 배열 정렬
Arrays 클래스에는 다음과 같은 static 메소드들이 있다. public static int binarySearch // 배열 내에서의 검색 public static T[] copyOf // 배열의 복제 public static boolean equals // 배열의 비교 public static void fill // 배열 채우기 public static int hashCode // 배열 해시코드 제공 public static void sort // 정렬 public static String toString // 배열 내용을 출력 javadocs에는 아래와 같이 기술되어 있다. 의역해보면, 다양한 arrays 연산을 위한 메서드들을 포함하고 있다. lists처럼 다루기 위한 static facto..