junhkang의 개발 블로그
close
프로필 배경
프로필 로고

junhkang의 개발 블로그

  • DEV (103)
    • Postgresql (47)
    • Linux (4)
    • AWS (4)
    • 운영체제(OS) (1)
    • Spring (19)
    • 네트워크 (3)
    • Java (4)
    • WEB (2)
    • Elastic Search (1)
    • 이펙티브 자바 (10)
    • 디자인패턴 (5)
    • GitHub (1)
    • LLM (2)
  • 홈
  • 태그
  • 방명록
[Spring] 스프링부트와 HikariCP를 활용한 Connection Pool 설정 및 최적화

[Spring] 스프링부트와 HikariCP를 활용한 Connection Pool 설정 및 최적화

몇 년 전 운영 프로젝트 설정 시 자세하게 봤던 내용이지만, 트래픽이 대폭 증가하고, DBMS에 연결된 프로젝트와 모듈이 늘어남에 따라 재설정을 위해 개념을 다시 정리하게 되었다.1. 기본적인 데이터베이스 연결과정DB Connection 열기- 데이터베이스 드라이버를 사용하여 데이터베이스 서버와의 연결TCP 소켓 열기 - 데이터베이스 전송을 위해 TCP 소켓을 생성하고 데이터베이스 서버와 통신채널을 설정데이터 통신 수행 - 생성된 소켓을 통해 SQL 쿼리를 전송하고 데이터를 Read / WriteDB연결 닫기 - 데이터 통신이 완료되면 데이터베이스와의 연결을 종료TCP 소켓 닫기 - 사용한 TCP 소켓을 닫아 통신 채널 해제웹 어플리케이션은 클라이언트의 HTTP 요청이 들어오면 스레드를 생성한다. 각 요..

  • format_list_bulleted Spring
  • · 2025. 1. 30.
  • textsms
[Spring] 스프링부트 3, 스프링 시큐리티 6, 로그인 세션 유지, 로그인 풀림

[Spring] 스프링부트 3, 스프링 시큐리티 6, 로그인 세션 유지, 로그인 풀림

