Back-end/Java

포트폴리오를 정리하면서 오랜만에 서브 리팩토링을 하러 들어갔다가 갑자기 오류가 발생하여, 원인을 찾고 해결하는 과정을 기록한다.  오류가 발생했습니다. message : Could not open JDBC Connection for transaction; nested exception is java.lang.RuntimeException: Driver net.sf.log4jdbc.sql.jdbcapi.DriverSpy claims to not accept jdbcUrl, jdbc:log4jdbc:oracle:thin:@localhost:1521:xe이 오류는 log4jdbc 드라이버가 JDBC URL을 올바르게 인식하지 못해 발생하는 문제로, 의존성 설정이 부족하거나 올바르지 않은 경우에 자주 발생한다...
JDBC(Java Database Connectivity)는 자바에서 데이터베이스와 연결해 데이터를 처리할 수 있도록 해주는 API이다. JDBC는 주로 DriverManager, Connection, Statement 및 PreparedStatement 클래스 등을 통해 데이터베이스와의 상호작용을 지원한다.  1. DriverManager 클래스DriverManager는 데이터베이스에 연결을 설정하는 역할을 담당한다.Class.forName(): 특정 JDBC 드라이버 클래스를 메모리에 로드하여 사용할 수 있도록 한다.getConnection() 메소드: 데이터베이스에 연결된 Connection 객체를 생성한다. getConnection() 사용 예시)Connection con = null;try { ..
1차 필기 테스트   2차 필기 테스트
1. 스레드 개요프로세스는 실행 중인 프로그램을 의미하며, 각각의 프로세스는 독립적으로 자원을 할당받아 실행된다. 스레드는 프로세스 내에서 실행되는 흐름의 단위로, 여러 스레드가 하나의 프로세스 자원을 공유하며 실행된다. 스레드는 생성과 종료가 빠르고 통신 비용이 낮아 다중 작업을 효율적으로 처리한다.  2. 멀티 프로세스 vs 멀티 스레드멀티 프로세스: 독립적인 프로세스들이 동시에 실행.멀티 스레드: 하나의 프로세스 내에서 여러 스레드가 동시에 작업을 수행.멀티 스레드는 자원을 효율적으로 사용하고 애플리케이션의 응답성을 향상시킬 수 있지만, 동기화와 교착 상태에 주의해야 한다.  3. 스레드 생성 방법1. Thread 클래스 상속public class MyThread extends Thread { ..
1. 스트림(Stream) 개요스트림은 자바 8부터 추가된 기능으로, 컬렉션 내의 데이터를 일관된 방식으로 처리할 수 있도록 해준다. 내부 반복자를 사용해 처리 성능을 높이고, 코드의 가독성을 향상시킨다. 스트림을 사용하면 함수형 프로그래밍 스타일을 적용해 병렬처리도 간편하게 구현할 수 있다. 스트림 처리 예시)List list = Arrays.asList("a", "b", "c");list.stream().filter(s -> s.equals("b")).forEach(System.out::println);  2. 스트림의 특징원본 데이터를 변경하지 않음: 스트림은 데이터를 읽기만 한다.한 번만 사용 가능: 스트림은 한 번 처리된 후 재사용할 수 없다.지연 연산: 중간 연산은 결과를 필요할 때까지 실행되..
1. 람다식 개요람다식(Lambda Expression)은 자바 8에서 추가된 기능으로, 메소드를 간단하게 표현하는 방식이다. 메소드 이름과 리턴 타입이 생략되어 익명 함수 형태로 표현된다. 람다식은 간결하고 코드의 가독성을 높이며, 컬렉션과 스트림과 같은 데이터를 처리할 때 유용하다. 람다식 예시)(x, y) -> x + y   2. 함수형 인터페이스 (@FunctionalInterface)람다식은 함수형 인터페이스를 통해 사용할 수 있다. 함수형 인터페이스는 추상 메소드가 1개만 존재해야 하며, 이 인터페이스에 람다식을 대입하여 사용할 수 있다. 함수형 인터페이스 예시)@FunctionalInterfacepublic interface MyFunction { void apply();}   3. 주..
Enum 개요Enum(열거타입)은 관련된 상수들을 묶어 클래스 형태로 정의한 것이다. 자바 1.5에서 도입되었으며, 기존 정수 상수 패턴의 여러 단점을 보완한다. Enum 정의 및 사용 예시)public enum FoodsEnum { MEAL_AN_BUTTER_KIMCHI_STEW, MEAL_MINT_SEAWEED_SOUP, MEAL_BUNGEOPPANG_SUSHI;}public class Test { public static void main(String[] args) { System.out.println(FoodsEnum.MEAL_AN_BUTTER_KIMCHI_STEW); }}   2. Enum의 장점타입 안전성: 컴파일 타임에 오류를 잡을 수 있다.싱글톤 구현: 열거 상..
1. 입출력 (IO) 개요입출력(IO)은 프로그램과 외부 장치(파일, 네트워크, 콘솔 등) 간의 데이터를 송수신하기 위한 자바 라이브러리이다. 스트림(Stream)을 사용하여 데이터를 주고받으며, 단방향 통로를 통해 데이터를 처리한다. 입출력 스트림의 주요 특징바이트 스트림: 1바이트 단위로 데이터를 처리. (예: InputStream, OutputStream)문자 스트림: 2바이트 이상의 문자를 처리할 때 사용. (예: Reader, Writer) 스트림의 기본 구조데이터의 흐름은 **입력 스트림(InputStream)**과 **출력 스트림(OutputStream)**으로 구분되며, 각각 데이터를 읽고 쓰는 작업을 수행한다.   2. 파일 입출력파일 클래스(File Class)는 파일과 디렉토리를 관리..
아숭
'Back-end/Java' 카테고리의 글 목록