본문 바로가기

분류 전체보기112

[JAVA] JDBC - DAO, DTO 패턴 ▶ DAO, DTO 패턴이란? 일반적으로 어플리케이션을 개발하려면 GUI(Graphical User Interface) 화면을 구성하는 코드와, GUI 화면에 데이터를 보여주기 위해 DB를 검색하고 GUI 화면에서 새로 발생된 데이터를 DB에 저장하는 등 실제적인 작업을 처리하는 코드가 필요합니다. 이때 GUI 화면을 구성하는 코드를 Presentation Logic(프리젠테이션 로직)이라고 하고, DB를 검색하고 관리하는 등 실제적인 작업을 처리하는 코드를 Business Logic(비즈니스 로직)이라고 합니다. Presentation Logic과 Business Logic을 하나의 클래스로 구현하면 유지보수가 어려워지기 때문에, 여러 클래스로 모듈화시켜 개발하는 것이 바람직합니다. 그중 실제 DB에 .. 2022. 6. 9.
[JAVA] JDBC - PreparedStatement 자바에서 DB로 SQL문을 전송하고, DB에서 SQL문을 실행한 결과를 다시 자바로 받아오기 위해 Statement, PreparedStatement 또는 CallableStatement 인터페이스를 사용합니다. PreparedStatement는 Statement를 상속받는 인터페이스로서, 더 향상된 기능을 제공합니다. SQL문 작성시 작은따옴표를 자동으로 처리해 줍니다. SQL문이 한 번 분석되면 캐시에 저장되기 때문에 재사용이 용이합니다. SQL문이 미리 컴파일되기 때문에 Statement 보다 성능상 우위입니다. 동적으로 SQL문을 처리할 수 있습니다. 즉, 동일한 SQL문에 다른 매개변수를 설정할 수 있습니다. SQL injection(보안상 허점을 악용한 SQL문을 실행해 DB를 비정상적으로 조.. 2022. 6. 7.
[JAVA] JDBC 기본 개념과 프로그래밍 단계 ▶ JDBC란? JDBC(Java DataBase Connectivity)는 자바에서 표준화된 방법으로 데이터베이스에 접근할 수 있도록 하는 프로그래밍 API입니다. java.sql 패키지로 제공되는 JDBC API는 DBMS 종류에 상관없이 사용 가능하도록 대부분 몸체가 없는 인터페이스로 선언되어 있으며, 각 DBMS 회사에서는 이 인터페이스들을 구현한 클래스 파일들을 JDBC 드라이버로 묶어서 제공하고 있습니다. 자바 어플리케이션과 실제 데이터베이스가 연동하기 위해서는 각 DBMS 종류에 맞는 드라이버를 다운받아 사용해야 합니다. JDBC 프로그래밍으로 연동하는 과정을 다음과 같이 그려볼 수 있습니다. ▶ JDBC 환경설정 JDBC를 사용하기 위해 데이터베이스 서비스가 실행중인지 확인하고, 사용중인 .. 2022. 6. 6.
[JAVA] 컬렉션 - Map 계열 Map 계열은 key와 value의 쌍으로 데이터를 저장하는 자료구조로서, key를 이용하여 원하는 값을 얻을 수 있습니다. key는 반드시 유일한 값이어야 하고 value는 중복이 가능합니다. 저장 순서는 유지되지 않습니다. Map 인터페이스의 하위 클래스는 대표적으로 HashMap과 Hashtable 클래스가 있으며, Hashtable의 하위 클래스로 Properties 클래스가 있습니다. HashMap은 null값을 허용하고, Hashtable은 null값을 허용하지 않습니다. ▶ Map 인터페이스의 주요 메소드 메소드 설명 put(Object key, Object value) putAll(Map m) key와 그에 해당되는 value 객체를 저장 V get(key) key에 해당되는 value 반.. 2022. 6. 4.
[JAVA] 컬렉션 - ArrayList List 계열의 컬렉션 클래스는 저장되는 순서가 있기 때문에 데이터 중복 저장이 가능합니다. 저장된 위치값을 사용할 수 있기 때문에 특정 값만 검색하거나 특정 값을 수정하거나 중간에 값을 삽입하는 등의 작업이 모두 가능합니다. ▶ List 인터페이스 메소드 Collection 인터페이스의 주요 메소드를 공통적으로 사용할 수 있습니다. 메소드 설명 boolean add(Object o) boolean addAll(Collection c) 지정된 객체 또는 Collection의 객체들을 Collection에 추가 void clear() Collection의 모든 객체를 삭제 boolean isEmpty() Collection이 비어있는지 확인 int size() Collection에 저장된 객체의 개수 Ob.. 2022. 6. 2.
[JAVA] 컬렉션 - Set 계열 Set 계열의 컬렉션 클래스는 저장 순서가 없어 중복 저장이 불가능하고, 저장된 위치를 알 수 없기 때문에 위치값으로 데이터를 얻을 수 없습니다. 데이터 정보를 출력하기 위해서 일반적으로 for-each문 또는 Iterator를 사용할 수 있습니다. ▶ Set 인터페이스 메소드 Collection 인터페이스의 주요 메소드를 공통적으로 사용할 수 있습니다. 메소드 설명 boolean add(Object o) boolean addAll(Collection c) 지정된 객체 또는 Collection의 객체들을 Collection에 추가 void clear() Collection의 모든 객체를 삭제 boolean isEmpty() Collection이 비어있는지 확인 int size() Collection에 저.. 2022. 6. 1.
[JAVA] 컬렉션 프레임워크 (Collections Framework) 이제까지 대량의 데이터를 저장하기 위해 배열을 사용했습니다. 하지만 배열은 여러 가지 한계점들을 가집니다. 우선 크기가 고정적이어서 지정한 크기보다 더 많은 데이터를 저장하고 싶으면 배열을 다시 생성해야 합니다. 또한, 중간에 데이터를 삽입하고 싶으면 이후 데이터들의 인덱스값을 조정해야 하며, 중간에 데이터를 삭제하면 해당 방이 비어 있게 됩니다. 이러한 한계점들을 보완하고 데이터를 더욱 효율적으로 관리하기 위해 자바에서는 다양한 종류의 컬렉션(Collection) 클래스를 제공하게 됩니다. 컬렉션 프레임워크(Collections Framework)란 대량의 데이터를 저장하는 클래스들을 표준화한 설계를 뜻합니다. ▶ 컬렉션 특징 컬렉션은 배열과 다르게 하나의 컬렉션에 서로 다른 데이터 타입 저장이 가능하.. 2022. 6. 1.
[JAVA] 예외 발생시키기, 사용자 정의 예외 클래스 ▶ 예외 발생시키기 - throw 키워드 시스템이 예외로 인식하지 않는 경우에도 필요에 따라 예외를 강제로 발생시켜야 하는 경우가 있습니다. 이 경우에는 throw 키워드를 이용하여 예외를 명시적으로 발생시켜야 합니다. 주의할 점은, throws 키워드(예외가 발생된 곳에서 예외를 직접 처리하지 않고 호출한 곳으로 예외 처리를 위임)와 구분해야 한다는 것입니다. 다음과 같이 throw 키워드를 사용합니다. 발생시킨 예외는 반드시 예외 처리해야 비정상 종료를 막을 수 있습니다. Exception e = new Exception([인자]); //객체 생성 throw e; //예외 발생시키기 throw new Exception([인자]); //한줄 작성 가능 num 값이 0보다 큰 경우 예외를 발생시키는 프로.. 2022. 6. 1.
[JAVA] 예외 처리 (Exception Handling) ▶ 예외 처리(Exception Handling)란? 일반적으로 에러(error)라고 일컫는 예외(Exception)는 프로그램 실행 중 발생되는 의도치 않은 문제를 의미합니다. 예외가 발생되면 프로그램이 비정상 종료되는데, 예외가 발생되었을 때 프로그램이 비정상 종료되지 않고 정상 종료되도록 처리하는 것을 예외 처리(Exception Handling)라고 합니다. 예외 처리의 목적은 이미 발생된 예외를 수정하는 것이 아닌, 예외가 발생된 이유를 메세지를 통해 사용자에게 알려주고, 프로그램이 끝까지 수행되어 정상 종료되도록 하는 것입니다. 다음은 자바에서 제공하는 예외처리 클래스들간의 상속관계를 계층구조로 표현한 것입니다. 예외 클래스의 최상위 클래스는 Throwable 클래스이고, 하위로 Error 클.. 2022. 5. 31.
[JAVA] enum (열거형 상수) enum은 열거형 상수로서, 데이터가 몇 개의 한정된 상수값으로 구성될 때 주로 사용됩니다. 이전에는 public static final로 지정된 일반적인 상수를 사용하였으나, JDK 1.5 버전부터 enum을 사용할 수 있게 되었습니다. enum을 이용하면 반드시 정의된 값만 사용하도록 설정할 수 있으며, 만약 잘못된 값을 설정할 경우 컴파일 시 에러가 발생하여 개발 단계에서 문제점을 곧바로 찾을 수 있게 됩니다. enum 은 다음과 같이 생성하고 사용할 수 있습니다. 열거한 상수값에는 0번부터 자동으로 인덱스값이 부여됩니다. public enum 타입 {상수값1, 상수값2, 상수값3}; 타입 변수명 = 타입.상수값; 다음은 enum의 대표적인 메소드입니다. 메소드 설명 name() enum 상수의 이.. 2022. 5. 30.