전체 글
-
[Java] 스레드(thread)프로그래밍/JAVA 2022. 8. 14. 21:22
운영체제에서는 실행중인 하나의 애플리케이션(프로그램)을 프로세스라고 부르며, 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행하는것이 프로세스의 개념이다. 스레드는 하나의 프로세스 내부에서 독립적으로 실행되는 작업단위로 운영체제에 의해 관리되는 하나의 작업 혹은 Task를 의미한다. 다중 스레드 작업시에는 각 스레드간 정보를 주고 받을 수 있어 처리 과정의 오류를 줄일 수 있다. 단, 프로세스간에는 정보를 주고 받을 수 없다. JVM에 의해 하나의 프로세스가 발생하고 main() 문 안에 실행문들이 하나의 스레드를 발생한다. main() 외에 또 다른 스레드를 만들려면 Thread 클래스 상속받거나 Runnable 인터페이스를 구현하면되고 두 방법 ..
-
[Java] 싱글톤(singleton) 패턴을 활용한 DB접속프로그래밍/JAVA 2022. 8. 12. 23:32
싱글톤 패턴은 디자인 패턴 중 하나로 객체의 인스턴스가 단 한개만 생성되어 사용하는 것을 의미하며, 메모리 측면에서 공유자원이기 때문에 메모리 낭비를 방지할 수 있다. 이런 패턴은 프로그램 내에서 하나로 공유해야하는 객체를 싱글톤 패턴으로 처리하여 모든 사용자가 해당 객체를 공유하여 사용할 수 있도록 할 때 사용된다. 싱글톤 패턴을 사용하여 BD에 연결하는 코드를 다른 클래스로 만들어 사용하고 싶을 때 사용할 수 있도록 코드를 작성해보자. import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Dbconn { private static Connection conn; public ..
-
[Java] DB와 연동하기프로그래밍/JAVA 2022. 8. 12. 23:09
JAVA 에서 DB와 연동하기 위해서는 JDBC(Java Database Connectivity) 라이브러리를 개발환경에 맞게 추가해줘야한다. JDBC란 자바에서 DB 소프트웨어와 연결하여 프로그램을 개발하기 위해 사용하는 API로 JDBC Driver는 https://dev.mysql.com/downloads/connector/j/ 에서 다운로드 받으면 된다. 이클립스에서 JDBC 드라이버를 추가하는 방법으로는 먼저, 라이브러리가 준비 되어있다면, 프로젝트 파일에서 마우스 우클릭하고 Build Path -> Configure Build Path 에 들어간다. Java Build Path에서 Libraries 탭을 누르고 Add External JARs를 연다. 준비한 라이브러리 파일을 불러와 등록하면 ..
-
[Java] 제네릭(Generic) 타입프로그래밍/JAVA 2022. 8. 11. 23:08
제네릭은 클래스 구현할 당시 타입을 확정적으로 정하지 않고 변수의 모습으로 남겨놓는 것을 의미한다. 그리고 클래스 객체를 생성 시, 남겨놓은 타입을 기재하여 타입을 확정한다. 제네릭은 원래 최상위 타입인 Object 타입으로 객체를 받아 사용하였지만 대부분의 클래스와 메소드에서 반환 시 반환 타입을 원하는 타입으로 타입 변환을 해야 하는 번거로움이 있어 제네릭의 개념이 등장하였다. // 타입을 변수 T로 비워놓은 제네릭 클래스의 모습 public class Hello { // T : 타입 private T data; public void set(T data) { this.data = data; } public T get() { return data; } } // 객체 선언시 타입 설정 Hello strH..
-
[Java] 중첩 클래스프로그래밍/JAVA 2022. 8. 11. 22:23
중첩 클래스는 클래스 내부에 선언한 클래스를 말하며 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있고, 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점이 있다. class ClassName{ class Name{ // 중첩 클래스 } } 인터페이스도 클래스 내부에 선언할 수 있는데, 이런 인테페이스를 중첩 인터페이스라고 한다. 인터페이스를 클래스 내부에 선언하는 이유는 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들 수 있기 때문이다. class ClassName{ interface Name{ // 중첩 인터페이스 } } 내부 클래스(Inner Class) 내부 클래스는 static 키워드 없이 중첩 선언된 클래스를 말하며, 클래스 또는 메소드 ..
-
[Java] 입출력 스트림(Stream)프로그래밍/JAVA 2022. 8. 10. 21:33
자바에서 데이터는 스트림을 통해 입출력하게되며 스트림은 단일방향, 연속적으로 흘러가는 것을 의미한다. 스트림은 입출력을 동시에 처리할 수 없는 이유로 데이터를 입력 받아야 할 경우 입력 스트림을 사용하고 데이터를 출력할 경우 출력 스트림을 사용한다. 자바 java.io 패키지에서는 InputStream 클래스와 OutputStream 클래스를 제공하고 입출력 스트림 클래스의 하위 클래스 표현시 접미사를 붙여 표현한다. 스트림 클래스는 다음과 같이 크게 두 종류로 바이트 기반 스트림, 문자 기반 스트림으로 구분된다. 바이트 기반 스트림은 그림, 멀티미디어 등의 바이너리 데이터를 읽고 출력할 때 사용하며 InputStream과 OutputStream은 바이트 기반 입출력 스트림의 최상위 클래스로 접미사를 붙..
-
[Java] 예외처리(Exception)프로그래밍/JAVA 2022. 8. 10. 20:53
에러는 개발자가 미리 예측하여 처리할 수 없는 것으로 프로그램 실행 중 심각한 문제를 야기하여 실행을 종료한다. 예외는 개발자가 미리 예측하여 예외를 처리할 수 있고 보편적으로 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발행하는 프로그램 오류를 의미한다. 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서 에러와 비슷하나 예외는 예외처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 예외는 두 가지 종류가 있으며, 일반예외와 실행예외로 구분된다. 일반예외는 컴파일러 체크 예외라고도 하는데, 프로그램 실행 시 예외가 발생할 가능성이 높기 때문에 자바 컴파일 과정에서 예외 처리 코드가 있는지 검사를 하게되고 만약 예외 처리 코드가 없다면 컴파일 오류가 발생한다. 실..
-
[Java] Map 컬렉션 클래스프로그래밍/JAVA 2022. 8. 9. 22:27
Map 컬렉션 클래스는 키와 값을 한 쌍으로 이루어지는 데이터의 집합으로 순서가 없고, 키는 중복으로 허용하지 않지만 값은 중복될 수 있다. 대표적인 Map 컬렉션 클래스는 HashMap, TreeMap, HashTable, Properties 가 있고 하나씩 알아보자. HashMap 클래스 JDK 1.2부터 제공되어 Map 인터페이스를 구현한 대표적인 클래스로 키와 값으로 구성된 요소 객체를 저장하는 구조를 가지고 있는 자료구조이다. 키는 중복 저장될 수 없고, 값은 중복될 수 있다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대체된다. 해싱(Hashing) 을 사용하기 때문에 많은 양의 데이터를 빠르게 검색하는 뛰어난 성능을 가지고 있다. TreeMap 클..