2025년 7월 18일 금요일(38일차)

Jeonghoon·2025년 7월 18일

jeonghoon's Study

목록 보기
40/128

🧠 SQL & Java Interface 복습 정리


🧩 [ SQL 기초 문법 정리 ]

자주 사용되는 SQL 핵심 문법 정리표

번호구문설명예시
1️⃣별칭 (AS)속성명이나 테이블명에 별칭 부여SELECT name AS 이름 FROM member AS m;
2️⃣중복제거 (DISTINCT)중복된 데이터를 제거SELECT DISTINCT city FROM member;
3️⃣산술연산자수학 연산 수행+, -, *, /, DIV, MOD
4️⃣비교연산자두 값 비교>, <, >=, <=, =, !=
5️⃣논리연산자여러 조건 결합AND, OR, NOT
6️⃣기타연산자조건 검색BETWEEN A AND B, IN(...), IS NULL
7️⃣문자패턴LIKE 구문으로 문자 비교'김%', '김_'
8️⃣정렬 (ORDER BY)결과를 정렬ORDER BY age DESC;
9️⃣개수 제한 (LIMIT)결과의 개수를 제한LIMIT 0, 10;
🔟작성 순서SQL 문장 기본 구조SELECT → FROM → WHERE → ORDER BY → LIMIT

📄 문자패턴 예시

패턴설명예시
%문자 개수 무관LIKE '김%' → 성이 김씨인 사람
_문자 1개 대응LIKE '김_' → 외자인 사람

📊 [ 그룹 / 집계 함수 (GROUP & AGGREGATE) ]

구분함수명설명
🧩 그룹화GROUP BY특정 속성을 기준으로 데이터를 그룹화
📈 합계SUM(속성명)속성의 총합 반환
📊 평균AVG(속성명)속성의 평균값 반환
🔽 최솟값MIN(속성명)속성 중 최소값 반환
🔼 최댓값MAX(속성명)속성 중 최대값 반환
🔢 레코드 개수COUNT(속성명)NULL 제외한 레코드 개수
⚙️ 전체 개수COUNT(*)NULL 포함 전체 레코드 개수

📘 예시

SELECT name, SUM(price)
FROM buy
GROUP BY name;

🧱 [ 인터페이스 (Interface) ]

상수와 추상메소드를 포함하는 하나의 타입(규약)

구분설명
🧩 상수(Constant)초기값 필수, 변경 불가
🧠 추상메소드(Abstract)구현체에서 반드시 구현
⚙️ 객체 생성 불가생성자가 없어 직접 객체 생성 불가
🔗 변수 선언 가능인터페이스 타입으로 참조 가능

💡 인터페이스 내 메소드 종류

종류설명오버라이딩 여부
🧱 추상 메소드구현체에서 반드시 구현해야 함⭕ 가능
⚙️ 디폴트 메소드기본 구현 제공 가능⭕ 가능
정적 메소드인터페이스명.메소드명() 형태로 호출❌ 불가능
🔒 private 메소드인터페이스 내부에서만 사용 가능❌ 불가능
🔒⚡ private static 메소드내부 전용 정적 메소드❌ 불가능

🧩 인터페이스 구현 예시

interface Animal {
    void sound();
    default void info() { System.out.println("동물 인터페이스"); }
}

class Dog implements Animal {
    public void sound() { System.out.println("멍멍"); }
}

💡 익명 구현체

Animal cat = new Animal() {
    public void sound() { System.out.println("야옹"); }
};
cat.sound();

🧠 [ 팀프로젝트 회고 및 개선점 ]

번호개선 포인트설명
1️⃣싱글톤 구성DTO를 제외한 모든 클래스는 싱글톤으로 설계
2️⃣캡슐화 강화모든 멤버변수는 private으로 선언
3️⃣DTO 기본구성기본생성자, 전체생성자, getter/setter 포함
4️⃣설계 전 한글로 로직 정리구현 전 개념 정리로 코드 흐름 명확화
5️⃣API 명세서 관리변경 시 즉시 수정하여 팀 간 혼선 방지
6️⃣로그 확인 습관화soutm, soutp, soutv 적극 활용
7️⃣공통 규칙 정립코딩 컨벤션과 파일 구조를 통일

0개의 댓글