푸른영혼의 별 | Tech Blog
Java Backend Engineer의 기술 블로그입니다.
Spring Boot, MSA, JPA, Kafka, Kubernetes 등 실무 경험을 공유합니다.
주요 프로젝트: Settlement MSA · ASAT · GitHub
Posts (총 1679편 · 20 / 168 페이지)
-
코틀린 클래스 — 기본 final, data·sealed·enum class, object·companion, value class
자바·코틀린 20편 시리즈의 코틀린 3편(K3) 이다. 코틀린 클래스 모델을 “어떤 문제를 풀려고 이 종류의 클래스가 있는가” 기준으로 분류한다. 일반 클래스의 기본 final 에서 시작해, 값을 담는 data class, 닫힌 계층을 만드는 sealed, 고정된 상수 집합 enum, 단 하나의 인스턴스 object/companion, 그리고 런타임 비용 없는 래퍼 value class 까지 간다.
-
코틀린 널 안전 — ?, ?., ?:, !!, 스마트 캐스트, 그리고 자바 경계의 플랫폼 타입
자바·코틀린 20편 시리즈의 코틀린 2편(K2) 이다. K1 에서 본 코틀린의 세 축 가운데 안전성의 중심, 널 안전을 다룬다. 연산자 문법보다 더 중요한 것은 두 가지다. (1) 스마트 캐스트가 언제 동작하고 언제 안 하는지, (2) 자바 코드가 넘겨주는 플랫폼 타입이 널 안전에 어떤 구멍을 내고, 그 구멍을 nullability 애노테이션으로 어떻게 메우는지.
-
코틀린의 본질 — 실용주의, 자바 상호운용, 간결성과 안전성이라는 설계 목표
자바·코틀린 20편 시리즈의 코틀린 1편(K1) 이다. 문법 하나하나로 들어가기 전에, 코틀린이 무엇을 위해 만들어졌고 그 목표가 문법 곳곳에 어떻게 새겨져 있는지를 먼저 정리한다. 이후 K2(널 안전)~K10(스프링부트 호환) 에서 다루는 거의 모든 규칙은 이 글의 세 가지 축 — 실용주의(pragmatism), 자바 상호운용(interoperability), 간결성·안전성(conciseness & safety) — 으로 설명된다.
-
블로그의 정점 5선 — 데이터·성능·개념·LLM·아키텍처를 1차 출처로 쓰는 개인 블로그
앞 글에서는 저장소까지 공개된 GitHub Pages 블로그 여섯 곳을 골랐다. 이번 다섯 곳은 기준이 다르다. 호스팅 방식과는 상관없다. 한 사람이 오랫동안 쓰면서 그 분야에서 다른 글들이 근거로 인용하는 출처가 된 개인 블로그들이다.
-
스프링부트 × 자바 버전 호환 — Boot 2/3/4 의 최소 자바, javax→jakarta, 가상 스레드, GraalVM 네이티브
자바·코틀린 20편 시리즈의 자바 마지막 글(J10) 입니다. “스프링 부트 X 를 쓰려면 자바 몇이 필요한가”, “자바 Y 로 올리면 부트는 어디까지 따라가나”, “
javax가jakarta로 바뀐 건 어느 버전부터인가”, “가상 스레드는 언제부터 켤 수 있나”, “네이티브 이미지는 어떤 GraalVM 이 필요한가” 를 공식 문서와 릴리스 노트로 확인한 사실만 모아 정리합니다. -
[팹 IoT 연구 2] 장비 이상 감지(FDC) — 고정 한계, SPC, PCA 중 무엇이 덜 시끄럽게 잡나
이 글의 모든 수치는 합성(시뮬레이션) 데이터에서 나왔다. 실제 장비·팹 데이터는 쓰지 않았고, 센서 모델과 고장 크기는 내가 정했다. “실제 팹에서 무엇이 낫다”가 아니라 “이런 구조의 데이터에서는 이렇게 갈린다”는 관찰이다.
-
스프링이 자바를 쓰는 방식 — 리플렉션, 애노테이션, JDK 동적 프록시 vs CGLIB, DI·AOP 의 원리
자바·코틀린 20편 시리즈의 자바 9번째 글(J9) 입니다. 스프링은 “마법” 처럼 보이지만, 실제로는 자바 언어와 JDK 가 제공하는 몇 가지 기능(리플렉션, 런타임 애노테이션, 동적 프록시, 바이트코드 생성)을 조합한 것입니다. 이 글은 그 조합을 자바 쪽에서 해부합니다. 각 메커니즘이 무엇이고, 스프링이 어디에 쓰며, 어떤 함정을 만드는지 를 순서대로 봅니다.
-
현대 자바 문법 총정리 — 8 → 11 → 17 → 21 → 25 LTS 별로 무엇이 바뀌었나
자바·코틀린 20편 시리즈의 자바 8번째 글(J8) 입니다. “우리 서비스는 자바 17 인데, 21 이나 25 로 올리면 코드에서 무엇을 쓸 수 있게 되나?” 라는 질문에 답하려고 쓴 글입니다. JVM·GC 같은 런타임 변화보다는 개발자가 매일 쓰는 언어 문법과 표준 라이브러리 API 에 집중합니다. LTS 구간(8, 11, 17, 21, 25)별로 묶고, 각 기능은 무엇인가 → 코드 → 실무 사용사례 → 함정 순서로 짧게 봅니다.
-
자바 동시성의 진화 — Thread → ExecutorService → CompletableFuture → 가상 스레드, 그리고 구조적 동시성
자바·코틀린 20편 시리즈의 자바 7번째 글(J7) 입니다. 자바가 “동시에 여러 일을 한다” 를 표현해 온 방식을 세대별로 정리합니다.
Thread를 직접 만들던 시절부터ExecutorService스레드 풀,CompletableFuture비동기 조합, JDK 21 의 가상 스레드(virtual threads), JDK 24 의 pinning 개선, 그리고 JDK 26 기준으로도 아직 프리뷰인 구조적 동시성(structured concurrency) 과 JDK 25 에 정식이 된 Scoped Values 까지 다룹니다. 마지막에 스프링 부트에서 가상 스레드를 켜는 방법과 주의점을 봅니다. -
배울 만한 GitHub Pages 기술 블로그 6선 — 글뿐 아니라 저장소까지 열어 볼 수 있는 블로그들
이 블로그도 GitHub Pages 위에서 Jekyll 로 돈다. 그래서 다른 GitHub Pages 블로그를 볼 때 좋은 점이 하나 있다. 글만이 아니라 블로그를 만든 저장소까지 공개돼 있다는 것이다. 어떤 생성기를 쓰는지, 글을 어떻게 나누고 묶는지, 설정을 어떻게 했는지 직접 열어 볼 수 있다.