2025년 7월 16일 수요일(36일차)

Jeonghoon·2025년 7월 16일

jeonghoon's Study

목록 보기
38/128

🧠 DML & Java Inheritance 복습 정리


💾 [ DML (데이터 조작어) ]

데이터베이스 내 데이터를 추가, 조회, 수정, 삭제하는 명령어

명령어기능설명예시
🟢 INSERT저장 (Create)테이블에 새 레코드 삽입INSERT INTO member(name, age) VALUES ('홍길동', 25);
🔵 SELECT조회 (Read)특정 조건으로 데이터 조회SELECT name FROM member WHERE age > 20;
🟣 UPDATE수정 (Update)기존 레코드 수정UPDATE member SET age = 30 WHERE name='홍길동';
🔴 DELETE삭제 (Delete)레코드 삭제DELETE FROM member WHERE age < 18;

🧩 [ INSERT 문법 ]

1️⃣ 기본형태

INSERT INTO 테이블명 (속성명1, 속성명2) VALUES (1,2);

2️⃣ 모든 속성명을 사용할 경우 생략 가능

INSERT INTO 테이블명 VALUES (1,2);

3️⃣ 여러 개의 레코드 삽입

INSERT INTO 테이블명 VALUES (1,2), (3,4), (5,6);

🔍 [ SELECT 문법 ]

문법설명예시
SELECT * FROM 테이블명;전체 속성 조회전체 데이터 출력
SELECT 속성명1, 속성명2 FROM 테이블명;특정 속성 조회SELECT name, age FROM member;
SELECT 속성명 FROM 테이블명 WHERE 조건절;조건에 맞는 레코드 조회SELECT * FROM member WHERE age >= 30;

💡 조회 결과는 항상 테이블 형태로 반환된다.
원본 테이블에는 영향을 주지 않는다.


⚙️ [ UPDATE 문법 ]

MySQL Workbench에서는 safe mode가 활성화되어 있으면 수정/삭제가 불가능함
해제 명령어 👉 SET SQL_SAFE_UPDATES = 0;

문법설명예시
UPDATE 테이블명 SET 속성명 = 새로운값;전체 레코드 수정UPDATE member SET age = 20;
UPDATE 테이블명 SET 속성명 = 새로운값 WHERE 조건절;조건에 맞는 레코드 수정UPDATE member SET age = 35 WHERE name='철수';
UPDATE 테이블명 SET 속성명1=값1, 속성명2=값2;다수 속성값 수정UPDATE member SET name='영희', age=28;

🗑️ [ DELETE 문법 ]

문법설명예시
DELETE FROM 테이블명;전체 레코드 삭제DELETE FROM member;
DELETE FROM 테이블명 WHERE 조건절;조건에 맞는 레코드 삭제DELETE FROM member WHERE name='홍길동';

🧬 [ Java 상속 (Inheritance) ]

상위 클래스의 멤버(변수, 메소드)를 하위 클래스가 물려받는 구조

구분내용
🧠 정의상위 클래스로부터 멤버변수/메소드를 하위 클래스가 상속
🎯 목적코드 재사용, 유지보수 용이성, 계층 구조 표현
🔑 키워드extends
⚙️ 장점재사용성 ↑ / 유지보수성 ↑ / 다형성 구현
🚫 제한사항상위 클래스는 1개만 지정 가능 (단일 상속)

📘 사용법

class 자식클래스 extends 부모클래스 {
    // 상위클래스의 멤버를 그대로 사용 가능
}

🔁 [ 다형성 (Polymorphism) ]

같은 코드 형태지만 다양한 동작을 수행하는 성질

🧩 자동 타입변환 (Upcasting)

구분설명예시
🔹 기본 타입작은 범위 → 큰 범위 자동 변환int → long → float → double
🔹 참조 타입하위 → 상위 클래스 자동 변환Child → Parent

📘 예시 코드

Parent p = new Child();  // 자동 타입변환
p.method();              // Child의 오버라이딩된 메소드 실행

🔸 강제 타입변환 (Downcasting)

구분설명예시
🔹 기본 타입큰 범위 → 작은 범위 강제 변환(int) 3.14
🔹 참조 타입상위 → 하위 타입 강제 변환Child c = (Child) p;

⚠️ 단, 객체의 최초 타입이 하위 클래스여야 함!


🧠 [ 상속 구조 예시 (객체 생성 흐름) ]

예시생성 객체설명
🐔 닭 객체닭, 조류, 동물하위 클래스 생성 시 상위 클래스 모두 생성됨
🐦 참새 객체참새, 조류, 동물형제 클래스 간 변환 불가
🕊️ 조류 객체조류, 동물하위 객체(닭 등)로 변환 불가

💡 [ 상속 활용처 ]

사용처설명
🌐 웹/앱 라이브러리표준화된 구조 설계에 사용
🧩 클래스 설계멤버변수가 중복되는 경우 상속화
🔧 코드 재사용반복되는 코드 → 메소드화

✨ [ 느낀점 ]

1️⃣ 주석처리 잘하기 — 협업 시 가독성 향상
2️⃣ API 명세서는 프로젝트의 핵심 문서! 수정 시 반드시 갱신
3️⃣ 코드 오류 시, 명세서를 다시 확인하고 단계별로 점검
4️⃣ 중복 코드는 최소화하고 메소드화로 구조화하기


0개의 댓글