본문 바로가기

자바4

커넥션 풀과 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.
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.
자바 클래스, 객체, 인스턴스 클래스 ( Class )1. 객체를 생성하기 위한 템플릿 또는 설계도이다. 2. 특정 유형의 객체들이 공통적으로 가지게 될 속성과 메서드를 정의한다. 3. 즉 데이터와 데이터를 조작하는 방법을 함께 묶는 수단을 제공한다. public class Animal { String name; int age; void introduce() { System.out.println("Animal{" + "name='" + this.name + '\'' + ", age=" + this.age + '}'); }} - Animal 클래스는 이름, 나이 속성을 가진다. - 자바에서는 이를 멤버 변수 또는 필드라 한.. 2024. 3. 31.