-
백엔드 데브코스 12기 68일차
이 날은 GameLog 3차 프로젝트의 기획서를 작성하고, Java 백엔드를 Kotlin으로 전환했다. 먼저 AI를 활용해 운영 코드를 한 번에 전환한 뒤, 각자 맡은 기능의 코드를 직접 살펴보며 기존 동작이 유지되는지 검증했다.생각보다 AI가 코드를 잘 바꿔줘서 놀랐다. 프로젝트 전체를 전환하는 작업을 빠르게 진행할 수 있었고, 덕분에 변환된 코드의 구조와 동작을 확인하는 데 집중할 수 있었다.다만 그대로 사용하기에는 정리할 부분이 남아 있었다. 담당한 usergame 코드를 확인하면서 불필요한 ?, Java 컬렉션 사용, 수정이 필요하지 않은데도 MutableList로 선언된 부분을 직접 바꿨다. 값이 실제로 없을 수 있는지, 컬렉션을 변경할 필요가 있는지를 기준으로 타입을 정리했다.변경 후에는 관련..
2026.10.22
-
백엔드 데브코스 12기 67일차
이 날은 터미널에서 Bash 명령어를 직접 사용하며 파일과 디렉토리를 관리하는 방법을 실습했다. pwd, ls, cd로 현재 위치를 확인하고 이동했으며, 파일 생성·복사·이동·삭제 명령어도 익혔다.또한 find와 grep으로 필요한 파일과 내용을 검색하고, ps와 kill로 프로세스를 확인하고 종료하는 방법을 배웠다. 명령어를 직접 실행하고 결과를 확인하니 각각의 역할을 이해하기 쉬웠다.앞으로도 터미널을 꾸준히 활용하면서 익숙해지고, 삭제나 덮어쓰기 작업 전에는 경로와 대상을 확인하는 습관을 들여야겠다.
2026.10.21
-
백엔드 데브코스 12기 66일차
이 날은 기존 Java 프로젝트의 회원, 게시글, 댓글 Controller와 관리자용 Controller를 Kotlin으로 전환했다. 앞서 공통 처리와 서비스 영역을 바꿨다면, 이번에는 사용자의 요청을 받고 응답을 반환하는 부분까지 전환 범위를 넓혔다.회원가입과 로그인, 게시글·댓글의 조회 및 수정 기능을 옮기면서 Controller가 서비스와 연결되는 흐름을 다시 살펴봤다. 필요한 객체는 주 생성자로 전달받고, 요청과 응답 데이터는 data class로 표현했다. 기존 기능을 유지하면서 Kotlin 문법으로 구조를 정리하는 과정이었다.게시글 요청 데이터에서는 @field:NotBlank, @field:Size처럼 검증 어노테이션의 적용 대상을 명시했다. Java에서 사용하던 어노테이션도 Kotlin으로..
2026.10.19
-
백엔드 데브코스 12기 65일차
이 날은 전날에 이어 Java 기반 Spring Boot 프로젝트를 Kotlin으로 전환했다. DTO와 요청 처리 클래스에서 시작했던 작업을 보안 설정, 인증 필터, 예외 처리 등으로 확장하면서 프로젝트 전반에서 공통으로 사용하는 코드의 역할을 살펴봤다.먼저 Spring Security 설정과 사용자 인증 정보를 담는 클래스를 Kotlin으로 바꿨다. 보안 설정에서는 Kotlin DSL로 URL별 접근 권한을 표현했고, 인증 필터에서는 헤더와 쿠키에서 인증 정보를 가져와 사용자를 확인하는 흐름을 살펴봤다. 코드를 옮기는 과정에서 API 키와 액세스 토큰이 어떻게 사용되고, 인증된 사용자 정보가 어디에 저장되는지 정리할 수 있었다.전환 과정에서 발견한 문제를 수정하며 Kotlin의 프로퍼티와 null 처리..
2026.10.16
-
백엔드 데브코스 12기 64일차
이 날은 기존 Java 기반 Spring Boot 프로젝트를 Kotlin으로 점진적으로 전환하는 방법을 배웠다.먼저 Kotlin을 사용할 수 있도록 Gradle에 플러그인과 의존성을 추가하고, Spring과 JPA를 위한 설정을 구성했다. 기존 프로젝트에 Kotlin을 도입할 때는 코드의 문법을 바꾸는 것뿐 아니라, 프레임워크와 함께 동작할 수 있는 환경을 준비하는 과정도 필요하다.이후 애플리케이션의 시작점과 HomeController를 Kotlin으로 바꾸고, 회원·게시글·댓글 DTO와 공통 응답 객체, 요청 처리 클래스도 차례로 전환했다. DTO에서는 data class와 주 생성자를 활용해 필요한 데이터를 한눈에 볼 수 있도록 표현했다. Java 코드와 비교하면서 Kotlin의 프로퍼티와 생성자가 ..
2026.10.14
-
백엔드 데브코스 12기 63일차
10월 12일부터 Kotlin으로 콘솔 명언 앱을 만들고 있다. 명언과 작가를 입력받는 프로그램에서 시작해 등록, 목록 조회, 삭제, 수정 기능을 구현했고, 13일에는 파일 저장과 검색 기능을 추가하고 테스트를 보강했다. 기능이 늘어나면서 역할을 나누기12일에는 Main에서 시작한 코드를 App으로 옮기고, 명령어와 파라미터를 해석하는 Rq를 추가했다. 이후 Controller, Service, Repository로 역할을 나누면서 사용자 입력 처리와 데이터 관리를 분리했다. 13일에는 Repository를 인터페이스로 바꾸고 메모리 저장소와 파일 저장소를 구현했다. 서비스가 사용하는 공통 기능을 유지하면서 저장 방식을 교체하는 구조를 통해, 인터페이스가 실제로 어떤 상황에서 필요한지 이해할 수 있었다...
2026.10.13
-
백엔드 데브코스 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