새로운 포스트
-
Kotlin
[Kotlin] 코틀린 제대로 활용하기 1편 - 위임 프로퍼티: by 키워드로 lazy부터 맵 위임까지 이해하기
-
Kotlin
[Kotlin] 코틀린 온보딩 11편 - 널이 될 수 있는 값: null 안전성 한 번에 정리하기
-
Kotlin
[Kotlin] 코틀린 온보딩 10편 - object와 companion object: 싱글톤부터 value class까지 이해하기
-
Kotlin
[Kotlin] 코틀린 온보딩 9편 - 생성자: 정의와 초기화를 한 번에 이해하기
-
Kotlin
[Kotlin] 코틀린 온보딩 8편 - 클래스 계층 구조: 인터페이스부터 sealed class까지 한눈에 정리하기
-
Kotlin
[Kotlin] 코틀린 온보딩 7편 - 확장 함수: 바이트코드로 확장 프로퍼티까지 이해하기
-
Kotlin
[Kotlin] 코틀린 온보딩 6편 - 함수 호출: 이름 있는 인자부터 infix까지 이해하기
-
Kotlin
[Kotlin] 코틀린 온보딩 5편 - 루프와 예외 처리: for/while과 try-catch
다른 사람들이 관심있어한 포스트
-
Techfork [26/01/28] 오늘의 개발 일지 - 웹 Apple 소셜 로그인 구현 오늘은 웹에서 Apple 소셜 로그인을 할 수 있도록 REST API 문서를 보고 구현했습니다. 애플 로그인은 카카오 로그인보다 훨씬 까다롭더군요...https://developer.apple.com/documentation/signinwithapplerestapi Sign in with Apple REST API | Apple Developer DocumentationCommunicate between your app servers and Apple’s authentication servers.developer.apple.com 웹 Apple 로그인 구현 가이드TechFork 프로젝트의 Spring Security OAuth2 기반 Apple 소셜 로그인 구현⚠️ Apple vs Kakao 핵심 차이.. -
JVM [JVM] CDS와 AppCDS - JVM이 클래스 로딩을 캐싱하는 방법 JVM 인터널 시리즈이전 글에서 ClassLoader가 .class 파일을 찾아 InstanceKlass로 변환하는 과정을 살펴봤습니다.이번 글은 그 연장선입니다. JVM이 매번 같은 작업을 반복하지 않도록 결과를 캐싱하는 방법, Class Data Sharing(CDS) 을 다룹니다. 1. 왜 JVM 시작이 느린가?java -jar app.jar를 실행하는 순간, JVM은 애플리케이션이 첫 번째 요청을 처리하기 전까지 상당한 양의 작업을 수행합니다. 전형적인 Spring Boot 애플리케이션은 완전히 초기화되기까지 15,000~25,000개의 클래스를 로드합니다. 각 클래스는 아래의 단계를 거칩니다.Loading : .class 파일 탐색 → 바이트코드 읽기/파싱 → InstanceKlass 생성 ..
-
JVM [JVM] 가비지 컬렉터의 역사 (6) - ZGC와 Generational ZGC: 서브밀리초 GC의 모든 것 이전 포스트에서 Shenandoah는 Brooks Pointer를 사용해 동시 압축을 구현했습니다.https://dmoritle.tistory.com/174 [JVM] 가비지 컬렉터의 역사 (5) - Shenandoah GC: 동시 이주 실현한 Low-Latency 가비지 컬렉터서론: 왜 Low-Latency GC가 필요해졌는가하드웨어 성장이 만든 역설1990년대부터 2000년대 초반까지 JVM 힙 메모리는 수백 MB 수준이었습니다. 그러나 메모리 가격 하락과 64비트 아키텍처의 보편화로dmoritle.tistory.com ZGC는 같은 목표를 Colored Pointer와 Load Barrier로 달성하되, 구현 전략은 정반대에 가깝습니다. 1. ZGC 개요ZGC란?ZGC(Z Garbage Colle..
-
Kotlin [Kotlin] 코틀린 온보딩 1편 - 함수: 문과 식부터 이해하기 이번 글의 핵심은 코틀린의 기본 단위인 함수를 이해하는 것입니다. 그런데 코틀린 함수를 제대로 이해하려면 먼저 "문(statement)"과 "식(expression)"의 구분부터 짚고 넘어가야 합니다. 자바에서는 당연히 문이었던 것들이 코틀린에서는 식으로 취급되고, 이 차이가 함수를 정의하는 방식(블록 본문 vs 식 본문)까지 그대로 이어지기 때문입니다. 문과 식의 구분부터 시작해서, 이 개념이 함수 정의 방식에 어떻게 이어지는지까지 살펴보겠습니다. 문과 식의 기본 구분문(Statement): 실행되지만 값을 만들어내지 않습니다.식(Expression): 평가되어 값을 만들어냅니다.자바에서는 if, when(switch), try 같은 제어 구조가 전부 문이었습니다. 값을 만들어내려면 삼항 연산자(? :..
-
Istio [Istio] 3편: 이스티오 엔보이(Envoy) 프록시 파헤치기 - 개념부터 핵심 기능까지 https://dmoritle.tistory.com/271 [Istio] 2편: Istio 첫걸음 - CRD부터 관찰가능성까지, 핵심 컴포넌트 훑어보기이번 편은 그 큰 그림 안에서 언급만 하고 넘어갔던 istiod, 사이드카 주입, Gateway, 라우팅 규칙 리소스 같은 요소들을 하나씩 꺼내서 "실제로 Istio를 켜면 무슨 일이 일어나는가" 관점에서 훑어보dmoritle.tistory.com목차엔보이란 무엇인가엔보이의 두 가지 원칙핵심 개념: 리스너, 필터 체인, 라우트, 클러스터, 엔드포인트핵심 기능서비스 디스커버리로드 밸런싱트래픽 및 요청 라우팅트래픽 전환 및 섀도잉네트워크 복원력HTTP/2와 gRPC관찰 가능성메트릭 / 액세스 로그 / 분산 트레이싱자동 TLS 종료 및 시작속도 제한엔보이 확장v..