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] 테스트 4 - 얼마나 깊게 테스트 코드를 작성해야 하는가?

[Spring] 테스트 4 - 얼마나 깊게 테스트 코드를 작성해야 하는가?

4. HOW DEEP - 얼마나 깊게 테스트 코드를 작성해야 하는가?4.1 테스트 깊이를 결정하는 기준테스트 깊이를 설정할 때는 다음과 같은 기준을 고려해야 합니다:테스트 피라미드(Test Pyramid): 테스트 피라미드는 테스트 종류에 따른 계층 구조를 보여줍니다. 일반적으로 단위 테스트가 가장 많고, 그다음으로 통합 테스트, 시스템 또는 E2E(End-to-End) 테스트가 위치합니다.단위 테스트(Unit Tests): 가장 많은 비중을 차지하며, 작은 코드 단위를 독립적으로 테스트합니다.통합 테스트(Integration Tests): 여러 모듈이 상호작용하는지 테스트합니다.E2E 테스트(End-to-End Tests): 실제 사용자 관점에서 전체 시스템이 잘 작동하는지 확인합니다.위험 기반 테스트..

  • format_list_bulleted Spring
  • · 2024. 9. 22.
  • textsms
[Spring] 테스트 3 - 언제 테스트 코드를 적용해야 하는가?

[Spring] 테스트 3 - 언제 테스트 코드를 적용해야 하는가?

3. WHEN - 언제 테스트 코드를 적용해야 하는가?3.1 TDD와 BDD의 개념 및 적용 시점TDD (Test-Driven Development): TDD는 테스트를 먼저 작성하고, 그 테스트를 통과할 수 있는 최소한의 코드를 작성하며 개발을 진행하는 방법론입니다. TDD는 테스트를 통해 명확한 요구사항을 확인하고 코드 품질을 보장하는 방법으로 활용됩니다.레드-그린-리팩터 사이클: TDD의 기본 개발 사이클은 레드 단계 (실패하는 테스트 작성) → 그린 단계 (테스트를 통과하기 위한 코드 작성) → 리팩터 단계 (코드 정리 및 최적화)로 이루어집니다.적용 시점: 새로운 기능을 개발하거나 기존 코드를 리팩터링 할 때, TDD를 통해 코드의 안정성과 유지보수성을 높일 수 있습니다.이미지 출처: Apply..

  • format_list_bulleted Spring
  • · 2024. 9. 22.
  • textsms
[Spring] 테스트 2 - 테스트 코드를 어떻게 작성해야 하는가?

[Spring] 테스트 2 - 테스트 코드를 어떻게 작성해야 하는가?

2. HOW - 테스트 코드를 어떻게 작성해야 하는가?2.1 테스트 케이스 선택 방법첫 번째 테스트의 중요성: 구현하기 가장 쉬운 테스트부터 시작하는 것이 좋습니다. 예외적인 상황이나 가장 빠르게 개발할 수 있는 테스트 케이스를 먼저 작성하고, 점차 확장해 나갑니다.점진적 확장: 쉬운 테스트부터 시작해 점차 복잡한 테스트로 나아가면서 시스템의 안정성을 검증합니다.2.2 TDD (Test-Driven Development) 방법론TDD는 테스트 주도 개발 방식으로, 테스트 코드를 먼저 작성하고 이를 기반으로 프로덕션 코드를 작성하는 방식입니다. TDD는 다음과 같은 세 단계를 따릅니다:레드 단계: 실패하는 테스트를 작성합니다. 이때, 아직 프로덕션 코드는 작성되지 않았기 때문에 테스트는 실패합니다.그린 단..

  • format_list_bulleted Spring
  • · 2024. 9. 22.
  • textsms
[Spring] 테스트 1 - 왜 테스트 코드를 작성해야 하는가?

[Spring] 테스트 1 - 왜 테스트 코드를 작성해야 하는가?

1. WHY - 왜 테스트를 작성해야 하는가?1.1 테스트 코드의 중요성테스트 코드는 소프트웨어 개발에서 매우 중요한 역할을 합니다. 기능을 수정하거나 새로운 기능을 추가할 때 코드가 안정적으로 작동하는지 확인할 수 있는 수단이 바로 테스트 코드입니다. 이를 통해 예상하지 못한 버그를 방지하고, 코드 품질을 높일 수 있습니다.1.2 테스트 코드 작성의 장점1.2.1 안정적인 개발 환경 구축테스트 코드는 코드의 변경이 다른 기능에 미치는 영향을 최소화하는 데 도움을 줍니다. 개발자는 자신 있게 코드를 수정하거나 리팩터링 할 수 있으며, 기존 기능이 예상대로 작동하는지 검증할 수 있습니다.1.2.2 버그 감소 및 코드 품질 향상테스트 코드를 통해 코드 내 버그를 사전에 발견하고 해결할 수 있습니다. 이를 통..

  • format_list_bulleted Spring
  • · 2024. 9. 22.
  • textsms
[Spring] Caused by: java.lang.IllegalArgumentException: 이름이 {fragment}인, 둘 이상의 fragment들이 발견되었습니다.

[Spring] Caused by: java.lang.IllegalArgumentException: 이름이 {fragment}인, 둘 이상의 fragment들이 발견되었습니다.

Caused by: java.lang.IllegalArgumentException: 이름이 {fragment}인, 둘 이상의 fragment들이 발견되었습니다. 이는 상대적 순서배열에서 불허됩니다. 상세 정보는 서블릿 스펙 8.2.2 2c 장을 참조하십시오. 절대적 순서배열을 사용하는 것을 고려해 보십시오. Spring MVC가 포함되어 있는 상태에서 중복된 디펜던시를 추가하면서 발생한 에러이다. 라이브러리 버전업, 혹은 신규 라이브러리 추가 시 주로 발생하는 현상으로, 메이븐 클린을 통해 메이븐 리포지토리를 정리하면 된다. 메이븐 클린(프로젝트 우클릭 > maven > maven clean) 그래도 안된다면 실제로 중복된 라이브러리를 정렬 혹은 정리가 필요하다.Spring framework의 경우 we..

  • format_list_bulleted Spring
  • · 2024. 8. 20.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 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)
최근 글
인기 글
태그
  • #spring
  • #Index
  • #오블완
  • #디자인패턴
  • #이펙티브자바
  • #Effective Java
  • #AWS
  • #티스토리챌린지
  • #test
  • #PostgreSQL
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바