java5 스택 트레이스와 예외 포함의 중요성 Stack Trace란?● 프로그램이 예외를 던질 때 예외가 어디서 발생했고, 어떤 경로를 거쳐 호출되었는지 알려주는 로그 정보 ● 어떤 메서드에서 예외가 발생했고 그 메서드를 누가 호출 했는지 계속 따라가는 호출 경로 ● 최근 → 과거 호출 순서대로 쌓인다. [Test worker] ERROR c.f.d.j.exception.basic.CheckedTest -- Internal Server Errorjava.sql.SQLException: db error at com.futuregoing.dbaccessv1.jdbc.exception.basic.CheckedTest$Repository.call(CheckedTest.java:31) at com.futuregoing.dba.. 2025. 6. 10. 커넥션 풀과 DataSource 데이터베이스와의 connection은 비용이 많이 드는 작업이다.매 요청마다 새 커넥션을 생성하면 성능 저하와 리소스 낭비가 발생한다.Connection Pool을 사용하면 미리 생성된 연결을 재사용하여 성능을 높이고 안정적인 트랜잭션 처리를 보장할 수 있다. 데이터베이스 connection을 획득할 때 다음과 같은 복잡한 과정을 거친다.1. 애플리케이션 로직은 DB 드라이버를 통해 커넥션을 조회 2. DB 드라이버는 DB와 TCP/IP 커넥션을 연결 3. DB 드라이버는 TCP/IP 커넥션이 연결되면 ID, PW와 기타 부가정보를 DB에 전달 4. DB는 ID, PW를 통해 내부 인증을 완료하고, 내부에 DB 세션을 생성 5. DB는 커넥션 생성이 완료되었다고 응답 6. DB 드라이버는 커넥션 객체를 .. 2025. 3. 22. JDBC 기초부터 이해하기 SQL Mapper 또는 ORM을 사용해도 결국 모든 것은 JDBC 위에서 동작한다. JDBC의 필요성애플리케이션 서버와 DB의 일반적인 사용법은 다음과 같다.TCP/IP를 사용하여 커넥션 연결커넥션을 통해 DB에 맞는 SQL 전달DB는 전달받은 SQL을 수행하고 결과를 응답 문제는 각각의 데이터베이스마다 커넥션을 연결하는 방법, SQL 전달 방법, 결과를 응답 받는 방법이 모두 다르다데이터베이스를 변경하면 애플리케이션 서버에 개발된 데이터베이스 관련 코드도 전부 변경해야한다개발자가 각각의 데이터베이스마다 커넥션 연결, SQL 전달, 결과 응답 받는 방법을 새로 학습해야한다이 문제를 해결하기 위해 JDBC라는 자바 표준이 등장한다. JDBC 표준 인터페이스JDBC(Java Database Connecti.. 2025. 3. 10. ubuntu에 Java 설치 패키지 목록 최신화sudo apt update패키지 목록은 각 패키지의 최신 버전, 의존성 정보, 보안 패치 등을 포함한다.최신 패키지 목록을 가져와야 보안 패치나 버그 수정이 반영된 버전을 설치할 수 있다.설치 가능한 openjdk 리스트 확인sudo apt list openjdk* 원하는 버전 설치sudo apt install openjdk-17-jdk 설치된 자바 버전 확인java -version 환경 변수 설정 없이도 java 명령어가 인식되는 이유패키지 관리 시스템이 자동으로 경로 설정을 관리한다.ubuntu는 update-alternatives 시스템을 통해 설치 경로를 관리한다.jdk를 설치하면 /usr/bin/java에 대한 심볼릭 링크가 설정되어 java 명령어가 실행 파일을 기리키게 된.. 2024. 11. 5. 자바 메모리 구조 (스택, 힙, 메서드 ...) Java의 가비지 컬렉션(GC) 메커니즘은 자동으로 메모리를 관리하긴 하지만, 그 과정에서 발생할 수 있는 성능 저하를 최소화하고 고급 기능을 최적화 하기 위해서는 메모리 구조에 대한 지식이 필요하다.1. 메모리 누수나 다른 메모리 관련 문제들은 애플리케이션의 안정성과 성능에 큰 영향을 미칠 수 있다. 2. 메모리 구조에 대한 이해는 이러한 문제들을 효과적으로 진단하고 해결하는 데 도움을 준다. 3. 예를 들어, 특정 객체가 왜 가비지 컬렉션의 대상이 되지 않는지, 혹은 왜 특정 시점에 메모리 사용량이 급증하는지 분석할 수 있다. 4. 고급 Java 기능들, 예를 들어 멀티스레딩, 동시성 컨트롤 등을 사용할 때, 각 기능이 메모리에 어떤 영향을 미치는지 이해하는 것이 중요하다. JVM 메모리 구조 5가지.. 2024. 5. 5. 이전 1 다음