본문 바로가기

전체 글

(88)
JAVA HashMap vs Hashtable vs ConcurrentHashMap 차이점 자바에서 데이터를 Key-Value 형태로 저장할 때 가장 많이 사용하는 자료구조 중 하나가 HashMap과 Hashtable이다. 두 클래스 모두 해시 테이블을 기반으로 데이터를 저장하지만, 중요한 차이점이 있다. 이번 포스팅에서는 HashMap과 Hashtable의 차이를 상세히 알아보고, 언제 어떤 것을 사용해야 하는지 살펴보겠다.1. 기본 개념HashMapjava.util.HashMap은 Map 인터페이스를 구현한 클래스로, Key-Value 쌍으로 데이터를 저장한다.null 키와 null 값을 허용한다.동기화를 제공하지 않으므로 여러 개의 스레드가 동시에 접근하면 문제가 발생할 수 있다.LinkedHashMap과 TreeMap의 부모 클래스이다.HashMap 사용 예제Map hashMap = n..
GoF 디자인 패턴 - 프로토타입 패턴 (Prototype Pattern) 1. 프로토타입 패턴이란?프로토타입 패턴은 생성 패턴 (Creational Patterns)의 하나로써 기존 객체를 복사하여 새로운 객체를 생성하는 생성 패턴이다. 객체를 일일이 생성하는 대신, 기존 객체를 복제(clone)하여 동일한 값과 상태를 가진 객체를 빠르게 만들 수 있도록 한다.특징객체 생성 비용 절감: 복잡한 객체를 새로 생성하는 것보다 기존 객체를 복제하는 것이 비용적으로 효율적이다.객체 생성 과정 단순화: 직접 생성자 호출 없이 동일한 속성을 가진 객체를 쉽게 만들 수 있다.런타임 동적 객체 생성 가능: 클래스의 인스턴스를 런타임에서 복제하여 유연한 객체 생성을 지원한다.2. 프로토타입 패턴의 구조Prototype(프로토타입 인터페이스): 객체 복제를 위한 clone() 메서드를 정의한다..
JAVA 프로그램이 실행되는 흐름 자바 프로그램이 실행되는 과정 세부적 설명자바(Java)는 클래스 및 메서드 기반의 객체 지향 프로그래밍 언어로, 여러 프로세스에서 가장 많이 사용되는 언어 중 하나입니다. 이번 글에서는 자바 프로그램이 실행되는 과정을 쉽게 이해할 수 있도록 단계별로 정리해 보겠습니다.1. 소스 코드 작성 (.java 파일)자바 프로그램은 먼저 .java 파일로 작성됩니다.public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); }}2. 컴파일 (javac) - 바이트코드 생성.java 파일을 자바 컴파일러(javac)를 사용하여 .class 파일(바이트코드)로 변환합니..
SSLHandshakeException: PKIX path building failed 에러 해결 방법 (인증서오류) 회사에서 매일 공공기관에서 제공하는 API를 연동하여 데이터를 가져와 가공하는 작업을 하는데 SSLHandshakeException: PKIX path building failed SSL 인증서 오류가 발생하여 연결이 안돼 해당 배치 프로세스가 비정상 종료되었다. 이에 내가 대응하여 리눅스 환경 및 자바 애플리케이션에서 SSL인증서 교체 후 API URL 정상 연동 방법을 기록하겠다. 1. 인증서 확인 서버 내 내가 접근할 API URL의 전용 인증서가 유효한지 아래 명령어로 확인oepnssl s_client -connect 접속URL:포트번호 Unable to get local issuer certificate : 중간 체인 인증서 오류 Unable to verify the first certific..
GoF 디자인 패턴 - 빌더 패턴 (Builder Pattern) 1. 빌더 패턴이란?빌더 패턴은 생성 패턴 (Creational Patterns)의 하나로써 복잡한 객체의 생성을 단계적으로 수행하며, 다양한 구성 방법을 제공하는 생성 패턴이다. 객체의 생성 과정과 표현을 분리하여 동일한 생성 절차에서 서로 다른 표현의 객체를 만들 수 있도록 한다.특징객체의 생성 과정 분리: 클라이언트가 객체의 생성 과정을 알 필요 없이, 빌더가 단계적으로 객체를 구성한다.가독성 및 유지보수성 향상: 생성자에 많은 매개변수를 전달하는 방식보다 직관적인 방식으로 객체를 구성할 수 있다.불변 객체 생성에 유리: 필드가 많은 객체를 생성할 때, 불변성을 유지하기 쉽게 설계할 수 있다.2. 빌더 패턴의 구조Product(제품 클래스): 빌더를 통해 생성될 복잡한 객체를 정의한다.Builder..
FTP 기본 명령어 정리 FTP(File Transfer Protocol)는 네트워크를 통해 파일을 전송하는 표준 프로토콜로, 명령줄 인터페이스(CLI)를 사용하여 다양한 작업을 수행할 수 있다. 아래는 FTP의 주요 명령어와 그 사용법을 정리한 내용이다.1. FTP 서버 접속 및 설정ftp [호스트명 또는 IP] [포트번호]특정 FTP 서버에 접속한다. 기본 포트는 21이지만, 필요에 따라 다른 포트를 지정할 수 있다.예시: ftp 192.168.1.1 ftp example.com 2121 open [호스트명 또는 IP] [포트번호]현재 FTP 세션에서 새로운 서버에 접속할 때 사용한다.예시: open ftp.example.com 2121 user [사용자이름] [비밀번호]특정 사용자 계정으로 로그인한다.예시: user myu..
Java를 활용한 SFTP 파일 다운로드: 가장 최근 변경된 파일 찾기 SFTP(SSH File Transfer Protocol)를 이용하면 원격 서버에서 파일을 안전하게 업로드 및 다운로드할 수 있습니다. 이번 글에서는 Java의 JSch 라이브러리를 사용하여 SFTP 서버에 연결하고, 가장 최근에 변경된 파일을 찾아 다운로드하는 방법을 소개합니다.1. 프로젝트 설정1.1 Maven 또는 Gradle로 JSch 라이브러리 추가Maven 프로젝트의 경우 pom.xml에 다음 의존성을 추가합니다. com.jcraft jsch 0.1.55Gradle 프로젝트의 경우 build.gradle에 추가합니다.dependencies { implementation 'com.jcraft:jsch:0.1.55'}2. SFTP 서버에서 가장 최근 파일 다운로드하기2.1 J..
오라클 힌트(Oracle Hint) 정리 – 자주 사용하는 힌트와 최적화 전략 오라클 데이터베이스에서 SQL 실행 계획을 제어하는 방법 중 하나가 바로 힌트(Hint)입니다. 옵티마이저(Optimizer)는 자동으로 최적의 실행 계획을 선택하지만, 때때로 예상과 다른 실행 계획이 선택될 수도 있습니다. 이때, 힌트를 사용하면 개발자가 원하는 방식으로 실행 계획을 유도할 수 있습니다.이번 포스팅에서는 오라클에서 가장 많이 사용되는 힌트들을 정리하고, 각각의 동작 방식과 활용 예제를 소개하겠습니다.1. 오라클 힌트란?힌트(Hint)는 SQL 문 내에서 /*+ HINT_NAME */ 형식으로 작성되며, 옵티마이저가 특정 실행 계획을 선택하도록 유도하는 역할을 합니다. 힌트 기본 사용법:SELECT /*+ HINT_NAME */ 컬럼명 FROM 테이블명 WHERE 조건;/*+ */ 안에 ..

반응형