JAVA | [기본] IntelliJ 프로젝트 구조 & 패키지 이해하기

맹쥐·2025년 6월 13일
8

⌨️ JAVA

목록 보기
1/1

IntelliJ 프로젝트 구조 예시

IntelliJ 화면이다.
위에서 폴더로 보이는 class1은 java에서 패키지라고 부른다.
그 아래 class 들이 속해있다.


기본 구조 맛보기

  • src/ 폴더 아래에서 패키지 단위로 클래스를 관리한다.
    💡 JAVA에서는 패키지라는 것이 새로 등장한다. 폴더 같은 개념이다.
    src 디렉토리 내부의 폴더를 그냥 패키지라고 부른다.
  • 패키지는 물리적 폴더와 1:1 매핑되어 네임스페이스를 구성한다.
  • 패키지 안에 패키지도 가능하다.

이해가 쉽게 예시를 살펴보자.

project-root/
└─ src/
   ├─ com/                  ← com 패키지
   │  └─ example/           ← com.example 패키지
   │     └─ utils/          ← com.example.utils 패키지
   │        └─ Helper.java  // package com.example.utils;
   └─ app/                  ← app 패키지
      └─ Main.java          // package app;
  • 폴더 구조처럼, com → example → utils 식으로 중첩된 폴더를 만들면
  • package com.example.utils; 같은 하위 패키지를 정의할 수 있다.

1. 패키지(package)

  • 클래스들을 논리적으로 묶어주는 네임스페이스이다.
  • 소스 최상단에 선언한다.

    여기서 “소스”라는 건 우리가 작성하는 .java 파일이다.

  • 폴더 구조와 동일해야 한다.
    쉽게 말하면, 현재 .java 파일이 위치한 곳을 package키워드로 선언한다.
    src/ 이후의 디렉터리 경로를 점(.)으로 연결해서 사용한다.

예) Helper.java 최상단에 선언해야할 것
파일 경로 : src/com/example/utils/Helper.java
선언 문구 : package com.example.utils;


2. 클래스(class)

  • 파일명 = 클래스명.java 이어야 한다.
  • 한개의 .java 파일에 public 클래스는 하나만 허용한다.

[ 기본 구조 ]

package com.example;            // 1) 패키지 선언
import java.util.List;         // 2) 다른 패키지 클래스 임포트

public class MyClass {      // 3) 클래스 선언 ‼️이 부분이 “이 파일의 하나뿐인 public 클래스‼️ 
							// 이 클래스 이름(MyClass)과 파일 이름(MyClass.java)이 반드시 같아야 한다.

    private int value;

    public MyClass(int value) {    // 생성자
        this.value = value;
    }


    public void doSomething() {   // 메서드
        System.out.println("Value = " + value);
    }

    public static void main(String[] args) { // 메서드
        MyClass obj = new MyClass(42);
        obj.doSomething();
    }
}

public을 한번만 선언할 수 있다고 했는데, 왜 여러개일까?

Class 내부에 선언되는 것들은 클래스 멤버(member) 라고 부르며,
메서드/생성자/필드라고 한다.
이들에 대해서는 여러 개의 public을 지정할 수 있다.


3. 접근 제어자

클래스와 그 안의 요소(필드·생성자·메서드)에 붙여서 어디까지 공개할지 정하는 키워드이다.

키워드같은 클래스같은 패키지하위 클래스모두 접근
public
(default)××
protected×
private×××
  • public : 완전 공개
  • default : 패키지 내부에서만(키워드를 쓰지 않으면 기본)
  • protected : 같은 패키지 + 자식 클래스에서만
  • private : 같은 클래스 내부에서만

4. 디렉터리 예시

project-root/
└─ src/
   ├─ com/
   │  └─ example/
   │     ├─ App.java        // package com.example;
   │     └─ model/
   │        └─ User.java    // package com.example.model;
   └─ util/
      └─ StringUtils.java   // package util;
  • App.javacom.example 패키지에 속해 있다.
  • User.javacom.example.model 패키지에 속해 있다.

    Java에서는 서브패키지(com.example.model)도 별도의 패키지로 취급한다.
    따라서 App.java에서 User를 쓰려면 아래처럼 반드시 import 문을 써야 한다.

import com.example.model.User;    // User.java가 속한 패키지
import util.StringUtils;          // util 패키지의 클래스
profile
이유민

0개의 댓글