프로모션
학습
강좌
과제
설문 & 퀴즈
게임
도움말
일정
커뮤니티
사용자
포럼
채팅
아티클
성공 사례
활동
후기
구독
라이트 테마
강의
리뷰
회사 소개
시작
학습 시작
Start learning now
진행 상황
코스
퀘스트 맵
레슨
Java 25
모든 퀘스트
모든 레벨
추상화와 계층 구조 구현
JAVA 25 SELF
레벨 19,
레슨 2
Java에서 클래스 계층을 구성하는 실무 가이드: 추상화에서 구체로. 도형, 미니 편집기, 결제, 교통 수단 예제로 공통점을 기본
abstract
-클래스에 올리고,
area()
/
draw()
같은 메서드를 재정의하며, 기존 코드를 고치지 않고 시스템을 확장하고 중복을 피하는 방법을 보여줍니다. 마지막으로 흔한 실수와 설계 팁을 정리합니다.
실제 과제에서 추상화를 설계하는 예제
JAVA 25 SELF
레벨 19,
레슨 3
실제 시나리오에 추상화를 적용해 봅니다: 결제, 운송, 그래픽 에디터. 공통 동작을 기본
abstract
클래스에 추출하고, 공통 계약을 통해 작업하며, 분기문이 많은 코드를
if
-
else
대신 다형성으로 바꾸는 방법을 보여줍니다. 그 과정에서
process()
,
move()
,
draw()
/
resize()
같은 메서드를 일관되게 호출해 코드의 유연성과 확장성을 확보하는 방법을 확인합니다.
추상화를 통한 복잡한 시스템 단순화
JAVA 25 SELF
레벨 19,
레슨 4
복잡한 애플리케이션을 추상화 계층(UI, 비즈니스 로직, 데이터 액세스)으로 나누어 코드가 이해하기 쉽고 확장 가능하도록 만드는 방법. 실습으로 미니 task‑manager를
Task
,
TaskRepository
,
TaskService
계층으로 구축하고, 구현 교체 방법과 팀에 주는 이점을 보여 줍니다. 베스트 프랙티스, 흔한 실수, 그리고
OrderService
/
OrderRepository
서비스와
saveOrder()
및
findUserById()
같은 메서드 예시를 살펴봅니다.
인터페이스의 개념과 선언 문법
JAVA 25 SELF
레벨 20,
레슨 0
이 강의에서는 Java에서 인터페이스가 무엇인지, 키워드
interface
로 어떻게 선언하는지, 클래스가
implements
를 통해 어떻게 계약을 구현하는지, 그리고 기본적으로 메서드가 왜
public
abstract
로 간주되는지 배웁니다. 인터페이스와 클래스의 차이, JDK의 예시들(
Comparable
,
Runnable
,
Serializable
), 시각적 다이어그램, 그리고 흔한 실수도 함께 살펴봅니다.
인터페이스와 추상 클래스의 차이
JAVA 25 SELF
레벨 20,
레슨 1
이 강의에서는 Java에서 인터페이스와 추상 클래스를 비교합니다: 언제 무엇을 선택해야 하는지, 기능과 제약이 어떻게 다른지, 각 시그니처(
abstract class
와
interface
)가 어떻게 생겼는지,
public
,
abstract
,
static
같은 한정자가 무엇을 의미하는지, 그리고 JDK의 예시, 실무 사례, 흔한 오류(상속, 구현,
implements
/
extends
사용)도 함께 살펴봅니다.
인터페이스 다중 구현
JAVA 25 SELF
레벨 20,
레슨 2
이 강의에서는 하나의 Java 클래스가 여러 인터페이스를 동시에 구현하는 방법을 다룹니다: 키워드
implements
를 사용하는 문법, 역할의 결합(예:
Movable
,
Attackable
,
Serializable
), 메서드 시그니처의 일치, “다이아몬드 문제”가 없다는 점, 그리고
default
메서드 충돌 시 어떻게 처리할지. 실용적인 예제와 흔한 실수에 대한 분석을 제공합니다.
함수형 인터페이스: @FunctionalInterface
JAVA 25 SELF
레벨 20,
레슨 3
이 강의에서는 함수형 인터페이스가 무엇인지(추상 메서드가 정확히 하나), 왜 그리고 어떻게 애너테이션
@FunctionalInterface
로 표시하는지,
default
및
static
메서드로 어떤 보완이 허용되는지, 그리고 이러한 인터페이스를 실제로 어떻게 사용하는지(일반 클래스와 익명 클래스)까지 다룹니다.
Runnable
,
Comparator<T>
,
java.util.function
의 인터페이스 예시와 함께 표와 흔한 실수 분석을 제공합니다.
Java 아키텍처의 인터페이스, 디자인 패턴
JAVA 25 SELF
레벨 20,
레슨 4
인터페이스가 코드를 유연한 아키텍처로 바꾸는 방법: 추상화에 맞춰 프로그래밍하고,
DI
로 의존성을 주입하며, 테스트에서 구현을 대체하고, 코어를 수정하지 않고도 새로운 동작을 추가합니다 (
OCP
). 인터페이스가
Observer
,
Strategy
,
Command
패턴의 기반이 되는 방식을 살펴보고, 예제(
UserRepository
,
NotificationSender
, 결제 전략)로 실습을 보여줍니다.
람다 표현식 소개
JAVA 25 SELF
레벨 21,
레슨 0
이 강의에서는 Java의 람다 표현식을 다룹니다: 무엇이며 왜 필요한지, 문법과 축약 규칙은 어떻게 되는지, 람다가 함수형 인터페이스 (
@FunctionalInterface
)와 어떻게 연결되는지, 익명 클래스와 무엇이 다른지, 그리고 변수 캡처(
final
/ effectively final)가 어떻게 동작하는지 설명합니다.
Runnable
,
Consumer
,
Comparator
,
Function
및 Stream API의 실습 예제로 더 짧고 읽기 쉬운 코드를 쓰는 방법을 확인합니다. 마지막에는 “자주 하는 실수”와 이를 피하는 요령으로 마무리합니다.
Method References (::): 메서드 참조
JAVA 25 SELF
레벨 21,
레슨 1
Java에서 메서드 참조에 대한 간단한 가이드: 어디에서, 어떻게
method reference
를 람다 대신 사용할지. 4가지 형태를 다룹니다:
Klass::metod
(정적 및 “인스턴스 대상”),
obekt::metod
,
Klass::new
. 함수형 인터페이스와의 시그니처 매핑을 이해하고, 람다식과 비교하며,
forEach
,
sort
,
map
과 함께하는 실용 예제를 보고, 흔한 실수(시그니처 불일치, 메서드 오버로딩 등)를 논의합니다.
인터페이스의 default 메서드
JAVA 25 SELF
레벨 21,
레슨 2
이 강의에서는 Java 8에서 인터페이스에
default
메서드가 왜 도입되었는지, 그것들이 기존 코드를 깨뜨리지 않고 API를 발전시킬 수 있게 해 주는 방법, 그 문법(반환 타입 앞의 키워드
default
)과 구현 시 동작을 다룹니다. 표준 라이브러리의 예(
List
:
forEach
,
replaceAll
,
sort
)로 실무 적용을 살펴봅니다. 제한 사항도 논의합니다:
Object
의 메서드(
equals
/
hashCode
/
toString
)는 가릴 수 없으며, 다중 구현 시 충돌 해결 규칙과 흔한 실수들도 다룹니다.
인터페이스의 static 메서드
JAVA 25 SELF
레벨 21,
레슨 3
Java의 인터페이스가 왜 그리고 어떻게
static
메서드를 갖게 되었는지 살펴봅니다: 선언 문법,
default
메서드와의 차이, 핵심 제약사항(상속되지 않음, 재정의 불가, 인터페이스 이름으로만 호출,
static
멤버에만 접근, Java 9+의
private static
지원). 실전 예제로
Movable.resetPosition()
, 보조용
Logger
, 컬렉션 팩토리
List.of()
/
Set.of()
/
Map.of()
와 유틸리티
Comparator.reverseOrder()
를 다룹니다. 마지막에는 흔한 실수와 예방법을 정리합니다.
더 보기
1
...
9
10
11
12
13
...
30
Please enable JavaScript to continue using this application.