프로그래밍 9

[정보] Java EE vs J2EE vs Jakarta EE

1. 소개 Java EE에 대해 들어본 적이 있나요? Java 2EE, J2EE 또는 현재 Jakarta EE는 어떻습니까? 실제로 이들은 모두 동일합니다, 즉 Java SE를 확장하는 엔터프라이즈 표준스펙 세트에 대한 다른 이름입니다. 이 짧은 기사에서는 Java EE의 발전 과정을 설명합니다. 2. 역사 Java의 첫 번째 버전에서 Java 엔터프라이즈 확장은 단순히 핵심 JDK의 일부 였습니다 . 그러다가 1999년 Java 2의 일부로 이러한 확장이 표준 바이너리에서 분리되어 J2EE , 즉 Java 2 Platform Enterprise Edition이 탄생했습니다. 2006년까지 그 이름이 유지되었습니다. 2006년 Java 5의 경우 J2EE는 Java EE 또는 Java Platform E..

[요약] Java URLConnection과 HttpURLConnection 사용 방법

URL(대부분 HTTP 프로토콜 사용)을 통해 서버와 통신하는 Java 프로그램을 개발 하기 위 해 URLConnection 및 HttpURLConnection 클래스를 사용한다. 예를들어 파일, 웹 페이지를 업로드 및 다운로드, HTTP 요청 및 응답 전송 및 검색 등을 위한 코드를 작성할 수 있다. URLConnection과 HttpURLConnection 클래스 URLConnection은 Java 애플리케이션과 URL 간의 연결 관련한 모든 클래스의 수퍼클래스이다. URLConnection의 클래스는 일반적인 URL에 대한 API를 제공하고, 서브 클래스 HttpURLConnection는 HTTP 고유의 기능에 대한 추가 지원을 제공한다. 이 두 클래스는 모두 추상클래스이다. 그러므로, URLCon..

[Tips] JDBC 쿼리(Query) 타임아웃 설정

