🔵 1. OracleXE112_Win64.zip
- ➔ Oracle Database Express Edition (XE) 11g 버전 설치 파일.
- Oracle 데이터베이스 프로그램 자체를 설치.
- 설치하면 내 컴퓨터에 오라클 데이터베이스 서버가 만들어져서,
- 테이블 만들고
- 데이터 저장하고
- SQL 실행하고
- 직접 데이터베이스를 사용.
- (Win64) = 윈도우 64비트 전용.
쉽게 말하면:
"진짜 데이터베이스 서버를 내 PC에 설치하는 파일!"
🔵 2. sqldeveloper-19.2.1.247.2212-x64.zip
- ➔ Oracle SQL Developer 프로그램 설치 파일.
- 이건 데이터베이스를 관리하고 SQL을 작성할 수 있게 해주는 프로그램.
- 위에서 봤던 SQL Developer 화면(테이블 조회, SQL 작성, 관리) 있지?
➔ 그걸 설치. - 역시 64비트 윈도우용 버전.
쉽게 말하면:
"설치된 데이터베이스를 편하게 조작하는 도구!"
🔵 한 줄로 요약하면
- OracleXE112_Win64.zip → "DB 서버 설치 파일" (데이터 저장소)
- sqldeveloper-19.2.1.247.2212-x64.zip → "DB 관리하는 프로그램" (조작 툴)
🔵 둘의 관계 정리
데이터베이스를 설치하는 파일 | OracleXE112_Win64.zip | 내 PC에 데이터베이스를 깔아줌 |
데이터베이스를 관리하는 프로그램 | sqldeveloper-19.2.1.247.2212-x64.zip | SQL 작성, 테이블 조회 등을 쉽게 도와줌 |
🔵 Oracle SQL Developer란?
→ Oracle 데이터베이스를 관리하고 SQL 쿼리를 작성할 수 있도록 도와주는 무료 프로그램
→ 복잡한 명령어를 입력하지 않고도, 마우스 클릭으로 테이블 조회, 수정, 삭제 같은 작업을 쉽게 함
🔵 지금 화면에서 보이는 것
- 왼쪽 : "접속" 패널 ➔ 데이터베이스에 연결된 테이블(EXAM, SCORE, STUDENT, SUBJECT)이 보임.
- 중간 위쪽 : "워크시트" ➔ 여기에서 SQL 쿼리(SELECT, INSERT, UPDATE 등)를 직접 작성해서 실행할 수 있음.
- 아래쪽 : "보고서" 탭 ➔ 분석용 보고서나 통계 같은 걸 볼 수 있는 기능. (지금은 별로 안 써도 됨)
🔵 이 프로그램으로 할 수 있는 기본 작업
- 테이블 안에 데이터 조회하기 (SELECT)
- 새로운 데이터 추가하기 (INSERT)
- 데이터 수정하기 (UPDATE)
- 데이터 삭제하기 (DELETE)
- 테이블 구조 변경하기 (컬럼 추가, 삭제 등)
- 데이터베이스 안의 오브젝트 관리 (테이블, 뷰, 인덱스, 패키지 등)
아주 간단히 말하면,
👉 "오라클 데이터베이스를 쉽게 관리하고 SQL을 실행할 수 있는 도구".
🔵 위 화면
👉 Oracle JDBC Driver (ojdbc6) 파일을 다운로드할 수 있는 페이지
(JDBC 드라이버는 Java 프로그램이 Oracle 데이터베이스랑 연결할 때 필요한 파일.)
🔵 여기서 핵심만 정리하면
- ojdbc6.jar 파일 (2.6MB)
- ➔ Oracle 데이터베이스에 접속하려면 Java 프로그램이 이 파일을 사용.
쉽게 말하면:
"Java가 Oracle DB랑 대화하려고 통역사를 불렀는데, 그 통역사가 바로 ojdbc6.jar."
🔵 어디에 쓰이나
- Java 프로그램에서 Connection 객체로 DB에 연결할 때
- Oracle SQL Developer 같은 프로그램을 커스터마이징할 때
- 스프링(Spring), 마이바티스(MyBatis) 같은 프레임워크에서도 DB 연결할 때 사용
🔵 보통 이렇게 써
- ojdbc6.jar 파일을 다운로드한다.
- Java 프로젝트에 추가한다. (빌드 패스에 등록)
- Java 코드에서 Oracle DB 연결할 때 자동으로 이 파일이 사용된다.
🔵 이 화면은 뭐냐면
👉 이클립스(Eclipse)에서 프로젝트에 ojdbc6.jar 파일을 등록하는 과정
🔵 조금 더 쉽게 정리하면
Java Build Path | "이 프로젝트에 어떤 외부 파일(JAR)을 사용할지 설정하는 곳" |
Libraries 탭 | "외부 라이브러리 목록"을 관리하는 탭 |
Add External JARs... 버튼 | "내 컴퓨터에 저장된 .jar 파일을 추가하는 버튼" |
➔ 여기서 ojdbc6.jar 파일을 추가해서,
Java 코드가 오라클 데이터베이스를 사용할 수 있게 만들어 주는 것
🔵 지금까지 한 과정은?
- ojdbc6.jar 파일을 다운로드했다.
- 이클립스 프로젝트를 열었다.
- Java Build Path → Libraries 탭으로 이동했다.
- Add External JARs...를 눌러서 ojdbc6.jar를 추가했다.
이제 ➔ Java 코드에서 오라클 데이터베이스랑 연결할 준비가 끝! 🎯
🔵 한줄 요약
"ojdbc6.jar을 프로젝트에 연결해서, Oracle DB랑 통신할 수 있도록 세팅한 화면이다."
🔵 지금 보여주는 화면은
👉 아까 추가한 ojdbc6.jar 파일 안을 열어본것
그리고 OracleDriver.class 파일을 가리키고 있음
🔵 이게 무슨 뜻이냐면?
- ojdbc6.jar 안에는
➔ Oracle 데이터베이스 연결에 필요한 여러 클래스 파일(.class) 이 들어있음. - 그중에서 OracleDriver.class 파일은
➔ Java 프로그램이 Oracle DB랑 통신할 수 있게 해주는 핵심 드라이버 클래스
🔵 아주 쉽게 말하면
OracleDriver.class | "Oracle 데이터베이스에 연결하는 운전사(Driver)" |
🔵 정리
- ojdbc6.jar = 오라클용 Java 드라이버 파일 모음
- OracleDriver.class = 그중에서도 DB 연결을 담당하는 가장 중요한 파일
- Java 프로그램이 Oracle DB에 연결할 때 꼭 필요한 역할을 함
🔵 요약 한 문장
"OracleDriver.class는 Java 프로그램이 Oracle DB와 연결할 때 사용하는 핵심 연결 클래스다."
🔵 이 코드는 뭘 위해 만든 거냐?
👉 **Oracle 데이터베이스에 연결(Connection)할 때 매번 새로 만들지 않고,
하나의 고정된 방법(싱글톤)으로 DB 연결을 관리하려고 만듬!
즉,
**"DB 연결을 쉽게 만들고, 한 번에 관리하는 싱글톤 클래스"**.
🔵 코드 흐름 요약
private static OracleDataSource instance | 이 클래스를 딱 하나만 만들고 공유하기 위해 미리 생성 |
private OracleDataSource() | 생성자를 막아서 외부에서 new 못하게 함 |
public static OracleDataSource getInstance() | 만든 하나를 가져오는 방법 (공식 출입구) |
public final String DRIVERCLASSNAME, URL, USERNAME, PASSWORD | DB 연결에 필요한 정보 (고정된 값) |
public Connection getConnection() | 실제로 DB에 연결(Connection 객체 만들기) 하는 메서드 |
🔵 쉽게 말하면
- OracleDataSource 클래스 하나 만든다.
- 프로그램 어디서든 getInstance() 호출해서 가져온다.
- 그리고 getConnection() 호출해서
➔ Oracle DB에 연결(Connection 객체 생성) 한다!
🔵 왜 이렇게 만들었냐?
- 매번 복잡한 연결 코드 치기 귀찮으니까
- 실수 없이 통일된 방식으로 연결하려고
- 싱글톤으로 만들어서 관리 편하게 하려고
(특히 프로그램이 커지면, DB 연결을 이런 식으로 통일해서 관리하는 게 정말 중요!)
🔵 한 줄 요약
"Oracle DB 연결을 쉽고 일관되게 관리하려고 만든 싱글톤 데이터베이스 연결 도우미 클래스다."
🔵 이 코드는 지금 뭘 하고 있냐?
👉 DB 연결(Connection)을 얻고, 사용한 뒤에 꼭 닫아주기 위해 작성된 코드.
(DB 연결을 얻었으면 반드시 닫아야 해! 안 그러면 서버에 부하가 걸림.)
🔵 구체적으로 정리하면
Connection conn = null; | DB 연결 객체 준비 |
Statement stmt = null; | SQL 실행 객체 준비 |
ResultSet rs = null; | 쿼리 결과를 담을 객체 준비 |
try { conn = dataSource.getConnection(); } | 연결 얻기 시도 |
finally {} | 연결이 성공하든 실패하든 무조건 자원 정리 |
if (stmt != null) stmt.close(); | Statement 닫기 |
if (conn != null) conn.close(); | Connection 닫기 |
🔵 아주 쉽게 요약하면
"DB 연결을 열었으면 → 무조건 닫아야 한다. (close)"
"그래서 try-finally로 묶고, null 체크 후 안전하게 닫는 코드다."
🔵 왜 이렇게 해?
- 오류가 나든, 정상적으로 끝나든 반드시 연결을 끊어야 해서.
- 서버에 연결이 계속 열려 있으면 ➔ 메모리 과부하, 서버 다운 가능성 있음.
- 그래서 finally 블록을 써서 무조건 닫게 만드는 거야.
🔵 전체 한 줄 요약
"DB 연결하고, 자원 낭비 막기 위해 꼭 안전하게 닫는 try-finally 구조를 짠 코드"
🔵 전체적인 흐름
지금 네가 보여준 코드는
👉 StudentServiceImpl라는 서비스(Service) 레이어
"Service 레이어는 DAO를 이용해서 데이터를 처리하는 중간 관리자 역할"을 하는 곳
즉,
- 직접 DB에 접근하는 건 DAO가 하고
- Service는 DAO를 불러다가 요청만 위임하는 구조
'프로그래밍 > JAVA' 카테고리의 다른 글
자바스크립트 - 비동기함수 (0) | 2025.04.23 |
---|---|
자바 & 자바스크립트 차이 (0) | 2025.04.23 |
함수형 프로그래밍 vs 객체지향 프로그래밍 (0) | 2025.04.22 |
자바스크립트 ES6 - 7가지 사용법 (모던 프로그래밍) (0) | 2025.04.22 |
제네릭(Generics) (0) | 2025.04.22 |