[Java] 싱글톤 패턴(Singleton Pattern) 개념 및 사용 방법
·
Java
싱글톤 패턴(Singleton Pattern)싱글톤 패턴은 특정 클래스가 단 하나만의 인스턴스를 생성하고, 그 인스턴스에 접근 할 수 있는 전역적인 접근 방법을 제공하는 디자인 패턴 입니다.생성자를 여러번 호출 하더라도 하나의 인스턴스만 존재하도록 보장하며 어플리케이션에서 동일한 인스턴스에 접근하도록 합니다. 싱글톤 패턴을 사용하는 이유 [예시 1] 1. 1대의 정수기를 여러 사람이 공유하며 함께 사용한다.2. 여러대의 정수기를 여러 사람이 각각 사용한다. 이 2가지의 상황에서의 일반적인 경우는 1대의 정수기를 여러 사람이 공유해서 사용하는 것이 일반적인 사용 방법이라고 할 수 있겠죠?일반적으로 사무실에는 1대의 정수기만 존재 할 것이므로, 2번째 방법은 비효율적이며 불가능한 방법 일지도 모릅니다. 시스..
[Java] 멀티쓰레드 Callable, Executor, ExecutorService 알아보기
·
Java
Runnable 인터페이스 Runnable 인터페이스의 run()메서드는 void 타입을 반환하므로 결과를 반환할 수 없다는 단점이 있습니다. 반환 값을 얻기위해 복잡한 작업을 거쳐야하는데 그 작업이 매우 번거롭기에 이러한 문제를 개선하기 위해 추가된 Callable과 Future가 있습니다.@FunctionalInterfacepublic interface Runnable { void run();}public class RunnableExample { public static void main(String[] args) throws InterruptedException, ExecutionException { // Runnable을 실행할 스레드 생성 Runnable t..
[Java] Thread와 Runnable의 개념 및 사용법
·
Java
Thread 클래스Thread는 자바에서 멀티스레드를 지원하기 위해 제공되는 클래스이다.Thread 클래스를 상속받아서 스레드가 실행할 작업을 정의한다 Thread 클래스의 주요 메서드start()새로운 스레드를 생성하고, 내부적으로 run() 메서드를 호출run()스레드가 실행할 작업을 정의sleep()현재 스레드를 지정된 시간 동안 대기상태로 만든다join()현재 스레드가 종료될 때까지 다른 스레드가 대기하게 만든다public class ThreadExample extends Thread { @Override public void run() { // 스레드에서 실행할 작업 for (int i = 1; i  Runnable 인터페이스Runnable 인터페이스는 Thr..
[Java] 람다식(Lambda) 개념 및 사용 예제
·
Java
람다식이란?람다식(Lambda Expression)이란 함수를 하나의 식(Expression)으로 표현한 것.함수를 람다식으로 표현하면 메소드의 이름이 필요 없기 때문에, 람다식은 익명 함수의 한 종류.Java8 버전부터 제공. [익명 함수란?]이름이 없는 함수.함수이지만 함수를 따로 만들지 않고, 코드한줄에 함수를 써서 그것을 호출하는 방식 [람다식 작성법]// 람다식 기본 형태(매개변수) -> {함수 로직}//기존 함수 정의public string helloWorld(){ System.out.println("Hello World!");}// 람다 함수 정의() -> { System.out.println("Hello World!"); }public static void main(String[] ar..
[Java] 스트림(Stream) 특징, 사용 예제
·
Java
Stream이란?Java 8부터 Stream이 Java에 도입되었다.Stream의 주 목적은 복잡한 데이터 처리 간소화, 코드 가독성 향상, 쉬운 병렬 처리 적용이다.Stream의 사전적 의미는 흐르다이다. 어떠한 것이 흐르는 것이 아니고 데이터의 흐름을 말한다. [스트림의 데이터 흐름 참고 사진]  [Stream의 데이터 흐름]1. 위 그림은 어부가 물고기를 그물로 잡고, 여러 마리를 일정한 기준으로 모아서 상자에 넣고, 이들을 하나로 모은 뒤 트럭에 실어서 운반하는 과정을 나타내고 있다.2. 위 그림에서의 물고기와 같은 어류의 이동을 stream이라고 정의할 수 있다.3. 어부가 어류 중에서도 고등어를 잡고 싶어서 그물로 고등어를 잡았다. 이 행위를 filter라고 하고, 이 연산자를 중간 연..
[Java] 자료구조 HashMap의 특징 및 핵심 원리
·
Java
HashMapHashMap 은 키(Key)와 값(value)쌍을 저장하는 자료 구조각 키는 고유하며, 키를 사용하여 해당하는 값을 빠르게 검색할 수 있음 HashMap의 특징키 기반의 빠른 액세스 : 키를 사용하여 값을 빠르게 검색하거나 수정할 수 있음순서를 보장하지 않음 : 'HashMap' 은 내부적으로 키의 순서를 보장하지 않음키의 중복 불가 : 이미 존재하는 키에 대해 값을 저장하면 기존 값이 덮어씌워짐null 키와 값 : 'HashMap'은 null 키와 null 값을 저장할 수 있음 하지만 키는 중복이 불가하므로 null 키는 하나만 저장될 수 있음키 기반의 유연성 : 어떤 객체든 키로 사용할 수 있음해싱 충돌 : 두 개 이상의 키가 동일한 해시 코드를 가질 때 충돌이 발생  HashMap 주..
[Java] 자바 접근제어자(public, protected, default, private)
·
Java
Java 접근 제어자 종류자바에서 접근 제어자는 클래스, 메서드, 변수 등에 대한 접근 범위를 제어하기 위해 사용접근 제어자를 적절하게 사용하는 것은 코드의 캡슐화와 보안성을 높이는 데 매우 중요자바에서 사용할 수 있는 주요 접근 제어자는 네 가지(public, protected, default, private) [ Public ]정의 :클래스, 메서드, 변수 등이 public으로 선언모든 클래스에서 접근 가능특징 :어디서든 접근 가능다른 패키지에서도 접근 가능API 클래스와 메서드 등에 주로 사용[ Protected ]정의 :클래스, 메서드, 변수 등이 protected로 선언동일 패키지 내의 클래스와 상속 관계에 있는 하위 클래스에서 접근 가능특징 :동일 패키지 내에서 접근 가능다른 패키지의 하위 클..
[Java] Quartz Scheduler 사용 해보기
·
Java
⏱️Quartz1) Quartz💡Quartz1. Quartz는 다양한 Java 기반의 애플리케이션에 통합할 수 있는 작업 스케줄링 라이브러리이다.2. Quartz를 사용하면 시스템에 자동화 및 효율성 향상을 이룰 수 있다.3. ex)이메일 발송 스케줄링, 데이터베이스 백업 등에 활용 가능하다.2) 주요 클래스 및 인터페이스Job인터페이스실행할 작업을 정의하는 인터페이스JobDetail인터페이스실행될 작업을 정의하고 구성하는 인터페이스JobBuilder클래스JobDetail 인스턴스를 생성하는데 사용되는 유틸리티 클래스JobListener인터페이스작업의 생명 주기 동안 발생하는 이벤트를 처리하는 인터페이스JobDataMap클래스작업 실행시 필요한 데이터를 저장하는 맵   Trigger인터페이스작업의 실행..
[Java] enum(열거 타입)에 대해서
·
Java
1. Enum 이란?enum은 서로 연관된 상수들의 집합으로 상수를 여러개 정의 할 때 사용한다.ex) 요일, 계절, 과목 등을 나타낼 때 쓰일 수 있다. 2. Enum 구현하기1. enum 정의enum 클래스로 언어들을 상수화 했다(열거 상수는 대문자로 작성해야 한다.)enum은 클래스처럼 선언해서 사용 가능하다. 2. enum 값 출력enum 객체가 출력되는걸 볼 수 있다. 실행 결과: 3. Enum의 장점Enum은 코드의 가독성을 높이고 논리적인 오류를 줄일 수 있는 장점이 있다. 1) 상수와 리터럴이 논리적 연관이 없는 문제를 해결 가능하다.ENGLISH라는 상수와 1이라는 리터럴은 논리적으로 아무런 연관이 없다.이러한 문제를 해결 가능하다. 2) 서로 다른 개념끼리 이름이 충돌할 수 있는 문제를..
[Java] JSON 객체 다루기(JSONObject, JSONArray)
·
Java
1. JSONObjectJSONObject는 주로 JSON 객체를 새로 만드는 역할을 하거나, String 객체를 JSON 객체로 변환할 때 사용 예시코드 1) JSON 객체 생성//JSON 객체 생성JSONObject json = new JSONObject();//JSON Data addjson.put("강사", "김철학");json.put("학생", "조영흥");json.put("강의실", "C2");//키값이 '강사'인 요소 추출하기json.get('강사') /return '김철학'//json 출력System.out.println(json);//결과json = {"강사":"김철학","학생":"조영흥","강의실":"C2"} 예시코드 2) String → JSON 형변환//String 객체String ..
하부루
'Java' 카테고리의 글 목록