Home

(자바 기초) public, private, protected 차이 완벽 가이드 - 접근 제어자 이해하기

Published in java
February 02, 2025
2 min read
(자바 기초) public, private, protected 차이 완벽 가이드 - 접근 제어자 이해하기

안녕하세요, 20년 차 자바 개발자 코딩하는곰입니다. 오늘은 자바 프로그래밍의 핵심 개념 중 하나인 접근 제어자(Access Modifiers)에 대해 깊이 있게 알아보겠습니다. public, private, protected는 자바에서 클래스, 변수, 메소드의 접근 범위를 제어하는 중요한 키워드입니다. 이 개념을 제대로 이해하지 못하면 객체지향 프로그래밍의 근간인 캡슐화를 구현하기 어렵습니다. 이 글을 끝까지 읽으시면 접근 제어자를 완벽히 이해하고 실무에 적용할 수 있을 거예요!

1. 자바 접근 제어자의 기본 개념

접근 제어자는 객체지향 프로그래밍의 4대 특징 중 하나인 ‘캡슐화’를 구현하는 핵심 요소입니다. 자바에서는 다음과 같은 4가지 접근 레벨을 제공합니다:

  1. public: 모든 곳에서 접근 가능
  2. protected: 같은 패키지 + 다른 패키지의 자식 클래스에서 접근 가능
  3. default(package-private): 같은 패키지 내에서만 접근 가능 (명시적 키워드 없음)
  4. private: 같은 클래스 내에서만 접근 가능
public class AccessExample {
public int publicVar = 1;
protected int protectedVar = 2;
int defaultVar = 3; // default 접근 제어자
private int privateVar = 4;
}

각 접근 제어자는 클래스, 인터페이스, 변수, 생성자, 메소드에 적용될 수 있습니다. 특히 중요한 것은 클래스 레벨에서는 public과 default만 사용 가능하다는 점입니다.

(자바 기초) public, private, protected 차이 완벽 가이드 - 접근 제어자 이해하기
(자바 기초) public, private, protected 차이 완벽 가이드 - 접근 제어자 이해하기


2. public vs private vs protected 상세 비교

각 접근 제어자의 구체적인 차이를 표와 예제로 살펴보겠습니다. | 접근 제어자 | 같은 클래스 | 같은 패키지 | 다른 패키지 자식 클래스 | 다른 패키지 일반 클래스 | |------------|------------|------------|-------------------------|------------------------| | public | O | O | O | O | | protected | O | O | O | X | | default | O | O | X | X | | private | O | X | X | X |

// 다른 패키지에서의 접근 테스트
package com.another;
import com.example.AccessExample;
public class TestClass {
public void test() {
AccessExample example = new AccessExample();
System.out.println(example.publicVar); // 가능
// System.out.println(example.protectedVar); // 컴파일 에러
// System.out.println(example.defaultVar); // 컴파일 에러
// System.out.println(example.privateVar); // 컴파일 에러
}
}

protected는 상속 관계에서 특히 중요한 역할을 합니다. 자식 클래스가 다른 패키지에 있더라도 부모 클래스의 protected 멤버에 접근할 수 있습니다.

(자바 기초) public, private, protected 차이 완벽 가이드 - 접근 제어자 이해하기
(자바 기초) public, private, protected 차이 완벽 가이드 - 접근 제어자 이해하기


빠르게 사칙연산만 하고 싶을 땐, 설치 없이 바로 사용할 수 있는 간단 계산기 도구가 유용합니다.

3. 실무에서의 접근 제어자 활용 전략

실제 프로젝트에서는 다음과 같은 원칙으로 접근 제어자를 사용합니다:

  1. private: 클래스 내부 구현을 숨길 때 (정보 은닉)
    • 변수는 거의 항상 private으로 선언
    • 내부에서만 사용하는 헬퍼 메소드
public class BankAccount {
private double balance; // 외부에서 직접 접근 불가
public void deposit(double amount) {
if (amount > 0) {
balance += amount;
}
}
}
  1. protected: 프레임워크 개발시 확장 포인트 제공
    • 하위 클래스에서만 접근해야 하는 메소드
    • 템플릿 메소드 패턴 구현 시
  2. public: API로 공개할 인터페이스
    • 다른 모듈과 통신해야 하는 주요 메소드
    • 라이브러리의 핵심 기능
  3. default: 패키지 내부 구현
    • 같은 패키지의 클래스들끼리 공유하는 기능
    • 내부 라이브러리 모듈 간 통신

(자바 기초) public, private, protected 차이 완벽 가이드 - 접근 제어자 이해하기
(자바 기초) public, private, protected 차이 완벽 가이드 - 접근 제어자 이해하기


스트레스 해소와 두뇌 훈련을 동시에 하고 싶다면, 편안한 분위기의 스도쿠 저니: 크립토 할아버지가 완벽한 선택입니다.

접근 제어자는 단순한 문법이 아니라 객체지향 설계의 핵심입니다. public을 남발하면 캡슐화가 깨지고, private을 지나치게 사용하면 확장성이 떨어질 수 있습니다. 여러분의 프로젝트 요구사항에 맞는 적절한 접근 레벨을 선택하는 것이 중요합니다. 이 글이 자바 접근 제어자 이해에 도움이 되셨다면 코딩하는곰 블로그를 구독해주세요! 다음 시간에는 더 유용한 자바 팁으로 찾아오겠습니다.

📣 지금 화제가 되고 있는 문화행사는 바로, 보령머드축제를 참고해보세요.









최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기
최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기



다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기
다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기



비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기
비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기




Tags

#developer#coding#java

Share

Previous Article
(자바 심화) 객체 참조와 메모리 구조 - 참조형의 동작 원리 완벽 이해

Table Of Contents

1
1. 자바 접근 제어자의 기본 개념
2
2. public vs private vs protected 상세 비교
3
3. 실무에서의 접근 제어자 활용 전략

Related Posts

(Java 예외 처리 마스터하기) 다중 catch와 예외 흐름 제어의 모든 것 - 코딩하는곰의 20년 노하우
December 16, 2025
3 min