서버 리소스 최적화 가이드: JVM, Tomcat, DB 커넥션 풀 설정
·
Jungle
애플리케이션 코드 최적화도 중요하지만, 그 전에 코드가 실행되는 환경부터 제대로 설정해야 한다. 아무리 좋은 코드를 작성해도 JVM, 웹 서버, 데이터베이스 커넥션 풀이 병목이 되면 성능이 나오지 않기 때문이다.이번 포스트에서는 고성능 웹 애플리케이션을 위한 서버 리소스 최적화 설정 방법을 정리해보려고 한다.📚 핵심 용어 정리시작하기 전에 이 글에서 자주 등장하는 핵심 용어들을 정리해보자.JVM 관련 용어JVM (Java Virtual Machine)자바 바이트코드를 실행하는 가상 머신메모리 관리, 가비지 컬렉션, 스레드 관리 등을 담당실생활 비유: 자바 프로그램이 돌아가는 "작업장"힙 메모리 (Heap Memory)객체들이 저장되는 메모리 영역가비지 컬렉션의 대상이 되는 공간실생활 비유: 물건들을 보..
트러블슈팅) spring CI/CD 빌드 실패
·
Jungle
문제 상황오류: PlaceholderResolutionException - Spring Boot 테스트 실패• 증상: CI/CD 빌드에서 CoreApplicationTests > contextLoads() 테스트가 지속적으로 실패• 오류 메시지: java.lang.IllegalStateException → UnsatisfiedDependencyException → PlaceholderResolutionException문제 진단 과정1단계: 초기 가설 (❌ 틀림)가설: CI 환경에서 환경변수가 제대로 설정되지 않음• GitHub Secrets 확인 → JWT가 비어있음 발견• JWT 값 추가했지만 여전히 실패2단계: 프로파일 설정 문제 의심 (❌ 틀림)가설: CI에서 local 프로파일을 참조하는 문제• ..
Spring Boot 게시판 개발, 핵심 어노테이션 정리
·
Spring
Spring Boot 기반으로 웹 애플리케이션을 개발할 때 반복적으로 사용되는 어노테이션들이 있으며, 각 계층(Layer)에서의 역할과 용도를 명확히 이해하는 것은 중요하다.게시판 프로젝트를 기준으로, 각 계층에서 필수적으로 사용되는 어노테이션들을 그 역할과 함께 기술한다.1. 스프링 부트 시작과 설정을 위한 어노테이션애플리케이션의 구동과 전반적인 설정을 담당하는 기본 어노테이션이다.@SpringBootApplication: 스프링 부트 프로젝트의 시작과 핵심 설정을 담당하는 어노테이션이다. 이 어노테이션은 자동 설정(@EnableAutoConfiguration), 컴포넌트 스캔(@ComponentScan) 등의 기능을 포함하고 있어, 개발자가 복잡한 초기 설정 없이 애플리케이션 개발에 집중할 수 있도록..
View 환경설정: Thymeleaf 알아보기
·
Spring
View 환경설정: Thymeleaf 알아보기백엔드 API 서버는 어느 정도 준비가 되었으니, 이제 사용자가 마주할 화면, 즉 뷰(View)를 설정할 차례다. Spring Boot와 함께 사용할 뷰 기술로는 여러 가지가 있지만, 이번에 학습하고 정리해 볼 기술은 타임리프(Thymeleaf)이다.Thymeleaf란?Thymeleaf는 서버 사이드 자바 템플릿 엔진이다. 서버에서 동적인 데이터를 HTML에 결합하여 완성된 웹 페이지를 만들어주는 역할을 한다.가장 인상 깊었던 장점은 내추럴 템플릿(Natural Template)이라는 것인데, 이게 뭐냐면 Thymeleaf 문법(th:*)이 포함된 HTML 파일이라도 그 자체로 HTML 문법을 완벽하게 지킨다는 점이다. 덕분에 웹 디자이너가 백엔드 서버 없이도..
프로젝트 환경설정
·
Spring
프로젝트 생성스프링 부트 스타터 (https://start.spring.io)쉽게 프로젝트를 만들 수 있음.project✅ Gradle - GroovyGradle - KotlinMavenMetadata // 의미하는 바 확인하기Group: jpabookArtifact: jpashopDependencies(의존관계)검색해서 원하는 의존성을 추가해준다.Spring Web (구 Spring Web Starter): RESTful API, Tomcat 컨테이너로 빌드Thymeleaf: 모던 서버사이드 자바 템플릿Spring Data JPA: 유틸성 라이브러리H2 Database: 개발 또는 테스트에 특화된 데이터베이스. MySQL는 환경설정시 까다로운데, h2는 간단하게 내부에서 구동가능Lombok: 반복코드를..