| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- effectivejava
- java
- 클린아키텍처
- 알고리즘
- Sort
- JavaScript
- 김영한
- 알고리즘정렬
- Effective Java 3
- 함수형프로그래밍
- 스프링부트
- 자바스크립트
- 이펙티브자바
- 스프링핵심원리
- 이차전지관련주
- k8s
- 오블완
- 이펙티브 자바
- Effective Java
- 예제로 배우는 스프링 입문
- 카카오
- 스프링
- Kotlin
- 엘라스틱서치
- ElasticSearch
- 티스토리챌린지
- Spring
- 자바
- 스프링 핵심원리
- kubernetes
- Today
- Total
목록전체 글 (176)
Kim-Baek 개발자 이야기
이 글을 읽으면: Java의 반복적인 위임 코드를 Kotlin의 by 키워드로 한 줄로 해결하는 방법을 배울 수 있습니다. 클래스 위임, 프로퍼티 위임, 커스텀 위임까지 실전 예제로 완벽하게 마스터하세요.📌 목차들어가며 - Java 위임 패턴의 불편함클래스 위임 - by 키워드프로퍼티 위임 - lazy, observableMap 위임 - 동적 프로퍼티커스텀 위임 프로퍼티실전 위임 패턴마무리 - 다음 편 예고들어가며 - Java 위임 패턴의 불편함Java로 위임 패턴을 구현할 때 이런 경험 있으신가요?// Java - 수동 위임 (지루하고 반복적)interface Repository { void save(String data); String load(); void delete();}cla..
이 글을 읽으면: Java의 복잡한 상속 구조를 넘어 Kotlin의 안전하고 명확한 상속 시스템을 배울 수 있습니다. open, abstract, sealed 클래스와 인터페이스 다중 상속까지 실전 예제로 완벽하게 마스터하세요.📌 목차들어가며 - Java 상속의 문제점기본적으로 final - open 키워드추상 클래스 - abstract인터페이스 - interfaceSealed Class - 제한된 클래스 계층위임 - by 키워드실전 디자인 패턴마무리 - 다음 편 예고들어가며 - Java 상속의 문제점Java로 개발하면서 이런 경험 있으신가요?// Java - 모든 클래스가 기본적으로 상속 가능public class User { private String name; public Str..
이 글을 읽으면: Java 제네릭의 복잡함을 넘어 Kotlin의 강력한 타입 시스템을 배울 수 있습니다. 공변성(out), 반공변성(in), reified 타입 파라미터까지 실전 예제로 완벽하게 마스터하세요.📌 목차들어가며 - Java 제네릭의 한계제네릭 기본 - 타입 파라미터타입 제약 - where, upper bound공변성 out - 생산자반공변성 in - 소비자reified - 타입 소거 해결스타 프로젝션 *실전 패턴 모음마무리 - 다음 편 예고들어가며 - Java 제네릭의 한계Java 제네릭을 사용할 때 이런 경험 있으신가요?// Java - 타입 소거 때문에 런타임에 타입 확인 불가public void process(List list) { // if (list instanceof Li..
이 글을 읽으면: 함수를 값처럼 다루는 강력한 함수형 프로그래밍을 마스터할 수 있습니다. 람다 표현식, 고차 함수, 수신 객체 지정 람다를 활용해 더 간결하고 우아한 코드를 작성하는 방법을 실전 예제로 배워보세요.📌 목차들어가며 - 함수를 값처럼람다 표현식 기본고차 함수 - 함수를 인자로, 함수를 반환it 키워드와 underscore수신 객체 지정 람다inline, crossinline, noinline실전 DSL 패턴마무리 - 다음 편 예고들어가며 - 함수를 값처럼Java로 이벤트 리스너를 작성할 때 이런 경험 있으신가요?// Java - 익명 클래스로 콜백 구현button.setOnClickListener(new View.OnClickListener() { @Override public ..
이 글을 읽으면: Java의 Stream API보다 강력한 Kotlin 컬렉션 함수를 배울 수 있습니다. map, filter, groupBy 등 함수형 프로그래밍으로 데이터를 우아하게 처리하는 방법을 실전 예제로 마스터하세요.📌 목차들어가며 - Java 컬렉션의 불편함컬렉션 생성 - 불변 vs 가변List 컬렉션 완벽 정리Set과 Map함수형 연산 - map, filter, reduce고급 연산 - groupBy, partition, flatMapSequence - 성능 최적화실전 패턴 모음마무리 - 다음 편 예고들어가며 - Java 컬렉션의 불편함Java로 데이터 처리할 때 이런 경험 있으신가요?// Java - 장황한 컬렉션 처리List users = Arrays.asList( new Use..
이 글을 읽으면: Java 개발자의 악몽인 NullPointerException을 컴파일 타임에 완전히 차단하는 방법을 배울 수 있습니다. Nullable 타입, Safe Call, Elvis Operator, let 함수까지 실전 예제로 완벽하게 마스터하세요.📌 목차들어가며 - NPE의 공포Nullable Types - ? 연산자Safe Call - ?. 연산자Elvis Operator - ?: 연산자Not-null Assertion - !! 연산자let 함수와 Null Safety안전한 타입 캐스팅 - as?실전 패턴 모음마무리 - 다음 편 예고들어가며 - NPE의 공포Java로 개발하면서 이런 경험 있으신가요?// Java - 언제 터질지 모르는 시한폭탄public String getUserEma..
이 글을 읽으면: Kotlin의 변수 선언 방식인 val과 var의 차이를 완벽하게 이해하고, Java에는 없는 강력한 타입 추론과 Null Safety 시스템을 실전 예제로 배울 수 있습니다.📌 목차들어가며 - Java 변수 선언의 불편함val vs var - 언제 무엇을 쓸까?타입 추론 - 타입을 안 써도 되는 마법명시적 타입 선언 - 언제 필요할까?기본 타입 완벽 정리Nullable 타입 - NPE와의 전쟁타입 변환과 체크마무리 - 다음 편 예고들어가며 - Java 변수 선언의 불편함Java로 개발하면서 이런 경험 있으신가요?// Java - 매번 타입을 명시해야 함String name = "규철";int age = 30;List hobbies = new ArrayList(); // 타입 중복!..
이 글을 읽으면: Java의 장황한 클래스 선언을 단 1줄로 줄이는 방법을 배울 수 있습니다. data class, companion object, object 키워드를 활용해 더 간결하고 안전한 객체지향 프로그래밍을 실전 예제로 마스터하세요.📌 목차들어가며 - Java 클래스의 Boilerplate클래스 기본 선언 - constructor프로퍼티 - getter/setter 자동 생성Primary Constructor - 주 생성자Secondary Constructor - 보조 생성자data class - DTO의 완벽한 해결책companion object - static의 대안object - 싱글톤 패턴마무리 - 다음 편 예고들어가며 - Java 클래스의 BoilerplateJava로 간단한 Use..
이 글을 읽으면: Java의 제어문과 완전히 다른 Kotlin의 강력한 제어 구조를 배울 수 있습니다. if를 표현식으로 사용하고, when으로 switch를 대체하며, for 루프를 더 간결하게 작성하는 방법을 실전 예제로 마스터하세요.📌 목차들어가며 - Java 제어문의 한계if는 표현식이다 - 값을 반환하는 ifwhen - switch의 강력한 대안for 루프 - range와 컬렉션 순회while과 do-whilebreak, continue, return - 라벨 활용실전 패턴 모음마무리 - 다음 편 예고들어가며 - Java 제어문의 한계Java로 간단한 등급 계산을 할 때 이런 경험 있으신가요?// Java - if문은 statement (값 반환 불가)String grade;if (score ..
이 글을 읽으면: Java 메서드보다 훨씬 강력하고 유연한 Kotlin 함수 작성법을 배울 수 있습니다. 단일 표현식 함수, 기본 매개변수, Named Arguments, 확장 함수까지 실전 예제로 마스터하세요.📌 목차들어가며 - Java 메서드의 불편함함수 기본 문법 - fun 키워드반환 타입과 Unit단일 표현식 함수 - 한 줄로 끝내기기본 매개변수 - 오버로딩 필요 없음Named Arguments - 가독성 극대화가변 인자 - vararg확장 함수 - 기존 클래스 확장마무리 - 다음 편 예고들어가며 - Java 메서드의 불편함Java로 간단한 계산 메서드를 만들 때 이런 경험 있으신가요?// Java - 너무 장황함public class MathUtils { // 1. 항상 클래스 안..
이 글을 읽으면: Java 개발자가 Kotlin을 배워야 하는 이유와 5분 만에 첫 프로젝트를 시작하는 방법을 알 수 있습니다. IntelliJ 설치부터 Hello World까지 단계별로 따라하세요.📌 목차들어가며 - 왜 Kotlin을 배워야 할까?Kotlin vs Java - 코드량이 40% 줄어든다?개발 환경 설정 - IntelliJ IDEA 설치첫 프로젝트 만들기 - 5분이면 충분합니다Hello World 작성 및 실행변수 선언 맛보기 - val과 var마무리 - 다음 편 예고들어가며 - 왜 Kotlin을 배워야 할까?솔직히 말하면, 저도 처음엔 회의적이었습니다.5년간 Java로 Spring Boot, JPA, Stream API까지 다 익혔는데... "굳이 Kotlin을 배워야 하나?" 싶었죠...
Java 개발자가 Kotlin을 배워야 하는 이유와 5분 만에 시작하는 방법목차왜 Kotlin을 배워야 할까?개발 환경 설정Hello World - Java vs Kotlin변수 선언 - val과 var기본 타입과 타입 추론문자열 처리첫 번째 프로그램 만들기들어가며저는 5년간 Java로 개발했습니다. Spring Boot, JPA, Stream API까지 다 익숙했죠. 그런데 팀에서 Kotlin 도입을 결정했고, 처음에는 "굳이?"라는 생각이 들었습니다.하지만 첫 코드를 작성하고 놀랐습니다:// Java - 20줄public class User { private final Long id; private final String name; private final String email; ..
Mockito-Kotlin으로 더 간결하고 강력한 테스트 코드 작성하기목차Kotlin 테스트 환경 설정JUnit5 기본 테스트Mockito-Kotlin 소개Mock 객체 생성과 스터빙Argument Matchers와 CaptorsVerification - 호출 검증Spring Boot 통합 테스트실전 테스트 패턴들어가며Java에서 Mockito를 사용하다가 Kotlin으로 넘어왔을 때, 처음에는 당황스러웠습니다. when()이 Kotlin 예약어라서 컴파일 오류가 나고, any() matcher가 null을 허용하지 않아서 NPE가 발생했습니다.// ❌ 컴파일 오류when(userRepository.findById(1L)).thenReturn(user)// ❌ NPE 발생verify(userService..
Kotlin의 함수형 스타일 예외 처리로 더 안전하고 우아한 코드 작성하기목차Java vs Kotlin 예외 처리 비교기본 try-catch-finallytry를 Expression으로 사용하기runCatching - 함수형 예외 처리Result 타입 활용Spring Boot에서의 예외 처리Custom Exception 설계실전 패턴과 Best Practices들어가며프로젝트에서 외부 API를 호출하는 코드를 작성하다가 예외 처리 때문에 고민이 많았습니다. Java 스타일로 작성하면 try-catch 블록이 중첩되어 코드가 지저분해지고, 예외가 발생했을 때 기본값을 반환하거나 로깅 후 재시도하는 로직을 깔끔하게 처리하기 어려웠습니다.그러다 Kotlin의 runCatching과 Result 타입을 알게 되..
Java 대신 Kotlin으로 Spring Boot 개발하기 - 더 간결하고 안전한 백엔드 개발목차왜 Kotlin + Spring Boot인가?프로젝트 설정과 의존성Spring Annotations와 KotlinDependency Injection의 Kotlin 방식Controller 계층 구현Service 계층과 트랜잭션Entity와 RepositoryConfiguration과 Bean 정의실전 예제: RESTful API 구축들어가며Spring Boot 프로젝트를 Java에서 Kotlin으로 마이그레이션하면서 가장 놀라웠던 점은 코드량이 30% 이상 줄어들었다는 것입니다. Boilerplate 코드가 사라지고, Null Safety로 NPE가 거의 발생하지 않았으며, Data Class 덕분에 DTO..
Kotlin의 강력한 제어 구조와 타입 시스템을 마스터하여 더 안전하고 간결한 코드를 작성하는 방법목차제어 구조의 진화: Expression vs Statementwhen - 강력한 패턴 매칭if expression - 더 이상 Statement가 아닙니다Enum Class - 타입 안전한 상수Sealed Class - 제한된 클래스 계층Companion Object - 정적 멤버의 Kotlin 방식실전 예제: 네트워크 응답 처리들어가며Java에서 Kotlin으로 넘어오면서 가장 놀라웠던 것은 제어 구조가 Expression이라는 점이었습니다. if문에서 값을 반환받고, when문으로 복잡한 분기를 우아하게 처리하는 것을 보고 "이게 가능하다고?"라는 생각이 들었습니다.특히 프로젝트에서 네트워크 응답이나..
이 글을 읽으면: Java 개발자의 악몽인 NullPointerException(NPE)를 컴파일 타임에 방지하는 Kotlin의 Null Safety 시스템을 완벽하게 이해할 수 있습니다. 실무에서 바로 적용 가능한 4가지 연산자를 실전 예제와 함께 배워보세요.📌 목차NPE의 악몽 - 왜 Null Safety가 필요한가Nullable Types (?) - Null 가능 타입Safe Call Operator (?.) - 안전한 호출Elvis Operator (?:) - 기본값 제공Not-null Assertion (!!) - 개발자의 보증실전 활용 패턴성능 최적화 팁1. NPE의 악몽 - 왜 Null Safety가 필요한가😱 Java 개발자의 일상// Java - 언제 터질지 모르는 시한폭탄public..
이 글을 읽으면: Kotlin의 기본 문법인 Data Class, Named Parameters, Primary Constructor를 실전 예제와 함께 배울 수 있습니다. Java 개발자라면 특히 주목! 코드량을 50% 줄이는 마법을 경험하세요.📌 목차Data Class란? - 10줄 코드를 1줄로Named Parameters로 가독성 높이기Primary Constructor 완벽 이해실전 예제로 배우기Java vs Kotlin 비교1. Data Class란? - 10줄 코드를 1줄로😫 Java에서 DTO 만들 때 이런 경험 있으신가요?// Java - 끔찍한 보일러플레이트 코드public class User { private String name; private int age; p..
✅ 함수형 인터페이스란?함수형 인터페이스(Functional Interface)란 "단 하나의 추상 메서드만 가지는 인터페이스" 를 의미합니다.✔ 자바에서 람다 표현식(->)과 함께 사용하기 위해 만들어진 인터페이스✔ 메서드가 1개만 있으므로, 람다식으로 쉽게 구현 가능✔ @FunctionalInterface 어노테이션을 사용하면 컴파일러가 함수형 인터페이스인지 확인해줌📌 대표적인 함수형 인터페이스 8가지🚀 1️⃣ Function (입력값을 변환하여 반환)✔ 입력값 T를 받아서 R로 변환하는 함수✔ 어떤 값을 입력받아서 변환하는 기능이 필요할 때 사용✔ 예제: Integer → String 변환Function intToString = num -> "숫자: " + num;System.out.printl..
📌 MongoDB에서 Time Series 기능을 사용하지 않고 일반 컬렉션을 활용하는 것과의 차이점MongoDB에서 Time Series Collection을 사용하지 않고, 일반 컬렉션에 시간 데이터를 저장하여 쿼리하는 방법도 가능합니다. 하지만 두 방식에는 성능, 저장 공간 효율성, 쿼리 최적화 측면에서 차이가 있습니다.1️⃣ Time Series Collection vs 일반 컬렉션의 차이점 정리비교 항목 Time Series Collection 사용 일반 MongoDB Collection 사용저장 구조시간 기반 자동 최적화된 저장JSON 문서 개별 저장인덱싱timestamp 필드 자동 인덱싱수동으로 timestamp 필드에 인덱스 추가 필요읽기(Read) 성능시간 기반 데이터 검색에 최적화일반..
