| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- 함수형프로그래밍
- 자바스크립트
- 엘라스틱서치
- ElasticSearch
- 스프링핵심원리
- Spring
- k8s
- 알고리즘
- Effective Java
- 오블완
- 이차전지관련주
- Kotlin
- Effective Java 3
- 예제로 배우는 스프링 입문
- 카카오
- 알고리즘정렬
- 자바
- Sort
- java
- 이펙티브자바
- 스프링
- 티스토리챌린지
- kubernetes
- 클린아키텍처
- 스프링부트
- 이펙티브 자바
- JavaScript
- Today
- Total
목록개발 (147)
Kim-Baek 개발자 이야기
이 글을 읽으면: Thread의 복잡함 없이 Kotlin 코루틴으로 쉽고 안전하게 비동기 프로그래밍하는 방법을 배울 수 있습니다. 실무에서 바로 쓸 수 있는 launch, async, suspend 패턴을 실전 예제로 마스터하세요.📌 목차들어가며 - 왜 코루틴을 배워야 할까?코루틴이란? - Thread와의 차이launch - 결과 없이 실행하기async/await - 결과 받아오기suspend 함수 - 일시 중단의 마법CoroutineScope와 Job실전 비동기 패턴마무리 - 다음 편 예고들어가며 - 왜 코루틴을 배워야 할까?실제 프로젝트에서 겪은 문제2024년 9월, 신규 기능 개발 중요구사항: - 사용자 정보 조회 (DB, 300ms)- 주문 내역 조회 (DB, 400ms) - 추천 상품 조회 ..
이 글을 읽으면: Java의 복잡한 예외 처리를 넘어 Kotlin의 우아한 에러 핸들링 방법을 배울 수 있습니다. 실무에서 바로 쓸 수 있는 안전하고 읽기 쉬운 에러 처리 패턴을 실전 예제로 마스터하세요.📌 목차들어가며 - 예외 처리, 왜 중요할까?Java vs Kotlin 예외 처리try-catch-finally 기본runCatching - 함수형 예외 처리Result 타입 완벽 활용Custom Exception 설계실전 에러 핸들링 패턴마무리 - 다음 편 예고들어가며 - 예외 처리, 왜 중요할까?실제 프로젝트에서 겪은 사고2024년 8월, 월요일 오전 10시상황: 쇼핑몰 서비스 전체 다운원인: 결제 API에서 NullPointerException 발생 → try-catch 없이 예외가 그대..
이 글을 읽으면: 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..