1. 문제 상황 스프링 부트 3, 스프링 시큐리티 6 업데이트가 되며 기존에 사용 중인 WebSecurityConfigurerAdapter를 더 이상 지원하지 않기에 기존의 WebSecurityConfigurerAdapter를 상속받아 기능을 구현하는 대신 컴포넌트화 시켜서 구현해야한다. SecurityFilterChain으로 스프링 시큐리티를 구현 중 (antMacher -> requestMacher, dispatcherTypeMatcher설정 등 기본 Spring Security6.0 마이그레이션 가이드는 적용 완료 https://docs.spring.io/spring-security/reference/5.8/migration/index.html) Preparing for 6.0 :: Spring S..

  • format_list_bulleted Spring
  • · 2024. 2. 2.
  • textsms

[Spring] 스프링부트 3 jstl 적용(maven), (절대 URI인 [http://java.sun.com/jsp/jstl/core]을(를), web.xml 또는 이 애플리케이션과 함께 배치된 JAR 파일 내에서 찾을 수 없습니다.)

1. 문제 상황 스프링부트 3 버전 업데이트 중 jstl URI / 라이브러리를 찾지 못하는 현상 발생 http://java.sun.com/jsp/jstl/core]을(를), web.xml 또는 이 애플리케이션과 함께 배치된 JAR 파일 내에서 찾을 수 없습니다. 2. 해결 타 라이브러리와 동일하게 javax -> jakarta 기반 jstl maven dependency를 추가해주면 된다. jakarta.servlet.jsp.jstl jakarta.servlet.jsp.jstl-api 3.0.0 jakarta.servlet jakarta.servlet-api 6.0.0 jakarta.servlet.jsp jakarta.servlet.jsp-api 3.1.0 provided jakarta.el jakar..

  • format_list_bulleted Spring
  • · 2024. 1. 31.
  • textsms

[Spring] Java 21 롬복(lombok) 버전 설정 (java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid')

1. 문제 상황 JDK21 버전 업 중 java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid' 라는 에러와 함께 빌드 실패 2. 해결 JDK21과 호환되지 않는 롬복(lombok) 버전 문제로 확인, (JDK21과 호환되는 최소 롬복(lombok) 버전은 1.18.30이다.) org.projectlombok lombok 1.18.30 provided 기존 사용 중인 구버전 롬복(lombok)을 작성일 기준 최신버전이자 JDK21 호환 최소 버전인 1.18.30으로 변경해 주면 정상적으로 빌드가 된..

  • format_list_bulleted Spring
  • · 2024. 1. 31.
  • textsms
[Spring] 순환참조란? The dependencies of some of the beans in the application context form a cycle

[Spring] 순환참조란? The dependencies of some of the beans in the application context form a cycle

1. 순환참조란? 순환참조는 맞물린 의존성 주입 (DI) 상태에서 어떤 빈을 먼저 생성할지 결정하지 못해서 생기에 발생한다. BeanA에서 BeanB를 참조(BeanA->BeanB) 일 경우 스프링은 BeanB를 먼저 생성 후 BeanA를 생성하기에, BeanB에서 다시 BeanA를 참조할 경우 (BeanA->BeanB->BeanA) 순환 참조가 발생하게된다. 2. 의존성 주입 의존성 주입의 3가지 상황 (생성자 주입방식, 필드 주입방식, Setter주입)에서 순환참조가 발생할수 있다. 다음 포스트 각각의 상세 내용을 확인할 수 있고, 이번 포스트에서는 각각의 경우에 순환참조가 발생하면 어떤 차이점이 있는지 확인해 보자. 2023.11.06 - [Spring] - [Spring] IoC(제어의 역전) &..

  • format_list_bulleted Spring
  • · 2023. 11. 17.
  • textsms
[Spring] 단위 테스트, JUnit의 개념 및 단위 테스트 코드 작성 방법

[Spring] 단위 테스트, JUnit의 개념 및 단위 테스트 코드 작성 방법

1. 단위 테스트 하나의 모듈을 기준으로 독립적으로 진행되는 가장 작은 단위의 테스트이다. 통합 테스트의 경우 시스템을 구성하는 컴포넌트들이 커질수록 테스트 시간이 길어지지만, 단위 테스트의 경우 해당 부분만 독립적으로 테스트하기에 코드의 변경이 있어도 빠르게 문제 여부를 확인할 수 있다. CleanCode 책에 의하면 깨끗한 테스트 코드는 다음 5가지 규칙을 따라야 한다. Fast - 빠르게 동작하여 자주 돌릴 수 있어야 한다. Independent - 테스트는 독립적이며 서로 의존해서는 안된다. Repeatable - 어느 환경에서도 반복이 가능해야 한다. Self-validating - 테스트는 성공 또는 실패로 결과를 내어 자체 검증되어야 한다. Timely - 테스트는 적시에, 테스트하려는 실제..

  • format_list_bulleted Spring
  • · 2023. 11. 14.
  • textsms
  • navigate_before
  • 1
  • 2
  • navigate_next
전체 방문자
오늘
어제
전체
전체 카테고리
  • DEV (103)
    • Postgresql (47)
    • Linux (4)
    • AWS (4)
    • 운영체제(OS) (1)
    • Spring (19)
    • 네트워크 (3)
    • Java (4)
    • WEB (2)
    • Elastic Search (1)
    • 이펙티브 자바 (10)
    • 디자인패턴 (5)
    • GitHub (1)
    • LLM (2)
최근 글
인기 글
태그
  • #이펙티브자바
  • #오블완
  • #test
  • #spring
  • #디자인패턴
  • #Effective Java
  • #티스토리챌린지
  • #PostgreSQL
  • #AWS
  • #Index
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바