하고싶은거 하는 블로그
[Oracle] 무료 클라우드 DB 사용 방법 본문
목차
1. 데이터베이스 생성
2. 데이터베이스 접속
3. 접속 테스트
4. 테이블 생성
5. 데이터 생성
6. 마치며
1. 데이터베이스 생성
Oracle Cloud에서 Instance 말고 DB도 무료로 사용할 수 있습니다. 이번에 개인 프로젝트를 진행하며 알아낸 사용 방법을 정리하고자 글을 남깁니다. 먼저 로그인 후 빌드에 ATP 데이터베이스 생성을 클릭합니다. (인스턴스 생성 방법은 해당 글에 있습니다.)

DB 이름을 정해주고 트랜잭션 처리(기본 값)를 선택해줍니다.

데이터베이스 구성은 다음과 같이 그대로 두면 됩니다. instance와 마찬가지로 2개까지 무료로 사용할 수 있다고 합니다.

DB에 사용할 비밀번호를 입력하고 네트워크 액세스를 설정해줍니다.

이후 생성을 클릭하고 생성이 완료될 때까지 기다립니다.
2. 데이터베이스 접속
이제 DB에 접속해 봅시다. 다음과 같은 화면에서 데이터베이스 접속을 클릭합니다.

이런 화면이 뜨는데 인스턴스 전자 지갑을 선택하고 전자 지갑 다운로드를 클릭합니다.

비밀번호를 생성하고 다운로드를 눌러줍니다.

3. 접속 테스트
example이라는 폴더를 생성 후 해당 폴더에 다운받은 지갑을 압축 해제했고 VS Code를 실행했습니다. 이후 db-test.js 파일을 생성해줍니다.

전자 지갑 다운로드 화면에서 밑으로 내려가면 코드 예제가 있습니다. 접속 서비스 유형을 선택하고 언어를 선택한 뒤 코드를 복사해 db-test.js에 붙여줍니다. 그리고 다음 명령어를 입력해줍니다.
npm init -y
npm install oracledb
이후 user에 ADMIN을 입력하고 자신이 설정한 password도 입력해줍니다. 또한 wallet을 사용하기 위해 connection에 주석처리 되어있는 부분을 해제하고 경로와 비밀번호를 설정해줍니다.

이후 node db-test.js로 파일을 실행해주면 다음과 같이 응답이 옵니다. 이로써 DB 생성과 접속에 성공했습니다.

4. 테이블 생성
scripts 폴더를 생성하고 schema.sql 파일을 생성해줍니다. 제가 사용한 코드는 다음과 같습니다.
-- SESSIONS TABLE
CREATE TABLE sessions (
id VARCHAR2(36) DEFAULT RAWTOHEX(sys_guid()) PRIMARY KEY,
session_code VARCHAR2(10) UNIQUE NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT SYS_EXTRACT_UTC(SYSTIMESTAMP),
expires_at TIMESTAMP WITH TIME ZONE DEFAULT (SYS_EXTRACT_UTC(SYSTIMESTAMP) + INTERVAL '2' HOUR),
is_active NUMBER(1) DEFAULT 1 CHECK (is_active IN (0, 1))
);
CREATE INDEX idx_sessions_code ON sessions(session_code);
CREATE INDEX idx_sessions_active ON sessions(is_active, expires_at);
db-test.js에서 해당 sql을 실행할 수 있도록 코드를 추가해줍니다.
const fs = require('fs');
async function runSchemaSQL(conn) {
const schemaSql = fs.readFileSync("scripts/schema.sql", "utf8");
const statements = schemaSql
.split(";")
.map(s => s.trim())
.filter(s => s.length > 0);
for (const stmt of statements) {
try {
await conn.execute(stmt);
console.log("[OK]", stmt.slice(0, 50));
} catch (err) {
console.log("[SKIP]", err.message);
}
}
}
runApp에서 위의 함수를 실행해줍니다.
console.log("Running schema.sql...");
await runSchemaSQL(connection);
성공적으로 실행 됐습니다.

테이블이 정상적으로 생성됐는지 확인하기 위해 데이터베이스 작업에서 데이터 로드를 클릭해줍니다.

분석을 클릭합니다.

테이블이 정상적으로 생긴 것을 확인할 수 있습니다.

5. 데이터 생성
이번엔 db-test.js에서 다음 코드를 실행하여 SESSION 테이블에 데이터를 생성해봅시다.
connection.execute(`
INSERT INTO sessions (session_code)
VALUES (:code)
`,
{ code: 'ABC123' },
{ autoCommit: true }
);
위 코드를 실행한 뒤 분석 - 테이블에서 SESSIONS를 클릭합니다. 이후 Run을 클릭하면 데이터가 잘 생성된 것을 확인할 수 있습니다.

6. 마치며
Oracle Cloud에서 DB를 생성하고 사용하는 방법을 알아봤습니다. 데이터를 생성할 때 분석에서 SQL을 작성하면 잘 안됐던 기억이 있습니다. 분석에서는 조회만 사용하길 권장합니다. 프로젝트에서 유용하게 사용하길 바라며 마치겠습니다.
'개발 > 클라우드' 카테고리의 다른 글
| 네이버 클라우드 서버 생성하기(VPC, micro, 1년 무료) (0) | 2024.11.01 |
|---|