반응형
[WEB/WAS 개념 정리 시리즈] 5편 - WAS–DB 구성 및 APM 활용
이 글에서는 WAS와 DB 사이의 연동 구조를 정리하고,
Connection Pool(커넥션 풀) 구성, SQL 처리 흐름, 그리고 APM 도입을 통한 실시간 모니터링 방식을 소개합니다.
✅ WAS–DB 연동 흐름
Client → Web → WAS → Connection Pool → DB
- WAS: 애플리케이션 실행, JDBC 호출
- DB: 실제 데이터 처리
- Connection Pool: DB 커넥션을 미리 생성/재사용하여 성능 최적화
✅ Connection Pool(커넥션 풀)이란?
- DB 커넥션을 매번 생성하면 비용이 큼 → 미리 생성해 Pool로 관리
- WAS가 커넥션 풀을 통해 DB에 연결 요청
- 실무에서는 반드시 사용
✅ 커넥션 풀 구성 예 (Tomcat)
<Resource name="jdbc/MyDB"
auth="Container"
type="javax.sql.DataSource"
maxActive="50"
maxIdle="10"
username="user"
password="pass"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@192.168.1.100:1521:XE"/>
✅ 커넥션 풀 주요 설정
항목 | 설명 |
---|---|
maxActive | 최대 동시 커넥션 수 |
maxIdle | 유휴 상태로 유지할 커넥션 수 |
validationQuery | 커넥션 유효성 테스트 쿼리 |
testOnBorrow | 커넥션 사용 전 유효성 검사 |
✅ SQL 처리 흐름 요약
- WAS는 커넥션 풀에서 커넥션을 빌림
- SQL 쿼리를 실행
- 결과를 처리 후 커넥션을 풀에 반납
- 커넥션 풀은 재사용되며 DB와의 연결을 지속 관리
✅ 커넥션 풀 튜닝 포인트
- maxActive 값은 DB의 최대 프로세스 수보다 작게 설정
- testOnBorrow = true + validationQuery 설정 필수
- slow query 확인을 위한 SQL 로그 활성화
- 커넥션 timeout 설정 필수 (대기 방지)
✅ APM이란?
Application Performance Management
→ 애플리케이션의 성능을 실시간으로 모니터링하고 분석하는 도구
✅ 주요 APM 기능
기능 | 설명 |
---|---|
실시간 트랜잭션 추적 | 요청 단위로 흐름 추적 (Web → WAS → DB) |
쿼리 분석 | 느린 쿼리 탐지, 실행 시간 시각화 |
오류 탐지 | 예외 발생 지점 파악 |
WAS 리소스 모니터링 | Thread, Memory, GC, Heap 등 |
✅ APM 적용 예 (Pinpoint 기준)
- WAS에 에이전트 설치
- 설정 파일에 서비스 정보 입력
JAVA_OPTS
에 에이전트 경로 추가- Pinpoint Collector + Web UI 설치 후 확인
✅ 마무리
WAS–DB 구간은 성능 저하의 가장 큰 원인이 되는 구간입니다.
Connection Pool 설정, 쿼리 튜닝, 그리고 APM 도입은
WAS 운영에 있어 필수적인 실무 역량입니다.
반응형
'System Settings' 카테고리의 다른 글
리눅스 명령어: nohup – 로그아웃해도 프로세스를 계속 실행하는 방법 (0) | 2025.05.19 |
---|---|
[WEB/WAS 개념 정리 시리즈] 4편 - Web–WAS 연동: 로드밸런싱과 세션 클러스터링 (0) | 2025.05.14 |
[WEB/WAS 개념 정리 시리즈] 3편 - Apache MPM 방식과 Web 처리 구조 (0) | 2025.05.14 |
[WEB/WAS 개념 정리 시리즈] 2편 - JVM 구조 및 GC 메커니즘 (1) | 2025.05.14 |
[WEB/WAS 개념 정리 시리즈] 1편 - WEB/WAS 개요 및 호출 구조 (0) | 2025.05.14 |