JDBC ( Java Database Connectivity ) 란 ? JAVA 프로그램에서 DB에 접근할 수 있게 해주는 Programming API 일관성 있는 방식으로 DB에 접근할 수 있는 API를 제공하는 클래스들 JDBC 동작 순서 JDBC Driver 연결 계정 연결 쿼리 준비 쿼리 실행 및 리턴 DB 연결 종료 각 DB와 JAVA를 연결하기 위한 JDBC Driver는 각 DBMS 벤더 별로 구현하여 jar 파일 형태로 제공하고 있습니다. JAVA에서 DBMS 연동에 필요한 메소드는 java.sql 패키지에서 제공하고 있습니다. Eclipse와 ORACLE을 연결해보도록 하겠습니다. 1. Java 프로젝트 생성하기 2. Java Build Path에 ojdbc.jar 파일 추가하기 기본적으..
제네릭 ( Generic ) 이란 ? 다양한 타입의 객체들을 다루는 클래스, 메소드의 타입을 미리 명시하는 것 의도치 않은 타입의 객체가 저장되는 것을 막음으로써 에러 발생확률을 낮추기 위해 사용합니다. 객체 타입을 컴파일 시에 체크하기 때문에 안정성을 높이고, 형변환의 번거로움을 줄입니다. 예제 1 package com.generic; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class MTest { public static void main(String[] args) { List list = new ArrayList(); list.add(5); //list.add("1");// 컴파일 ..
컬렉션 ( Collection ) 이란 ? 목록성 데이터를 처리하는 자료구조들의 집합 배열은 처음 만들 때 크기가 고정되지만, 컬렉션은 크기가 가변입니다! 또한, 배열은 객체를 삭체하는 경우 해당 인덱스가 비게 되고, 저장할 때 비어있는 곳을 일일이 검색해야합니다. 따라서 컬렉션을 이용하면 객체들을 효율적으로 추가, 삭제, 검색할 수 있게됩니다. 컬렉션 인터페이스는 크게 Set, List, Queue로 분류됩니다. Map은 컬렉션 인터페이스를 상속받고 있지 않지만 컬렉션으로 분류됩니다. 1. List 객체를 일렬로 늘어놓은 구조 순서가 있고, 중복이 가능합니다. 객체를 저장하면 자동으로 인덱스를 부여하며, 객체를 인덱스로 관리합니다. 인덱스를 이용해 객체를 검색, 삭제, 수정합니다. ArrayList J..
추상 클래스 ( Abstract Class ) 란 ? 하나 이상의 추상메소드를 가진 미완성의 클래스 abstract 키워드를 사용합니다. 상속받을 때 extends 키워드를 사용합니다. 추상 메소드란 ? body { } 가 없고, 선언만 되어있는 미완성의 메소드 // 추상클래스 Animal public abstract class Animal { // 추상메소드 bark() public abstract void bark(); public void eat(String feed) { System.out.println(feed + " 먹는다."); } } 이 추상클래스를 상속받는 자식클래스에서 해당 추상메소드를 오버라이딩하여 무조건 구현해야 합니다. // 자식클래스 Cat public class Cat exte..
상속 ( Inheritance ) 이란 ? 부모클래스를 재사용하여 새로운 자식클래스를 작성하는 것 부모클래스의 field와 method를 내려받고, 자식클래스들의 중복되는 member들은 부모클래스에서 작성/관리함으로써 중복을 줄일 수 있습니다. 메소드 오버라이딩 ( 메소드 재정의 ) 부모클래스에서 상속받은 메소드를 자식클래스에서 확장하거나 변형하는 것 이름 동일, 리턴타입 동일, 파라미터 동일 @Override 애노테이션을 사용하여 재정의한다는 것을 표시해줍니다. 코드로 이해하기 부모클래스 Car.java public class Car { private String color; private int speed; public Car() { } public Car(String color) { this.co..
생성자 ( Constructor ) 란 ? 객체를 생성하고, field를 초기화하기 위한 메소드 클래스명과 이름이 동일하고, 리턴타입이 없습니다. class Test { public Test() {}// 생성자입니다. } new 연산자와 함께 사용됩니다. Test t = new Test(); 기본 생성자는 생략하면 자동으로 생성됩니다. 매개변수를 갖는 생성자를 정의하면 기본 생성자는 더 이상 자동으로 만들어지지 않습니다. public class AA { // new AA(); } public class BB { public BB() {}// new BB(); } public class CC { public CC(int cc) {}// new CC(); (X) // new CC(10); (O) } 생성자는..
클래스 ( Class ) 객체의 설계도, 설명서 Member field : 클래스에 소속된 변수와 상수 ( 해당 클래스의 속성 ) method : field들에 대한 기능, 명령문들의 집합 Constructor ( 생성자 ) 객체를 생성하고, field를 초기화하는 역할 객체 ( Object ) class 타입으로 선언된 것 인스턴스 ( Instance ) class를 바탕으로 메모리에 적재된 실제 구현체 // AAA 클래스 public class AAA { ... } // main 메소드가 존재하는 Test 클래스 public class Test { public static void main(String[] args) { AAA a;// 객체 a = new AAA();// 인스턴스화 : 객체를 메모리에..
객체지향 프로그래밍 : OOP ( Object Oriented Programming ) 이란 ? 기능별로 객체를 묶는 프로그래밍 방법 기술적 특징 추상화 : 여러 객체들을 하나의 큰 추상적인 개념으로 묶는다. ( 클래스를 정의하는 것 ) 상속 : 상위 개념을 하위 객체가 물려받는다. 다형성 : 같은 이름의 기능이지만, 다른 행위를 하는 것 캡슐화 : 객체의 기능만 사용한다. (코드는 은닉한다.)
JVM (JAVA Virtual Machine) 이란 ? 자바 가상 머신이라고 부릅니다. 자바 바이트코드를 해당 운영체제의 기계어로 재번역하면서 실행시키는 주체 운영체제와 자바를 연결시켜주는 역할 자바 프로그램을 운영체제와 플랫폼 종류에 의존적이지 않게 독립적으로 동작할 수 있게 해주는 역할 가비지 컬렉션(GC)을 통해 메모리 관리를 자동으로 해줍니다. JAVA의 프로그래밍 과정 소스 코드를 작성합니다. ( 클래스명.java ) JDK(Java Development Kit)가 제공하는 javac 컴파일러를 사용하여 바이트코드 형식으로 소스 코드를 컴파일합니다. ( 클래스명.class) 실행 시 실행에 필요한 클래스들이 JVM에 연결되며 클래스 로더(Class Loader)가 컴파일된 바이트코드를 메모리로..
싱글톤 패턴이란 ? 특정 클래스에 대해 객체의 인스턴스가 heap 메모리에 단 하나만 존재할 수 있도록 해주는 패턴 코드로 이해하기 비교를 위한 Normal 클래스 public class Normal { public Normal() { System.out.println("Normal 인스턴스 생성"); } } Singleton 클래스 public class Singleton { private static Singleton singleton; // 2. private Singleton() {}// 1. public static Singleton getInstance() { // 3. if(singleton == null) {// 인스턴스가 아직 안 만들어졌다면, singleton = new Singleto..