Java; I/O Stream

자바 입출력과 스트림 스트림이란? 자바에서 모든 입출력은 Stream을 통해 이루어진다. 파일 디스크 키보드 모니터 메모리 네트워크 등등 모두 포함. Stream이란 용어는 네트워크에서 유래됐다. 입출력장치가 다양하기 때문에 자바는 입출력 장치와 무관하고 일관성 있게 프로그램을 구현할 수 있도록 일종의 가상 통로인 Stream을 제송한다. Source와 target에 따라 각각 다른 Stream 클래스를 제공한다. 입력 스트림과 출력 스트림 입력 스트림... » read more

Servlet; DataSource 연동

서블릿 : 비즈니스 로직 서블릿 비즈니스 처리 작업이란 서블릿이 클라이언트로부터 요청을 받으면 그 요청에 대해 작업을 수행하는 것을 의미 합니다. 대부분의 비즈니스로직 처리는 DB연동 작업이 동반된다. 서블릿의 데이터베이스 연동 DAO와 VO를 사용한 회원정보 연동을 해보자 서블릿으로 회원 정보 테이블의 회원 정보 조회 H2 데이터베이스를 미리 준비한다 쿼리를 밀어넣고 maven.xml에 다음 내용을 추가한다. MemberDAO, MemberVO MemberServlet... » read more

Java; Exception

예외처리 예외 클래스 오류란 무엇인가? 프로그램에서 오류가 발생하는 상황은 Compile error와 runtime error 두가지다 Compile error : 프로그램 코드 작성 실수로 발생하는 오류. 개발 환경에서 대부분의 원인을 알 수 있다. Runtime error : 실행 중인 프로그램이 의도하지 않은 동작을 하거나 프로그램이 중지되는 실행 오류. 프로그램을 잘못 구현해 의도한 바와 다르게 실행됙어 생기는 오류를 버그라고 한다.... » read more

Java; Stream

스트림 스트림이란? 배열 요소를 특정 기준에 따라 정렬 하거나 (sort), 요소 중 특정 값은 제외하고 출력하는 기능 (filter). 이런 자료처리에 대한 기능을 구현해놓은 클래스가 stream이다. 스트림을 활용하면 자료를 일관성 있게 처리할 수 있다. 자료에 따라 기능을 새로 구현하는 것이 아니라 자료형에 상관없이 같은 방식으로 메소드를 호출한다. 간단한 스트림 예제 Arrays.stream() : 스트림의 생성 부분이다 forEach()... » read more

Servlet; doGet, doPost

서블릿 기초 Servlet의 세가지 기본 기능 Servlet이 수행하는 세가지 주요 기능은 다음과 같다. 클라이언트로부터 요청을 받는다. 비즈니스 로직을 처리한다. 처리된 결과를 클라이언트에게 응답으로 내려보낸다. 초기 웹 프로그램 개발에서는 서블릿이 클라이언트로부터 요청을 받아 비즈니스 작업을 처리한 후 그 결과를 클라이언트의 브라우저로 전송하는 방식으로 작업했다. Servlet 요청과 응답 API 요청과 응답에 관련된 API는 모드 javax.servlet.http패키지에 있다. HttpServletRequest... » read more

Java; Inner Class

내부 클래스 내부 클래스는 말 그대로 클래스 내부에 선언한 클래스다. 내부 클래스를 선언하는 이유는 외부 클래스와 밀접한 관련이 있기 때문이다. 다른 클래스와 협력할 일이 없을때도 내부 클래스로 선언해서 사용한다. 인스턴스 내부 클래스, 정적 내부 클래스, 지역 내부 클래스가 있다. 클래스 이름 없이 선언하고 바로 쓸수 있는 익명 클래스도 있다. 인스턴스 내부 클래스 인스턴스 변수를 선언할때와... » read more

Collection framework; Map interface

Map 인터페이스 Map은 key-value 쌍의 데이터로 표현된다. Map 인터페이스를 구현한 클래스는 내부적으로 해시 알고리즘에 의해 구현되어 있다. Map 주요 메소드 V put(K key, V value) : key에 해당하는 value를 Map에 삽입한다. V get(K key) : key에 해당하는 value를 반환한다. boolean isEmpty() : Map이 비어있는지 반환한다. boolean containsKey(Object key) : Map에 해당 key가 있는지 반환한다. boolean... » read more

Servlet; containter and application structure

웹 어플리케이션 기존의 정적인 웹 어플리케이션의 기능을 그대로 이용하면서 Servlet, JSP, Java class를 추가하여 사용자에게 동적인 서비스를 제공하는 프로그램을 말한다. 웹 컨테이너에서 실행되는 JSP, Servlet, Java class들을 사용해 정적 웹 프로그래밍 방식의 단점을 보완하여 서비스를 제공하는 서버 프로그램을 웹 어플리케이션이라고 한다. 웹 어플리케이션의 기본 구조 톰캣 = 웹 컨테이너 웹 어플리케이션 구성요소의 기능 ./ :... » read more

스프링 부트에서 RESTful

RESTful 게시판으로 변경하기 Controller 두 요청의 mapping이 주소가 같으나 RequestMethod가 GET과 POST로 구분 되는것을 알 수 있다. View (template) HTML은 POST와 GET방식만 지원하고 PUT, DELETE는 지원하지 않는다. 스프링에서 POST와 GET방식을 이용해 나머지 두가지를 사용할 수 있는 기능을 지원하는데 HiddenHttpMethodFilter가 있다. 스프링 2.1이상에서는 자동으로 필터가 등록된다. HiddenHttpMethodFilter는 _method속성의 파라미터가 존재할 경우 그 값을 요청 방식으로 사용한다.... » read more

스프링 부트에서 Multipart

파일 업로드와 다운로드에서 고려해야 할 부분 첨부파일의 유효성 검사 파일 전송의 진행률 표시 예외처리 사용자 편의성의 드래그 앤 드롭 기능 파일 업로드 scheme 사용자 업로드 파일 이름을 변경하는 이유 → 동일한 이름을 가진 파일이 업로드 될 경우 사용 중인 운영체제에 따라서 저장 되지 않거나 파일명이 바뀌거나 덮어쓰기가 될 수 있다. 이같은 경우 먼저 업로드 된... » read more