-
백엔드 데브코스 12기 62일차
이날은 Java → Kotlin 문법 비교 6편으로 생성자와 초기화 방식을 정리했다.Java와 Kotlin의 주 생성자, init 블록, 부 생성자를 비교하면서 객체를 생성하고 초기화하는 방식의 차이를 살펴봤다. 특히 Kotlin에서는 주 생성자에 val, var를 선언하는 것만으로 프로퍼티 초기화까지 처리할 수 있어 코드가 훨씬 간결해진다는 점이 인상적이었다.또한 Java에서 생성자 오버로딩으로 처리하던 부분을 Kotlin에서는 기본 매개변수로 간단하게 구현할 수 있다는 점도 다시 확인했다.이번 정리를 통해 Java 코드를 Kotlin으로 단순히 변환하는 것보다 Kotlin의 특성을 활용해 불필요한 코드를 줄이는 것이 중요하다는 것을 느꼈다.[Java → Kotlin] 자바 개발자를 위한 코틀린 문법 ..
2026.10.12
-
[Java → Kotlin] 자바 개발자를 위한 코틀린 문법 비교 ⑥ 생성자와 초기화
Java와 Kotlin은 객체를 생성하고 초기화하는 방식에서도 차이가 있다.Java에서는 생성자를 클래스 내부에 직접 작성하지만, Kotlin에서는 주 생성자를 클래스 선언부에 작성할 수 있다.또한 init 블록으로 초기화 로직을 실행하고, 필요에 따라 부 생성자를 추가할 수도 있다.이번 글에서는 Java와 Kotlin의 생성자 문법을 비교하고, Kotlin에서 더 간결하게 객체를 초기화하는 방법을 정리했다.1. 주 생성자 (Primary Constructor)Java에서는 생성자를 클래스 내부에 작성하고, 매개변수로 전달받은 값을 필드에 할당한다.Javaclass Person { private String name; private int age; public Person(String n..
2026.10.12
-
[프로그래머스 Lv.2] 타겟 넘버(Java)
문제https://school.programmers.co.kr/learn/courses/30/lessons/43165?language=java 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이각 숫자마다 + 또는 -를 선택하는 모든 경우를 DFS로 탐색하는 방식이다.dfs에서 현재 인덱스의 숫자를 더하는 경우와 빼는 경우로 나누어 재귀 호출한다. dfs(numbers, idx+1, target, sum+numbers[idx]);dfs(numbers, idx+1, target, sum-numbers[idx]); 따라서 숫자 하나를 처리할 때마다 두 갈래로 탐색하게 되며, 모든 숫자를 처리한 시점인 idx == n..
2026.10.10
-
백엔드 데브코스 12기 61일차
이날도 Java 코드를 Kotlin으로 전환하는 방법에 대해 배웠다.먼저 filter, map, forEach와 같은 컬렉션 함수와 apply, let, also, run, with 등의 스코프 함수를 학습했다. Java의 Stream API와 비슷한 기능을 Kotlin에서는 더 간결하게 사용할 수 있다는 점이 인상적이었다. 특히 스코프 함수마다 객체 자체를 반환하는지, 람다의 실행 결과를 반환하는지 구분하는 것이 중요하다는 것을 알게 되었다.이어서 lateinit, lazy, companion object, open, 상속과 인터페이스, 프로퍼티와 getter/setter에 대해서도 배웠다. 특히 Java에서 getter/setter를 직접 작성하던 부분을 Kotlin에서는 val, var, priva..
2026.10.08
-
[Java → Kotlin] 자바 개발자를 위한 코틀린 문법 비교 ⑤ lateinit, lazy, companion object, 상속과 프로퍼티
앞선 글에서는 Kotlin의 컬렉션 함수와 스코프 함수를 중심으로 Java와 Kotlin의 문법 차이를 정리했다.이번 글에서는 Java 개발자가 Kotlin으로 넘어갈 때 자주 접하게 되는 초기화 방식, 클래스 단위 멤버, 상속과 인터페이스, 프로퍼티와 getter/setter를 정리했다.1. lateinit으로 초기화를 나중에 하기Kotlin은 변수를 선언할 때 초기값을 지정하는 것을 권장한다.class User { var name: String = "Unknown"} 하지만 객체 생성 시점에는 값을 알 수 없고, 나중에 값을 할당해야 하는 경우도 있다.이때 사용할 수 있는 것이 lateinit이다. class User { lateinit var name: String fun setNa..
2026.10.08
-
[Java → Kotlin] 자바 개발자를 위한 코틀린 문법 비교 ④ 컬렉션 함수와 스코프 함수
지난 글에서는 Singleton, 예외 처리, when 등 Java와 Kotlin의 주요 문법 차이를 비교했다.이번 글에서는 Kotlin에서 자주 사용하는 컬렉션 함수, 엘비스 연산자, 타입 체크, 스코프 함수를 정리했다.특히 filter, map, let, apply, also, run, with는 Kotlin 코드를 읽고 작성할 때 자주 등장하기 때문에 각각의 용도를 구분해두는 것이 중요하다.1. 컬렉션 필터링Java에서는 Stream API의 filter()를 사용해 컬렉션에서 원하는 조건의 데이터만 추출할 수 있다.Kotlin에서는 컬렉션에 기본적으로 제공되는 filter() 함수를 사용할 수 있다.Javapublic class Main { public static void main(Stri..
2026.10.08
-
12기 백엔드 데브코스 60일차 회고
이 날은 오랜만에 정규 수업을 진행하면서 Java to Kotlin 점진적으로 프레임워크 교체하기에 대해 배웠다.안드로이드 개발을 하면서 Kotlin을 사용해왔기 때문에 문법 자체는 익숙했는데, Java와 비교해서 배우다 보니 Kotlin이 Java의 불편한 부분을 더 간결하게 작성할 수 있도록 해준다는 점을 다시 느꼈다. 또한 실제 프로젝트에서 Java 코드를 한 번에 바꾸는 것이 아니라 점진적으로 Kotlin으로 전환하는 방법도 배울 수 있었다.평소 익숙하게 사용하던 Kotlin이 Java보다 코드를 훨씬 간결하게 작성할 수 있다는 것을 다시 확인하면서, 앞으로 Java로 개발하면서 Kotlin을 활용하게 된다면 확실히 편리할 것 같다는 생각이 들었다.앞으로도 새로운 기술을 배울 때 단순히 사용법만 ..
2026.10.08
-
[Java → Kotlin] 자바 개발자를 위한 코틀린 문법 비교 ③ Kotlin의 주요 문법
지난 글에서는 Java와 Kotlin의 null 처리, 람다 표현식, data class, 확장 함수, 기본 매개변수 등을 비교했다.이번 글에서는 Java에서 자주 사용하는 Singleton, 문자열 템플릿, 예외 처리, switch문을 Kotlin에서는 어떻게 표현하는지 정리했다.특히 Kotlin의 object, try 표현식, when은 Java와 비교했을 때 차이가 큰 문법이다.1. 객체 SingletonSingleton은 프로그램 전체에서 하나의 인스턴스만 생성되도록 하는 디자인 패턴이다.Java에서는 일반적으로 private 생성자와 static 필드를 이용해 Singleton을 구현한다.Kotlin에서는 object 키워드를 사용하면 Singleton 객체를 간단하게 만들 수 있다.Javapu..
2026.10.07
-
[Java → Kotlin] 자바 개발자를 위한 코틀린 문법 비교 ② Kotlin의 주요 기능
지난 글에서는 Java와 Kotlin의 변수 선언, 조건문, 반복문, 함수, 클래스, List, Map 등 기본적인 문법 차이를 비교했다.이번 글에서는 Kotlin을 사용할 때 자주 접하게 되는 null 처리, 람다 표현식, data class, 확장 함수, 기본 매개변수를 Java와 비교해 정리했다.1. null 처리Java에서는 객체가 null인지 확인한 후 접근해야 한다.Kotlin에서는 타입 뒤에 ?를 붙여 null을 가질 수 있는 타입(nullable type)임을 명시한다.또한 ?. 연산자를 사용하면 객체가 null일 때 안전하게 접근할 수 있다.Javapublic class Main { public static void main(String[] args) { String n..
2026.10.07