🧠 데이터베이스 & ArrayList 정리
🗂️ [ 데이터베이스(Database) ]
| 항목 | 설명 |
|---|
| 📘 정의 | 자료들의 집합 |
| 📚 종류 | ① 관계형 데이터베이스(RDB) → 표(테이블) 형식 ② NoSQL 데이터베이스 → 객체 형식 |
| 🎯 목적 | 데이터의 체계적 관리, 중복 최소화(무결성), 동시 접근과 공유, 보안 강화 |
🧩 [ 관계형 데이터베이스 (RDB) ]
| 항목 | 설명 |
|---|
| ⚙️ 정의 | 행(가로)과 열(세로)로 구성된 데이터의 집합 |
| 🔗 관계 표현 | 테이블의 고유값(PK) 을 참조하여 다른 테이블과 종속 관계 표현 |
| 💻 주요 DBMS | Oracle / MySQL / MariaDB |
📖 주요 용어
| 용어 | 의미 |
|---|
| DB | 데이터베이스 — 자료의 집합 |
| DBA | 데이터베이스 관리자 |
| DBMS | 데이터베이스 관리 시스템 (예: MySQL) |
| DB Server | 데이터베이스가 설치된 PC ➡️ Server: 자료 제공자 ➡️ Client: 자료 수신자 |
| SQL | 데이터베이스 조작 언어 |
💡 예시 구조
[ PC1 ] <---- [ DBMS ] <---- [ PC2 ]
관리자(DBA)는 DBMS를 통해 특정 PC의 DB를 조작한다.
💬 [ SQL (Structured Query Language) ]
| 구분 | 설명 |
|---|
| 🧱 DDL | 데이터베이스 정의 언어 (CREATE, DROP 등) |
| 🧰 DML | 데이터베이스 조작 언어 (INSERT, SELECT, UPDATE, DELETE 등) |
| 🔒 DCL | 데이터베이스 제어 언어 (GRANT, REVOKE 등) |
| 🔁 TCL | 트랜잭션 제어 언어 (COMMIT, ROLLBACK 등) |
🐬 [ MySQL 기본 ]
🗒️ 주석
⚙️ 명령어 실행 단축키
| 명령어 | 설명 |
|---|
Ctrl + Enter | 세미콜론(;) 단위 실행 |
Ctrl + Shift + Enter | 전체 SQL 문 실행 |
🧾 주요 명령어
| 명령어 | 설명 |
|---|
SHOW VARIABLES LIKE 'datadir'; | DB 로컬 저장 경로 확인 |
CREATE DATABASE DB명; | 데이터베이스 생성 |
DROP DATABASE DB명; | 데이터베이스 삭제 |
DROP DATABASE IF EXISTS DB명; | 존재 시 삭제 |
SHOW DATABASES; | 전체 데이터베이스 목록 확인 |
USE DB명; | 특정 데이터베이스 활성화 |
🧮 [ ArrayList ]
| 항목 | 설명 |
|---|
| 📘 정의 | 리스트 자료형 클래스 — 가변 길이 배열 지원 |
| 🎯 목적 | 배열보다 유연한 구조 제공 (크기 변경 & 다양한 메소드 지원) |
🔹 배열 vs ArrayList 비교
| 구분 | 배열(Array) | ArrayList |
|---|
| 크기 | 고정 | 가변 |
| 기능 | 기본 문법만 제공 | 메소드로 조작 가능 |
| 타입 | 기본 자료형 | 객체 타입 |
🧠 [ ArrayList 사용법 ]
📦 선언
ArrayList<항목타입> 변수명 = new ArrayList<>();
➕ 요소 추가
| 메소드 | 설명 |
|---|
add(요소) | 리스트 끝에 요소 추가 |
add(인덱스, 요소) | 지정 위치에 요소 삽입 |
🔁 요소 수정
| 메소드 | 설명 |
|---|
set(인덱스, 새로운값) | 해당 위치의 값 변경 |
🔍 요소 반환
| 메소드 | 설명 |
|---|
size() | 리스트 크기 반환 |
get(인덱스) | 해당 인덱스의 요소 반환 |
변수명 | 전체 리스트 확인 |
❌ 요소 삭제
| 메소드 | 설명 |
|---|
remove(인덱스) | 해당 인덱스의 요소 삭제 |
🔄 [ 반복문과 ArrayList ]
일반 for문
for (int i = 0; i < 리스트.size(); i++) {
항목타입 변수 = 리스트.get(i);
}
향상된 for문 (for-each)
for (항목타입 변수 : 리스트) {
}
🧩 [ 싱글톤 패턴 ]
객체를 하나만 생성하여 사용하는 디자인 패턴
| 단계 | 설명 |
|---|
| ① | private 생성자 선언 (외부 생성 제한) |
| ② | private static final 객체 생성 |
| ③ | getInstance() 메소드로 접근 |
💡 예시
public class Example {
private static final Example instance = new Example();
private Example() {}
public static Example getInstance() {
return instance;
}
}
🔗 [ 참고 자료 ]
📄 기능 구현 시 참고 문서
👉 Google Docs 링크