다른 사람들이 관심있어한 포스트
-
JVM 밑바닥까지 파헤치기
[JVM 밑바닥까지 파헤치기] JIT vs AOT 컴파일러, 그리고 JVM과 GraalVM에 대하여
기존에 Spring Initializer를 쓰며 GraalVM이란 용어에 대해 본 적이 있었고,그때는 단순히 이게 뭘까? 라는 생각만 가지고 있었습니다. 그러다가 최근 'JVM 밑바닥부터 파헤치기'라는 책을 읽으며 JIT와 AOT 그리고 JVM과 GraalVM에 대략적으로 파악하게 되었습니다.이 글에서는 이 개념들이 무엇이고, 어떤 차이가 있는지, 그리고 어떻게 선택하면 좋을지 정리해보겠습니다. Java 코드는 어떻게 실행될까?Java의 실행 과정을 먼저 이해해야 합니다..java 파일 → (javac 컴파일) → .class 바이트코드 → (JVM) → 실행 Java는 "Write Once, Run Anywhere"를 위해 바이트코드라는 중간 형태로 컴파일됩니다. 이 바이트코드는 JVM 위에서 실행되는..
-
Techfork
[25/01/02] 오늘의 개발 일지 - RSS 크롤링 성능 및 안정성 개선
오늘은 RSS 크롤링을 각 잡고 개선했습니다. 1. RSS 크롤링을 실행하는 WebClient 설정 개선먼저 과거에 우아한 형제들 테크블로그에서 SSL 인증서 문제때문에 크롤링이 되지 않는 문제가 있어모든 SSL 인증서를 허용하도록 했었습니다.하지만 이 경우 MITM(Man In The Middle) 공격을 받을 수 있다는 문제가 있었습니다. 그때 당시에는 게시글을 가져오는 게 중요해서 그렇게 조치했지만출시를 목적으로 개발 중이기에 안전성을 고려하지 않을 수 없었습니다. 오늘 한 번 체크를 해보니 인증서 문제가 발생하지 않았고,그에 따라 모든 SSL 인증서 허용 설정을 제거했습니다. 또한 기존에는 HttpClient에 응답 타임아웃만 존재했는데,해당 테크 블로그가 일시적 장애로 연결에 장애가 있을 수 ..
-
Spring Boot
[Spring Boot] 커스텀 프로퍼티 완벽 가이드
개요Spring Boot 개발을 하다 보면 하드코딩된 값들로 인해 고민을 하게 된다."이 설정값을 바꾸려면 또 코드를 수정하고 배포해야 하나?" 라는 생각이 들 때가 종종 생긴다. 이런 문제를 해결해주는 것이 바로 커스텀 프로퍼티이다.이 글에서 커스텀 프로퍼티가 무엇인지, 어떻게 사용하는지, 그리고 언제 사용해야 하는지에 대해 자세히 알아보자. 1. 커스텀 프로퍼티란?커스텀 프로퍼티는 애플리케이션에서 필요한 설정값들을 application.properties 또는 application.yml 파일에 정의하고, 이를 Java 코드에서 사용할 수 있도록 하는 Spring Boot의 기능이다. 간단한 예시로 시작해보자:# application.propertiesspring.application.name=d..
-
회고록
[프로젝트] Cockple - 배드민턴 모임 플랫폼
1. 개요프로젝트 동아리 UMC에서 2025.03 ~ 2025.08까지 스프링부트 챌린저로 활동을 진행했다. UMC는 방학기간동안 사람들을 모아 프로젝트를 진행하는데, '콕플'이라는 프로젝트에서 서버 개발자로 참여했다. 콕플은 지역, 급수, 일정 등 조건에 맞는 배드민턴 모임을 쉽고 간편하게 찾고 참여 및 모임 운영할 수 있는 전용 플랫폼이고, 나는 여기서 운동 API 및 채팅 API를 도맡아서 개발했다. 2. 일정2025.06.24 ~ 2025.08.22, 총 2달간 진행된 프로젝트이다. 개발 기간은 다음과 같지만, 기획 및 디자인은 1달 전부터 진행되었다. 3. 팀 구성- 기획 1명- 디자인 1명- 프론트엔드 4명- 백엔드 4명 4. 기술 스택Language & FrameworkJava 1..
-
Spring Boot
[Spring Boot] 스프링 부트 애플리케이션 종료
개요 실전 스프링 부트 책을 읽던 중 shutdown hook 개념과 안전 종료 개념에 대해 배울 수 있었다. 관련 개념에 대해 알아보고,스프링 부트의 종료 로직을 좀 더 자세히 알아보자! 관련 개념1. Shutdown Hook- 개념: JVM이 종료되기 전에 실행되는 스레드- 이용: 스프링 부트에서는 자동으로 shutdown hook을 등록하여 애플리케이션 컨텍스트를 안전하게 종료한다. 2. 안전 종료(Graceful Shutdown)- 개념: 진행 중인 요청을 완료한 후 서버를 종료하는 방식- 지원 버전: 스프링 부트 2.3부터 지원.- 설정 방법# application.ymlserver: shutdown: gracefulspring: lifecycle: timeout-per-shutdo..