기본적으로 JDBC 쿼리(Query)에는 제한 시간이 없으므로 JDBC 쿼리가 스레드를 무제한 시간 동안 블록(BLOCK)할 수 있다. 물론 DB 로드와 쿼리 비용에 따라 다르다. 특정 시간보다 오래 걸릴 수 있는 경우 이러한 쿼리를 타임아웃을 설정하는 것이 좋다. 1. Query 별 타임아웃 JDBC 문은 타임아웃(단위 : 초)을 설정 가능하다. 타임아웃이 설정되면 드라이버는 쿼리가 실행될 때 지정된 시간(초) 동안 대기하고(예: executeQuery 및 executeUpdate) 해당 시간 내에 응답하지 않으면 SQLTimeoutException 예외가 발생한다. 아래는 몇 가지 예제이다. 1 2 3 4 5 Statement stmt = connection.prepareStatement("SELEC..

[정보] HttpServletResponse 객체

1. HttpServletResponse 객체 개요 JSP/서블릿 응답 정보를 클라이언트에 응답하기 위해 ServletResponse 인터페이스를 상속 받아 생성한 객체이고, 예로 HTTP의 쿠키와 헤더를 접근함. 서블릿 컨테이너는 HttpServletResponse 객체를 생성하여, doGet(), doPost() 등 서블릿 서비스에 인자로 전달함 2. 제공하는 주요 메소드(API) setContentType() getCharacterEncoding() addCookie() setHeader(name,value) addHeader(name,value) sendRedirect(url) encodeURL(url) encodeRedirectURL(url) 응답의 MIME 타입을 설정 응답의 문자인코딩을 리턴..

[정보] HttpServletRequest 객체

1. HttpServletRequest 객체 개요 JSP/서블릿 요청 정보를 제공하기 위한 ServletRequest 인터페이스를 상속한 객체임. 서블릿 컨테이너는 HttpServletRequest 객체를 생성하여, doGet(), doPost() 등 서블릿 서비스에 인자로 전달함 2. 제공하는 주요 메소드(API) 참고로, 예시는 "http://www.example.co.kr:8080/sample/test.jsp?param1=seoul¶m2=user2"로 브라우저에서 요청에 대한 리턴값임 getContextPath() getMethod() getRequestURL() getRequestURI() getQueryString() getSession(flag) getRemoteHost() getRem..

[정보] SSO 구현 방식

1. 개요 SSO(Single Sign On)는 사용자가 하나의 ID/Password로 여러 응용시스템을 접근할 수 있는 기술로써 여러 개의 사이트를 운영하는 대기업이나 인터넷 관련 기업이 각각의 회원을 통합 관리할 필요성이 생김에 따라 개발된 사용자 인증 방식 중 하나이다. 2. SSO 종류 (크게 2가지 유형) 인증 대행(Delegation) 방식 : SSO 에이전트가 대행해줌인증 정보 전달(Propagation) 방식 : SSO 시스템과 신뢰관계를 토대로 사용자를 인증한 사실(예, 토큰)을 전달받아 SSO를 구현. 3. 인증 대행(Delegation) 방식 대상 애플리케이션의 인증 방식을 변경하기 어려울 때 사용SSO 에이전트에서 대상 시스템의 인증 정보(예, ID/패스워드)를 보관하고 있다가, 대..

[개요] REST 이해

1. REST 란? - REpresentational State Transfer의 약자이다. - 2000년 Roy Fielding의 박사학위 논문에서 네트워크 시스템의 구조적 형식을 설명하기 위해 만든 용어 - URI와 HTTP 메소드를 이용해 객체화된 서비스에 접근하는것이다. - Restful WebService는 REST 규칙을 따르는 웹서비스 구현방식이다. 2. URI 규칙 1) 마지막 문자로 '/'를 사용하지 않는다 2) 가독성을 높이기 위해 데쉬(-) 문자를 사용할 수 있다. 언더바(_)는 사용할 수 없다. 3) 소문자만 사용한다. 4) 확장자를 넣지 않는다. 3. 리소스 유형(Resource Type) 1) 도큐먼트(Document) - 가장 기본이 되는 형식이고, 데이터베이스의 레코드 같은 ..

[정보] PreparedStatement 예제

JDBC 프로그래밍에는 Statement, Prepared Statement, Callable Statement 3가지 유형이 있다. 가장 많이 사용하는 Prepared Statement에 대해 설명하고자 한다. 1. Prepared Statement의 특징 및 장점 JDBC API를 통해 DB 접근 시에 Preapared Statement 또는 Statement를 통하여 로직을 작성한다. Prepared Statement는 Statement와 같은 아래와 같은 특징 및 장점이 있기 때문에 조건문이 바뀌지 않고, 조건값이 바뀌는 경우(캐슁 장점 활용) 사용을 권장한다. PreparedStatement는 Statement를 상속받아 구현한 객체임SQL statement에 대한 파싱과 컴파일이 필요한데, 사..

[예제] 데몬(daemon) 작성

데몬(Daemon)이란? 백그라운드에서 수행되며 제어 터미널이 없는 프로세스다. 데몬은 반드시 init 프로세스의 자식 프로세스여야 하고, 터미널과 연결되어 있으면 안된다.참고로, 데몬은 물리학자 제임스 클러크 멕스웰의 사고실험인 멕스웰의 도깨비에서 차용했다고 함 데몬 생성 로직 1 fork()를 호출해서 데몬이 될 새로운 프로세스 생성한다. 2 부모 프로세스에서 exit()를 호출해서 데몬 프로세스의 부모 프로세스를 종료한다. 3 setsid()를 호출하여 데몬이 새로운 프로세스 그룹과 세션의 리더가 되도록 한다. 4 chdir()를 호출하여 작업 디렉토리를 루트 디렉토리로 변경한다. 5 모든 파일 디스크립터를 닫는다. 6 0, 1, 2번 파일 디스크립터(각각 표준 입력stdin, 출력stdout, 에..