JDBC JDBC(Java Database Connectivity)는 자바 애플리케이션과 데이터베이스 간의 연결과 상호작용을 위한 자바 인터페이스이다. 표준화된 인터페이스를 제공함으로 데이터베이스를 쉽게 다룰 수 있도록 하며, 여러 데이터베이스에 대해 동일한 방식으로 데이터베이스 연결, 쿼리 실행, 결과 처리 등을 수행할 수 있다. JDBC를 사용해서 데이터베이스와 연결 및 통신을 하기 위해서는 아래의 단계를 따른다. [ 1. JDBC 드라이버 로드 ] 드라이버(Driver)란 데이터베이스와 연결을 관리하는 데 사용되는 컴포넌트이다. 드라이버는 데이터베이스 벤더에 따라 자체적인 드라이버가 존재하고 일반적으로 JAR 파일 형식으로 제공된다. 프로젝트에서 사용하고자 하는 데이터베이스와 관련된 모듈을 추가한다..
우아한테크코스 블랙잭 미션에서는 딜러와 플레이어에서 발생하는 중복 코드를 제거해야 한다는 요구사항이 존재한다. 중복 코드를 상위 클래스로 옮기고 딜러와 플레이어가 상속하여 중복을 제거할 수 있을 것이다. 딜러와 플레이어 모두 블랙잭 게임을 참여하는 참가자이기에 공통 로직을 참가자에서 처리하면 된다. 하지만 상속에는 많은 단점들이 존재하기에 이를 고려해서 사용해야 한다. 지금까지는 상속의 단점을 제대로 이해하지 못했었기에 이번 기회를 통해 정리해보고자 한다. 상속 객체지향에서 클래스를 재사용하기 위해, 다시 말해서 중복 코드를 줄이기 위해서는 새로운 클래스를 추가하는 상속이라는 기법이 존재한다. 재사용 관점에서 본다면 클래스 안의 인스턴스 변수와 메서드를 자동으로 클래스에 추가하는 기법을 의미한다. 중복 ..
1. 운영체제에 독립적이다. 운영체제와 하드웨어랑 직접적으로 통신하는 일반 애플리케이션과 달리 자바 애플리케이션은 JVM을 거쳐 운영체제와 하드웨어랑 통신합니다. 따라서 자바 애플리케이션은 한 번만 작성되면 어디서든 실행될 수 있기에 Write Once, Run Anywhere라고 표현하기도 합니다. 하드웨어마다 사용하는 기계어가 다르고, 운영체제마다 사용하는 API 종류, 메모리 관리 기법 등이 다르기에 일반적인 애플리케이션의 경우 플랫폼에 종속적일 수밖에 없습니다. 자바 애플리케이션은 JVM을 통해 플랫폼에 알맞은 기계어로 변환되기에 자바 애플리케이션 자체는 플랫폼에 종속적이지 않습니다. 하지만 JVM은 운영체제에 맞게 애플리케이션을 변경해야 하기에 플랫폼에 종속적입니다. 결국 JVM이라는 중간 매개..
주제 Effective Java 스터디에서 아이템 15. 클래스와 멤버의 접근 권한을 최소화하라는 주제에 관해 얘기하던 중 다음과 같은 질문이 나오게 되었습니다. private static final Thing[] PRIVATE_VALUES = { ... }; public static final Thing[] values() { return PRIVATE_VALUES.clone(); } 원본 배열의 불변성을 지키기 위해 방어적 복사를 사용하여 복사 배열을 반환하는 메서드를 생성하였는데 배열 원소 내부의 값을 조작하게 되면 원본 배열의 불변성이 깨지지 않을까요? clone 메서드를 사용하게 되면 새로운 메모리 공간에 값을 복사하게 되지만, 원소가 기본 타입이 아닌 참조 타입이기에 해당 주소값도 동일하게 복..
알고리즘을 공부하면서 문자열 처리와 관련된 문제를 많이 접하게 되었습니다. 패턴을 찾고 문자열을 변경하는 데 있어 하나씩 찾아 탐색하기에는 코드의 가독성도 떨어지고 실수도 종종 존재하였습니다. 이를 간편히 처리하기 위해서는 정규표현식에 대한 이해와 숙련이 필요했고 이를 정리해보고자 합니다. 정규 표현식 정규 표현식이란 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어입니다. 문자열을 다루는 데 굉장히 유용하기 때문에 여러 프로그래밍 언어에서 이를 지원하고 있습니다. 문법이 일반적인 프로그래밍 언어에 비해 굉장히 난해하여서 지속적인 시간 투자가 필요합니다. 저도 정규 표현식이 무엇인지 알고 있었지만, 학습 어려움으로 인해 미루고 있었던 내용입니다. 컴파일러의 파서 부분에는 정규 표현식이 ..