java
CHAPTER 16 / 69
읽기 약 2분
SYNTAX
인터페이스와 추상클래스
핵심 개념
인터페이스: 구현을 강제하는 계약. implements 사용.
추상클래스: 일부 구현 포함 가능. extends 사용.
Spring @Repository, @Service는 인터페이스 기반 설계.
인터페이스로 느슨한 결합(loose coupling)을 달성한다.
코드 분석
// 인터페이스
interface Payable {
void pay(int amount);
default String getType() { return "UNKNOWN"; } // default 메서드
}
// 추상 클래스
abstract class Account {
protected String owner;
public Account(String owner) { this.owner = owner; }
public abstract int getBalance();
public void printInfo() {
System.out.println(owner + ": " + getBalance() + "원");
}
}
class BankAccount extends Account implements Payable {
private int balance;
public BankAccount(String owner, int balance) {
super(owner);
this.balance = balance;
}
@Override
public int getBalance() { return balance; }
@Override
public void pay(int amount) {
balance -= amount;
System.out.println(amount + "원 결제 완료. 잔액: " + balance);
}
@Override
public String getType() { return "BANK"; }
}AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude
무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6
이 Spring '인터페이스와 추상클래스' 코드에서 DI 관련 버그·순환 참조·트랜잭션 누수를 찾아서 수정해줘.
ChatGPT
무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro
'인터페이스와 추상클래스'를 Spring Boot 3.x로 구현한 실전 API 코드(컨트롤러+서비스+레포지토리+테스트)를 완성형으로 만들어줘.
Gemini
무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro
이 Spring '인터페이스와 추상클래스' 프로젝트의 빈 구조와 의존성 트리를 전체 분석하고 N+1 쿼리·순환 참조·성능 병목을 정리해줘.
Grok
무료: Grok 4.1 / SuperGrok $30/mo
Spring '인터페이스와 추상클래스' vs Quarkus·Micronaut·Ktor의 동일 기능 구현을 2026년 한국 채용 시장 기준으로 솔직히 비교해줘.
⭐ 이것만 기억하세요
인터페이스와 추상클래스는 이 3가지만 확실히 잡으세요
1.구체 클래스에 직접 의존하면 구현을 교체할 때 호출하는 곳을 전부 수정해야 합니다
2.인터페이스는 '무엇을 할 수 있는가'의 계약이고, 추상클래스는 '부분 구현을 공유'하는 골격입니다
3.다음 챕터에서 예외처리를 심화 학습합니다
공유하기
진행도 16 / 69