전체 글 5

남는 노트북으로 홈 서버 구축하기 (LG 그램, KT)

0. 계기집을 정리하다가 전에 쓰던 노트북(LG 그램)을 발견해 서버 비용도 아낄 겸 개발용 서버로 이용하기 위해 홈서버를 구축해보기로 했다. 아래와 같은 순서로 홈 서버 구축을 진행할 것이다.1. Ubuntu 설치2. 네트워크 설정3. SSH 설정 1. Ubuntu 설치아예 사용하지 않는 노트북이라 기존 Window OS를 삭제하고 Ubuntu를 설치할 것이다. Ubuntu 서버를 아래의 링크에서 다운받는다.https://ubuntu.com/download/server Get Ubuntu Server | Download | UbuntuGet Ubuntu Server one of three ways; by using Multipass on your desktop, using MAAS to provisio..

Etc. 2025.12.20

우아한테크코스 8기 오픈미션 회고

우아한테크코스 8기 오픈미션은 프리코스 경험 기반으로 관련된 분야의 미션을 설계하고 구현하는 것이었다. 주제 선정매주 나오던 미션의 형태가 아니라 직접 목표를 정하고 구현해야했기 때문에어떠한 주제를 잡으면 좋을 지 고민하다가 평소 관심을 가지고 있었던 Google이 만든 Go에 대해 공부해보고 싶다는 생각이 들었고 이를 이용한 프로젝트를 이번 도전으로 정했다. 어떤 주제를 선정하면 좋을 지 고민하던 중에,평소 다양한 기업의 테크 블로그를 둘러보며 해당 기업이 어떠한 기술에 관심이 있으며 현재 기술 트렌드가 어떠한 파악하곤 하는데 기업마다 사용하는 블로그 플랫폼이 달라 매번 개별 블로그에 접속하여 새로운 글이 올라왔는지 확인해야하는 한다는 점이 약간은 비효율적이라고 느꼈던 것이 생각났다. 내가 자주 보는 ..

Etc. 2025.11.23

Spring boot에서 enum의 유연한 직렬화 및 역직렬화

Spring boot에서 enum을 유연하게 직렬화 및 역직렬화를 하려면 어떻게 해야할까?enum에는 FOURTH_GRADE, FIFTH_GRADE, SIXTH_GRADE로 정의했지만, 이 상수로 프론트엔드와 데이터를 주고 받는다면 프론트엔드에서 4학년, 5학년, 6학년으로 재변환해야한다는 문제가 있었다.이를 해결하기 위해 직렬화시 enum값을 4학년, 5학년, 6학년으로 변환하고, 역직렬화시에도 마찬가지로 이 값을 받아 OURTH_GRADE, FIFTH_GRADE, SIXTH_GRADE 상수로 변환되도록 구현하고 싶었다.직렬화: 객체들의 데이터를 연속적인 데이터로 변형하여 전송가능한 형태로 만드는 것(ex. 객체 → JSON)역직렬화: 직렬화된 데이터를 다시 객체 형태로 만드는 것(ex. JSON → ..

Spring boot 2025.11.14

JPA Entity Column의 기본값을 설정하는 방법

새로운 객체를 저장할 때 @ColumnDefault를 사용하면 필드값을 초기화하지 않을 경우 null 값이 필드에 들어가 설정한 기본값으로 DB에 저장될 거라고 생각했는데 설정한 기본값으로 저장되지 않고, null으로 저장되는 문제가 발생하였다. 문제를 해결하기 위해 @ColumDefault에 대해 조금 더 찾아보았다.@ColumnDefault@ColumDefault는 ddl-auto 옵션으로 DDL을 생성할 때 자동으로 default 제약사항을 넣어주는 어노테이션이다.@Entity@Getter@NoArgsConstructor(access = AccessLevel.PROTECTED)public class Member { @Id @GeneratedValue(strategy = Generation..

Spring boot 2025.11.14

코딩테스트를 위한 Java 문법 정리

업데이트 중 ... Wrapper ClassIntegermethod기능methoddescription형변환(숫자문자)Integer.parseInt(s)Integer.toString(n) String methodfeaturemethoddescription길이s.length() 인덱스로 문자 조회s.charAt(index) 문자로 인덱스 조회s.indexOf(s2)s.lastIndexOf(s2) 분할s.substring(stratIndex)s.substring(startIndex, endIndex) 치환s.replace(target , replacement)s.replaceAll(regex, replacement)s.replaceFirst(regex, replacement) 값 일치 여부s.equals(s2..

Algorithm 2025.10.22