본문 바로가기
개발/Java

[Java] DB 종류별 연결 방법을 알아봅시다.

by 쓸있쏜 2024. 11. 29.

 

Java 개발자와 DB 친구들의 수다: 우리가 정말 잘 지낼 수 있을까?

안녕하세요, 개발자 여러분! 오늘은 우리가 일하면서 정말 자주 부딪히는 문제 중 하나를 다뤄볼 거예요. 바로 **"Java랑 DB랑 어떻게 친하게 지낼까?"**라는 주제인데요. 아, 벌써 머리가 지끈거린다고요? 괜찮아요, 저도 처음엔 그랬어요. 자, 우리 한 번 천천히 얘기해 봅시다. 커피 한 잔 들고 오셨죠? ☕


1. MySQL: 개발자들의 첫사랑?

자, 먼저 MySQL 얘기부터 시작할게요. 솔직히 MySQL은 첫사랑 같아요. 이유요? 쓰기 쉽고, 친근하고, 처음 써보는 사람도 "아, 이거 괜찮네?" 하고 금방 익숙해지거든요. 그런데 첫사랑처럼 "연결 오류"라는 시련이 종종 찾아오죠. 그때마다 머리 쥐어뜯으며 해결책을 찾아야 했던 제 과거가 떠오르네요. 😅

이제 코드를 보여드릴게요. 정말 간단해요.

import java.sql.*;

public class MySQLExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String user = "root";
        String password = "password";

        try (Connection conn = DriverManager.getConnection(url, user, password)) {
            System.out.println("MySQL에 연결 성공!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

여기서 중요한 건 드라이버예요. mysql-connector-java.jar 파일을 꼭 프로젝트에 추가해야 해요. 이거 빼먹으면 아무리 코드가 완벽해도 "드라이버 없어요~"라는 차가운 오류 메시지를 받게 됩니다. 경험담이에요. 😭


2. Oracle: 좀 까다로운 관계

Oracle은 좀 다릅니다. 약간 거만한 연인의 느낌이랄까요? 처음에는 어려워 보이지만, 제대로 다뤄 보면 "역시, 이래서 사람들이 Oracle을 쓰는구나" 싶어요. 대용량 데이터를 다룰 때 그 묵직한 안정감이 아주 든든하거든요.

Oracle은 ojdbc8.jar이라는 친구가 필요합니다. 그리고 연결 코드는 이렇게 생겼어요:

import java.sql.*;

public class OracleExample {
    public static void main(String[] args) {
        String url = "jdbc:oracle:thin:@localhost:1521:xe";
        String user = "oracle_user";
        String password = "oracle_password";

        try (Connection conn = DriverManager.getConnection(url, user, password)) {
            System.out.println("Oracle DB에 연결 성공!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

여기서 중요한 포인트는 포트 번호서비스 이름이에요. 이거 헷갈리면 연결이 안 돼서 몇 시간씩 삽질하게 될 수도 있어요. 네, 저도 그랬어요. 😂


3. PostgreSQL: 문제 해결사 같은 친구

PostgreSQL은 한마디로 정의하자면 "똑똑한 친구"예요. SQL뿐만 아니라 JSON, XML도 처리할 수 있으니까 데이터가 복잡할수록 이 친구가 빛을 발해요.

연결하려면 역시 드라이버가 필요하죠. postgresql-<버전>.jar 파일을 다운받아야 해요. 그다음 코드를 보면:

import java.sql.*;

public class PostgreSQLExample {
    public static void main(String[] args) {
        String url = "jdbc:postgresql://localhost:5432/mydb";
        String user = "postgres";
        String password = "password";

        try (Connection conn = DriverManager.getConnection(url, user, password)) {
            System.out.println("PostgreSQL에 연결 성공!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

PostgreSQL은 특히 오픈소스라서 비용 걱정이 없고, 쿼리 최적화도 훌륭해요. 그래서인지 최근 몇 년 사이에 정말 인기가 많아졌죠. 😄


4. SQLite: 가벼운 친구와 떠나는 여행

SQLite는요, 진짜 신기한 친구예요. 아무 설정도 필요 없고, 그냥 파일 하나로 모든 걸 해결할 수 있어요. 마치 배낭 하나 들고 떠나는 여행 같은 느낌이랄까요?

코드는 정말 간단해요:

import java.sql.*;

public class SQLiteExample {
    public static void main(String[] args) {
        String url = "jdbc:sqlite:sample.db";

        try (Connection conn = DriverManager.getConnection(url)) {
            System.out.println("SQLite에 연결 성공!");
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

이렇게 하면 끝이에요. 특별히 서버를 설치할 필요도 없고, 그냥 로컬 파일만 있으면 돼요. 테스트나 간단한 프로젝트에 딱이죠.


5. MongoDB: 나는 다른 길을 간다

MongoDB는 관계형 데이터베이스가 아니라 NoSQL DB입니다. 그래서 접근 방식부터 달라요. JDBC 대신 MongoDB Java Driver를 사용해야 해요.

import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoClient;

public class MongoDBExample {
    public static void main(String[] args) {
        try (MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017")) {
            System.out.println("MongoDB에 연결 성공!");
        }
    }
}

MongoDB는 데이터를 JSON처럼 저장하고, 복잡한 데이터 구조를 쉽게 다룰 수 있어서 요즘 정말 많이 쓰이고 있어요. 마치 새로운 세상을 만나는 기분이랄까요?


마무리하며: 개발자의 삶은 연애다

Java와 DB를 연결하는 건 마치 새로운 사람과 관계를 맺는 것과 비슷한 것 같아요. 처음엔 어렵고 어색하지만, 차근차근 배워가다 보면 서로를 이해하고 좋은 관계를 맺을 수 있거든요.

여러분도 혹시 이 과정에서 어려움을 겪고 있다면 걱정하지 마세요. 저도 그랬고, 모두가 그래요. 중요한 건 포기하지 않는 마음이에요. 😊

그럼 여러분, 행복한 코딩 하세요! 그리고 혹시 또 막히는 부분이 있다면 언제든 찾아오세요. 함께 얘기해 봐요! 🙌

 

댓글