| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바스크립트
- JavaScript
- k8s
- effectivejava
- Spring
- 카카오
- 클린아키텍처
- springboot
- ElasticSearch
- Effective Java 3
- 오블완
- 스프링
- 알고리즘정렬
- 스프링 핵심원리
- 자바
- 예제로 배우는 스프링 입문
- Kotlin
- java
- 이펙티브 자바
- 엘라스틱서치
- 티스토리챌린지
- 김영한
- 알고리즘
- Effective Java
- Sort
- 이펙티브자바
- 이차전지관련주
- 스프링핵심원리
- kubernetes
- 스프링부트
- Today
- Total
목록분류 전체보기 (180)
Kim-Baek 개발자 이야기
이 글을 읽으면: Java 중심의 Spring Boot를 Kotlin으로 더 간결하고 안전하게 작성하는 방법을 배울 수 있습니다. Controller부터 JPA, 코루틴 비동기 처리까지 실전 REST API 구현을 완벽하게 마스터하세요.📌 목차들어가며 - 왜 Spring Boot + Kotlin인가?프로젝트 설정 - Gradle + Kotlin DSLController와 REST APIJPA with Kotlin - Entity 설계Service와 비즈니스 로직코루틴으로 비동기 처리실전 REST API 구현마무리 - 다음 편 예고 들어가며 - 왜 Spring Boot + Kotlin인가?실제 프로젝트에서 겪은 변화2024년 11월, 레거시 전환 프로젝트기존: Java + Spring Boot- Gett..
이 글을 읽으면: 단일 값이 아닌 연속된 데이터를 안전하고 효율적으로 처리하는 Flow와 Channel을 마스터할 수 있습니다. 실시간 데이터, 이벤트 스트림, 반응형 프로그래밍을 실전 예제로 완벽하게 배워보세요.📌 목차들어가며 - 왜 Flow가 필요할까?Flow 기본 개념 - 흐르는 데이터Flow 연산자 - map, filter, collectStateFlow와 SharedFlowChannel - 코루틴 간 통신실전 반응형 패턴마무리 - 다음 편 예고들어가며 - 왜 Flow가 필요할까?실제 프로젝트에서 겪은 문제2024년 10월, 실시간 채팅 앱 개발요구사항:- 서버에서 실시간으로 메시지 수신- 사용자 타이핑 상태 업데이트- 접속자 수 실시간 표시→ "연속된 데이터"를 어떻게 처리하지?시도한 방법들:..
이 글을 읽으면: 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문으로 복잡한 분기를 우아하게 처리하는 것을 보고 "이게 가능하다고?"라는 생각이 들었습니다.특히 프로젝트에서 네트워크 응답이나..
