2025/02/20 2

[Kotlin] 코틀린 문법 6 (open, 상속, 인터페이스)

Kotlin에서는 객체 지향 프로그래밍(OOP)의 핵심 개념인 상속(Inheritance)과 인터페이스(Interface) 를 지원하지만,Java와는 몇 가지 차이점이 있음. 특히 open 키워드는 Java와 Kotlin의 클래스 설계 철학의 차이를 보여주는 중요한 요소임. 🛠️ 1. open 키워드 (Java의 extends와 비교)✅ Java: 클래스와 메서드는 기본적으로 상속 가능 (final을 붙이면 금지)class Parent { void show() { System.out.println("부모 클래스"); }}class Child extends Parent { @Override void show() { System.out.println("자식 클..

BE/Kotlin 2025.02.20

[Spring Boot] Service를 Interface + ServiceImpl 구조로 사용하는 이유

Spring Boot에서 Service 계층을 인터페이스(Service)와 구현 클래스(ServiceImpl)로 분리하여 사용하는 패턴을 많이 볼 수 있음.예를 들어, 다음과 같은 구조를 가짐:📂 service ├── UserService.java (인터페이스) ├── UserServiceImpl.java (구현 클래스) 이렇게 분리하는 이유는 크게 확장성, 테스트 용이성, 유지보수성, 결합도 감소 때문임. 📌 1. Service를 Interface + ServiceImpl로 분리하는 이유✅ (1) 느슨한 결합 (Low Coupling) • 인터페이스를 사용하면 구현체를 쉽게 교체할 수 있음. • 클라이언트 코드(Controller, 다른 Service)가 UserServiceImpl을 직접 ..