본문 바로가기

전체 글

(44)
[Java]예외(Exception) 처리 오류(Error)가 프로그램 자체 또는 JVM 등의 원인으로 발생하는 문제를 말한다면, 예외(Exception)는 사용자의 조작이나 개발자의 코딩 실수로 발생된 문제를 말한다. 오류는 개발자가 고칠 수 없지만 예외는 대처가 가능하기 때문에, 코드를 작성할 때부터 예외 처리를 미리 해 놓는다. 오류나 예외가 발생한 경우 프로그램은 강제로 종료되는데, 예외 처리를 하면 정상적으로 프로그램 종료를 할 수 있다. 예외는 컴파일 시점에 체크 가능한 Compile Checked Exception, 실행을 해야 체크 가능한 Compile Unchecked Exception으로 분류된다. 전자는 처리가 되어야만 코드 실행이 가능하기 때문에 예외 처리에 강제성을 띤다. 여기서 처리를 하지 않으면 컴파일 에러가 발생한다...
[DB:Oracle]SQL - 트랜잭션(Transaction)과 DML 트랜잭션(Transaction) 트랜잭션이란 DBMS 내의 논리적인 작업 단위를 말하며, 하나의 트랜잭션이 완료되어야만 작업이 저장된다. SQL은 크게 3가지 언어로 분류되는데, select와 insert, update, delete 구문을 포함하는 데이터 조작어(DML), create, alter, drop, truncate 구문을 포함하는 데이터 정의어(DDL), 그리고 grant, revoke 구문을 가지는 데이터 제어어(DCL)가 있다. 하나의 트랜잭션은 여러 개의 DML이나 하나의 DDL/DCL로 이루어진다. 트랜잭션이 진행되는 중, 즉 트랜잭션이 완료되기 전까지는 어떤 작업을 하든 실제 DB에 반영이 되지 않는다. 그래서 트랜잭션 도중에 SQL Plus에서 SQL Developer로 변경하는 ..
[jQuery]jQuery 설치와 사용 제이쿼리(jQuery)란 자바스크립트(JavaScript)의 함수들을 모아놓은 일종의 프레임워크다. 홈페이지에서 다운로드해서 프로젝트에 jar 파일처럼 넣어 사용하는데 라이브러리(lib)에 넣진 않는다. 그냥 프로젝트 내에 js폴더를 만들고 jQuery 파일과 작성용 js 페이지를 같이 넣어놓으면 된다. 다운로드 jquery.com 홈페이지에 들어가면 아래처럼 보이는 Download에 들어간다. 그리고 아래의 uncompreessed development jQuery 3.6.0을 받으면 된다. 이때 그냥 클릭으로는 다운로드할 수 없기 때문에 링크를 우클릭하여 따로 저장해줘야 한다. 링크 복사가 아니라 저장! 그렇게 받은 파일을 복사하여 이클립스 - 내 프로젝트 내에 붙여 넣으면 설치가 완료된다. jQue..
[DB:Oracle]SQL - 조인(Join)과 서브쿼리(SubQuery) 조인(Join) 조인은 서로 다른 테이블의 값들을 가져와서 하나의 테이블로 출력하기 위한 작업이다. 하지만 같은 테이블 안에 존재하는 컬럼들 간 연관성이 있는 경우에도 조인을 사용할 수는 있다. 조인의 sql구문은 좀 길기 때문에 GUI 환경인 SQL Developer에서 작성해보려고 한다. 조인의 기본적인 문법은 alias와 on절을 이용하는 것이다. 아래와 같이 e, d라는 alias명을 두 테이블에 주고, 조인의 조건이 되는 컬럼을 on절에 적는다. alias가 필수는 아니지만 테이블명을 그대로 쓰면 쿼리문이 정말 길어지기 때문에 편의성을 위한 작업이다. 그래서 alias명은 작성자가 임의로 지정하며, 보통 테이블명의 앞 스펠링을 따서 짓는다. 사실 여러 테이블을 조인할 경우, select 하는 컬..
개인 프로젝트 한 달간의 개인 프로젝트가 거의 끝나간다! 관련이 없는 전공이었던지라 태어나서 처음 해보는 프로젝트였고, 심지어 자격증 시험도 2개 겹쳐있었다 보니 블로그는 손도 댈 수가 없었다... 정보처리기사는 기본이니 기간을 넉넉하게 잡고 준비했는데, SQLD가 정처기 필기와 일주일 차이라 공부하는 데 애를 먹었다. 그래도 둘 다 합격! 그렇게 정처기와 SQLD 시험을 얼마 안 남기고 개인 프로젝트를 시작했다. 난생처음 처음부터 끝까지 혼자 페이지를 만들어야 하는데 자격증 시험 때문에 초반 페이스 조절에 실패할 뻔했다. 그래도 자격증 공부에 시간대를 딱 정해놓고 그 외 시간은 쓰지 않으려고 정말 집중했다. 나머지 시간은 모두 웹사이트 구상에 썼지만... 역시 사이트를 만들어 본 적도 없으면서 계획을 너무 거창하게 ..
[JSP]서블릿(Servlet)과 EL표현식 서블릿(Servlet) 서블릿(Servlet)은 jsp파일이 실행되기 위해 java파일로 변환된 것을 말하며, jsp와 java 코드를 함께 수행 가능하다. 서블릿 응답 정보의 내용 형태는 html인데, java 페이지에서 직접 표현하려면 html 페이지를 java 코드 내에서 모두 작성해야 하기 때문에 번거롭고 복잡하다. 그래서 서블릿에서는 액션태그를 통한 페이지 이동, 즉 forward 방식으로 jsp 페이지를 보여주게 된다. 페이지를 이동할 때 주소줄에 jsp 페이지 주소가 그대로 노출되면 보안상의 위험이 있어, 서블릿에서 정해놓은 가상 주소를 대신 노출시키고 포워딩으로 화면만 이동하는 것이다. 정리하면 jsp는 정적/동적 데이터를 같이 처리하는 페이지고, 서블릿은 java 코드를 사용해서 jsp ..
[JSP]JSTL (core/formatting) JSTL(JSP Standard Tag Library)는 자주 사용되는 태그들의 모음이며, 태그 형태로 JSP 코드의 역할을 수행한다. JSP 코드가 없어도 반복문 등을 쓸 수 있게 해 주고, 여러 라이브러리를 포함하고 있다. 먼저 core 라이브러리는 변수 선언, 조건문, 반복문, 페이지 이동 등 기본적인 동작을 처리한다. Formatting 라이브러리는 데이터 국제화(다국어), 형식화(날짜, 숫자, 시간 등)를 처리하고, DB 라이브러리는 SQL구문(CRUD)을 처리한다. 그리고 XML 라이브러리는 xml 문서를 읽고 처리하는 동작을 수행한다. JSTL 다운로드 Apache Tomcat 홈페이지에서 Taglibs - Download를 들어간다. 그리고 Jar Files에서 Compat을 제외한 3가지..
[JSP]커넥션풀/JNDI - 이클립스와 MySQL 연결 페이지에서 DB를 연결해야 하는 작업 시, 페이지를 요청할 때마다 커넥션 객체를 생성하게 되면, 프로세스가 늘어나 메모리의 소모가 커진다. 그래서 커넥션 정보를 미리 풀 속에 저장했다가 요청한 페이지에 빌려주고, 끝나면 돌려받는 것이 커넥션 풀(Connection Pool)을 사용한 작업이다. 매번 커넥션 객체를 생성하지 않아도 되고 재사용도 가능하기 때문에 속도도 빠르며 부하를 줄일 수 있다. 커넥션 풀과 함께 JNDI(Java Naming and Directory Interface)라는 것이 필요하다. JNDI는 명명 서비스 및 디렉토리에 접근하기 위한 API로, 파일 외부에 존재하는 특정 자원을 가져와야 할 때 사용하며 따로 다운로드가 필요하기 때문에 가장 보편적인 Apache Commons의 JN..