객체 내부 상태와 공개 API를 구분합니다.
private은 클래스 내부, package-private은 같은 패키지, protected는 패키지와 하위 클래스, public은 어디서나 접근할 수 있습니다. 필요한 최소 범위만 공개합니다.
예제에서 private field; public method() 부분부터 찾으세요. 선언 타입, 실제 객체와 반환값을 한 줄씩 따라가면서 컴파일 단계에서 잡히는 문제와 실행 중 생기는 문제를 구분하세요.
getter와 setter를 기계적으로 만들기보다 completeLesson처럼 도메인 의미가 있는 메서드가 유효성 규칙을 한곳에 모읍니다.
공개 API가 작을수록 내부 구현을 안전하게 바꾸기 쉽고 잘못된 상태를 만드는 경로도 줄어듭니다.
현재 코드를 먼저 실행해 출력과 타입 흐름을 확인한 뒤 진도가 전체 강의 수를 넘지 않게 구현하세요.
private은 보안 암호화가 아니라 컴파일 수준의 접근 규칙입니다.
직접 바꿔보세요진도가 전체 강의 수를 넘지 않게 구현하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.