1. 왜 어노테이션 + Reflections 인가?기능 기존 코드 어노테이션+Reflections플러그인/핸들러 등록ServiceLoader, XML, 수동 등록어노테이션 태깅 후 자동 스캔읽기 쉬움OO+ 메타데이터가 코드 옆에 위치유지보수성핸들러 추가 시 설정 수정 필요Zero‑Config: 클래스만 추가하면 끝어노테이션은 메타데이터를, Reflections는 클래스패스 스캐닝을 담당해 런타임 자동 구동 시나리오를 간결하게 만들어 줍니다.2. 프로젝트 설정build.gradle.ktsplugins { java}dependencies { implementation("org.reflections:reflections:0.10.2") // 필요 시 로깅 implementation("or..
1. 코루틴의 내부 동작 이해코루틴 디스패처와 컨텍스트코틀린의 모든 코루틴은 CoroutineContext라는 컨텍스트에서 실행됩니다. 컨텍스트는 여러 요소의 집합으로, 대표적으로 코루틴을 고유 식별하는 Job과 어떤 쓰레드에서 실행할지 결정하는 디스패처(Dispatcher)가 포함됩니다. 디스패처는 코루틴을 특정 쓰레드에 묶어 실행하거나, 스레드 풀에서 실행하게 하거나, Unconfined처럼 특별한 방식으로 실행하도록 결정합니다. 예를 들어, Dispatchers.Default는 CPU 집약적인 작업에 최적화된 공용 스레드 풀(코어 수와 동일한 쓰레드)에서 실행하고, Dispatchers.IO는 I/O 작업에 최적화되어 최대 64개의 쓰레드를 활용할 수 있습니다. 코루틴 빌더 (launch, asyn..
기본 문법코틀린의 기본 문법에서는 변수 선언, 자료형, 조건문과 반복문, 함수 및 클래스 정의 방법 등을 배웁니다. 자바(JAVA)와 비교했을 때 코틀린은 더욱 간결하고 읽기 쉬운 문법을 제공합니다. 예제를 통해 코틀린의 기본 문법을 익혀보세요.변수 및 데이터 타입코틀린에서 변수를 선언할 때는 val 또는 var 키워드를 사용합니다. val로 선언한 변수는 불변 변수(immutable)로, 한 번 값을 할당하면 다시 변경할 수 없습니다. 반면 var로 선언한 변수는 가변 변수(mutable)로, 이후에 값을 변경할 수 있습니다. 이러한 특징은 자바의 final 키워드(val에 해당)와 일반 변수(var에 해당)와 유사합니다.변수 선언 문법은 var/val 변수명: 타입 = 초기값 형태입니다. 코틀린은 타..
자바 제네릭(Generic)에 대해 알아보려고 합니다. 자바에서 제네릭은 클래스나 메서드를 다양한 타입에 대해 안전하게 재사용할 수 있도록 해주는 강력한 기능인데요, 이 개념을 이해하면 자바 프로그래밍의 수준을 한층 더 높일 수 있습니다.지금부터 제네릭의 기본 개념부터 실제 사용 방법까지 차근차근 살펴보겠습니다.1. 제네릭(Generic)란?제네릭은 클래스나 메서드를 특정 타입에 제한하지 않고 다양한 데이터 타입을 지원할 수 있게 해줍니다. 예를 들어, 배열이나 리스트 같은 자료 구조를 사용할 때 제네릭을 활용하면, 타입별로 별도의 클래스를 만들지 않아도 되고, 컴파일 시점에서 타입 검사를 통해 안정성을 보장받을 수 있습니다.제네릭의 기본 구조제네릭의 기본적인 문법은 타입 매개변수를 사용하는 것인데요, ..
- Total
- Today
- Yesterday
- 타입 안전성
- 디자인패턴
- generated_body()
- 일급 객체
- RESTfull
- 코프링
- Stack Area
- Heap Area
- 스브링부트
- ai통합
- springai
- model context protocol
- 도커
- Java
- MCP
- redis
- react.js
- method Area
- 자바
- 언리얼엔진
- cqrs
- 카프카 개념
- JAVA 프로그래밍
- 언리얼엔진5
- First-class citizen
- 코틀린
- vite
- unreal engjin
- JVM
- 스프링부트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |