-
[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
-
[Java → Kotlin] 자바 개발자를 위한 코틀린 문법 비교 ① 기본 문법
Java를 사용하다 Kotlin으로 넘어가면 같은 JVM 기반 언어이기 때문에 익숙한 부분도 많지만, 변수 선언부터 반복문, 클래스, 컬렉션까지 작성 방식에 차이가 있다.이번 글에서는 Java 코드를 Kotlin으로 옮기면서 자주 사용하게 되는 기본 문법의 차이를 정리했다.1. 변수 선언과 기본 출력Kotlin에서는 변수의 변경 가능 여부에 따라 val과 var를 사용한다. val : 값을 다시 대입할 수 없는 변수var : 값을 변경할 수 있는 변수출력은 Java의 System.out.println() 대신 Kotlin의 println()을 사용한다.Javapublic class Main { public static void main(String[] args) { final int n..
2026.10.07
-
12기 백엔드 데브코스 59일차 회고
오전에는 Java에서 Kotlin으로 점진적으로 프레임워크를 교체하는 방법에 대한 특강을 들었다.기존 프로젝트를 한 번에 Kotlin으로 전환하는 것이 아니라, 기존 Java 코드와 Kotlin 코드를 함께 유지하면서 점진적으로 마이그레이션하는 방법에 대해 배웠다. 이전에 Kotlin을 사용해본 경험이 있어서 Java와 Kotlin의 차이를 비교하면서 들을 수 있었다.이번 특강을 통해 단순히 Kotlin 문법을 배우는 것뿐만 아니라, 실제 프로젝트에서 기존 코드를 유지하면서 새로운 기술을 도입하는 과정에 대해서도 생각해볼 수 있었다. 오후에는 2시간 동안 알고리즘 시험을 봤다.총 4문제 중 2문제는 비교적 쉽게 풀 수 있었지만, 나머지 2문제는 난이도가 높게 느껴졌다. 특히 한 문제는 문제를 이해하고도 ..
2026.10.06
-
[프로그래머스 Lv.1] 지폐 접기(Java)
문제https://school.programmers.co.kr/learn/courses/30/lessons/340199 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr풀이지폐를 접을 때마다 현재 가로와 세로 중 더 긴 변을 절반으로 접는 방식이다.먼저 지갑의 가로와 세로를 w, h에 저장한다. 이후 지폐의 방향을 바꿔 넣을 수도 있으므로 다음 두 경우 중 하나라도 만족하면 지갑에 들어갈 수 있는 상태이다. if((w>=bill[0] && h>=bill[1]) || (w>=bill[1] && h>=bill[0])){ break;} 지갑에 들어가지 않는다면 bill[0]과 bill[1] 중 더 긴 변을 절반으로..
2026.10.06
-
2차 프로젝트: GameLog - 발표 대본 작성과 시연 리허설
프로젝트 발표를 하루 앞두고 30일에는 대부분의 시간을 발표 준비와 시연 리허설에 사용했다.새로운 기능을 구현하기보다는 발표자가 작성해둔 대본을 팀원들과 함께 수정하고, 실제 서비스에서 어떤 순서로 기능을 보여줄지 시연 시나리오를 구성했다.이후 실제 발표처럼 여러 번 리허설하면서 설명이 길거나 흐름이 끊기는 부분을 찾아 수정했다.1. 발표 대본 수정먼저 발표자가 작성해둔 기존 대본을 팀원들과 함께 검토했다.단순히 기능을 설명하는 것보다 발표자가 서비스를 직접 보여주면서 자연스럽게 설명할 수 있도록 화면 전환과 대본의 흐름을 맞추는 것에 집중했다.특히 한 기능을 설명한 뒤 다음 기능으로 넘어갈 때 연결이 어색하지 않은지, 같은 내용을 반복해서 설명하고 있지는 않은지 등을 확인했다.또한 실제 발표 시간에 맞..
2026.09.30