Enum이란? Enum이란 열거형이라고 하며 서로 연관된 상수들의 집합을 의미합니다. Enum의 등장배경 Enum의 등장 전에는 어떠한 상수를 선언 시 static final으로 다 선언하자니 네임충돌이 발생할 우려도 있고 복잡했습니다. 인터페이스를 사용하면 위의 문제는 해결되나 타입의 안정성이 떨어지게 되었습니다. static final을 사용하여 변수 선언 아래 예제를 살펴보면 각각의 상수에 부여된 1, 2, 3이라는 리터럴은 단순히 상수들을 구분하고 이용하기 위해 부여된 값들이지 어떠한 논리적인 의미가 없습니다. 다시 말해 APPLE이 1인 의미는 굳이 1일 필요가 없다는 것입니다. 또한 네임충돌이 발생할 수 있습니다. 과일의 APPLE과 회사의 APPLE이 있다면 각각 구분을 해주어야 합니다. p..
Main Thread 모든 자바 어플리케이션에서 메인 스레드는 다음과 같은 main 메서드를 통해서 실행하게 됩니다. 메인 메서드가 실행이 되면 코드는 한줄 한줄 순차적으로 시작하게 되고 return을 만나거나 main 메서드의 끝이오면 종료하게 됩니다. 이런 main 메서드만 존재하는 상황을 싱글 스레드 어플리케이션이라고 하는데 main 스레드가 종료되면 프로그램 자체도 종료됩니다. main 스레드 구조에서 스레드를 여러개 생성하여 멀티 스레드로 구성할 수 있는데 그림으로 확인해보겠습니다. main 스레드가 끝나고도 다른 스레드도 끝나야 프로세스가 종료가 되는데 데몬 스레드는 예외입니다. public static void main(String[] args) { System.out.println("Mai..
Thread란? 스레드란 한 프로세스에서 동작되는 여러 흐름입니다. 쉽게 말하자면 크롬에서 여러개의 탭을 사용중에 있거나 교통체증을 막기위하여 여러개의 차선이 있는것이라고 생각할 수 있습니다. Thread의 상태 경우에 따라서 스레드는 실행 상태에서 실행 대기 상태로 가지 않고 일시 정지 상태로 가기도 하는데, 일시 정지 상태는 스레드가 실행할 수 없는 상태입니다. 스레드가 다시 실행 상태로 가기위해서는 실행 대기 상태로 가야합니다. 스레드 객체 생성 - NEW 스레드 객체 생성 후 아직 start() 메서드가 호출되지 않은 상태입니다. 실행 대기 - RUNNABLE 실행 상태로 언제든지 갈 수 있는 상태입니다. CPU를 점유하고 있지 않으며 실행을 하기 위한 대기 상태입니다. 개발자가 start() 메..
Thread 클래스와 Runnable 인터페이스 Thread Class Thread 클래스를 상속받는 경우에는 run() 메서드를 오버라이딩해야합니다. Thread 클래스를 상속받아 사용하는 경우에는 정의된 각 스레드가 고유한 객체를 만들고 해당 객체와 연결이 됩니다. Runnable Interface Runnable 인터페이스를 구현하는 경우에는 run() 메서드를 구현해야합니다. Runnable 인터페이스를 구현하는 경우 정의된 각 스레드는 같은 객체를 공유하게 됩니다. Thread 흐름 Thread Class 위에서 설명한거처럼 고유한 객체를 만들고 해당 객체의 start() 메서드를 호출하여 스레드를 동작시킵니다. 여러개의 스레드가 필요한 경우 객체를 생성하여 스레드를 사용해야 합니다. publi..
- Total
- Today
- Yesterday
- microkernel architecture
- spring boot redis 대기열 구현
- spring boot excel download paging
- pipeline architecture
- spring boot 엑셀 다운로드
- 공간 기반 아키텍처
- transactional outbox pattern
- transactional outbox pattern spring boot
- redis 대기열 구현
- spring boot redisson sorted set
- spring boot redisson destributed lock
- java ThreadLocal
- polling publisher spring boot
- redis sorted set
- 람다 표현식
- spring boot excel download oom
- 레이어드 아키텍처란
- 서비스 기반 아키텍처
- 트랜잭셔널 아웃박스 패턴 스프링 부트 예제
- 트랜잭셔널 아웃박스 패턴 스프링부트
- space based architecture
- spring boot redisson 분산락 구현
- pipe and filter architecture
- @ControllerAdvice
- service based architecture
- 자바 백엔드 개발자 추천 도서
- JDK Dynamic Proxy와 CGLIB의 차이
- redis sorted set으로 대기열 구현
- java userThread와 DaemonThread
- spring boot poi excel download
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |