DevLog/학습일지

📓 [4주 차 학습일지 – OOP 심화 & JDBC 실습]

ny1114 2025. 4. 8.

🗓️ 2025. 02. 24. ~ 2025. 02. 28.

✅ 학습 개요

4주 차는 Java의 객체지향 프로그래밍(OOP)를 심화 학습하고,
Oracle과의 연동을 위한 JDBC(Java Database Connecticity) 개념을 실습했습니다.
기존에 배운 클래스 구조 위에 상속, 다형성, 추상 클래스 등 OOP의 핵심 개념을 덧붙이며
더 복잡하고 확장성 있는 코드 구조를 설계할 수 있게 되었습니다.
JDBC를 통해 자바 프로그램에서 데이터 베이스와 직접 연결해보고, 
데이터의 입출력을 처리하면서 실무 프로그래밍에 한 걸음 더 가까워졌습니다.


📝 주요 학습 내용

 
🧱 1. OOP 심화 개념

  • 클래스 간 상속 구조 구성
  • 추상 클래스(abstract)와 인터페이스(interface) 비교
  • Overriding & Overloading 차이 이해
  • 다형성 구현 및 `instanceof` 사용법

 

🔌 2. JDBC(Java Database Connectivity)

  • JDBC 개요 및 아키텍처 이해
  • `Connection`, `Statement`, `ResultSet` 등 주요 객체 실습
  • `try-catch`문을 이용한 예외 처리
  • SELCET, INSERT, UPDATE, DELETE 쿼리 실행
  • DB 연결 종료 및 자원 해제(close()) 처리

 

🧩 3. 실무형 응용 예제 실습

  • 회원가입 / 회원 조회 프로그램 구현
  • 반복문과 배열, 클래스, DB 연동 통합 활용
  • MVC 구조의 간략한 개념 언급 및 설계 연습

🧠 인상 깊었던 실습 코드

// 추상 클래스와 다형성 예제
abstract class Animal {
	abstract void sound();
}

class Dog extends Animal {
	void sound() {
    	System.out.println/9"멍멍!");
    }
}

Animal a = new Dog();
a.sound();	// 출력: 멍멍!

📌 추상 클래스와 다형성을 활용해, 객체를 유연하게 다룰 수 있는 구조를 구현할 수 있었다.

// JDBC 연결 예제
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "scott";
String password = "tiger";

Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM member");

while(rs.next()) {
    System.out.println(rs.getString("name"));
}

rs.close();
stmt.close();
conn.close();

📌 직접 DB에 연결해 데이터를 읽어오는 경험을 통해 백엔드의 기초를 몸으로 느낄 수 있었다.


🐞 실습 중 이슈 & 해결 방법

이슈 해결 방법
추상 클래스에서 메서드 정의 안 했을 때 컴파일 오류 자식 클래스에서 반드시 `@Override`로 구현 필요
JDBC 연결 실패 드라이브 경로 확인 및 object.jar 클래스 패스 설정으로 해결
SQL 문법 오류 오타, 쿼리 종료 세미콜론 빠짐 등 디버깅을 통해 확인
DB 지원 미해제 `close()` 누락 시 리소스 누수 발생 → finally 블록 사

📌 실습 중 마주친 다양한 오류를 통해 Java의 구조적 안정성과 예외 처리의 중요성을 배울 수 있었다.


💬 느낀 점

 

OOP를 이론이 아닌 코드로 구현해보며 “객체지향이 왜 필요한가”에 대한 감이 생겼다.
클래스 간 관계를 설계하고, 공통 기능은 추상화하며 재사용성을 높이는 구조가 흥미로웠다.
JDBC는 처음에는 복잡했지만, 직접 연결을 해보면서 Java와 DB가 어떻게 대화하는지 이해할 수 있었다.
특히 SQL과 Java가 한 프로젝트 안에서 어우러질 때 프로그램이 실무적으로 완성되는 느낌이 들었다.


💻 실습 코드 전체 보기

👉 자세한 실습 코드는 아래 글에서 확인할 수 있습니다!
🔗 <"👉https://ny1114.tistory.com/entry/4주차-실습-코드-모음">


✍️ 한 줄 회고

“객체를 설계하고, 데이터와 연결하며, 점점 더 ‘개발자스러운’ 코드가 손끝에서 만들어졌다.”

댓글