▸JAVA/기본 상식

워크스페이스/프로젝트/패키지/클래스의 개념 및 명명 규칙

코데방 2019. 12. 9.
728x90

C에서 JAVA로 넘어오니, 해당 개념이 헷갈려서 정리해봅니다. 이클립스 기준입니다.

먼저 전체적인 구조는 아래와 같습니다. 실제 우리가 코딩을 하는 부분은 모두 "클래스(Class)"입니다. 나머지는 분류를 위한 일종의 카테고리라고 볼 수 있습니다.

 

 

 


 

※ 공통 명명 규칙
- 대소문자 구분이 됨
- 예약어(시스템에서 이미 사용하고 있는 이름)를 사용하면 안됨
- 숫자로 시작할 수 없음
- 특수문자는 '_'(언더바), '$'만 사용가능

 


 

[ 워크스페이스(WorkSpace) ]

  • 하나의 프로그램 단위
  • 규모가 큰(기능이 많은) 프로그램은 여러 실행파일(프로젝트)로 이루어질 수 있음
  • 가장 상위 폴더로 생성됨

 

※ 워크스페이스 명명(이름) 규칙
  - 공통규칙에 따름

 


 

[ 프로젝트(Project) ]

  • 하나의 실행파일 단위
  • 하나의 실행 파일을 생성하기 위한 단위라고 할 수 있음
  • 워크스페이스의 하위 폴더로 생성됨

 

※ 프로젝트 명명(이름) 규칙
  - 대소문자 구분 없이 시작 가능
  - 첫 문자를 비롯해 모든 단어는 대문자로 시작하는 것을 권장

 


 

[ 패키지(Package) ]

  • 클래스를 기능별로 묶어둔 일종의 카테고리
  • 하나의 패키지만 만들 수도 있고 "상위 패키지.하위패키지" 형태로 트리 구조를 만들 수 있음
  • 상위 패키지 폴더 아래 하위 패키지 폴더가 생성됨
  • 소스코드를 저장하는 ".java"파일의 패키지는 프로젝트 폴더 아래 "src"폴더에 저장됨
  • .java파일을 컴파일해서 생성된 ".class"파일의 패키지는 프로젝트 폴더 아래 "bin"폴더에 저장됨

src, bin폴더 저장은 기본 설정일 경우 (변경 가능)

 

※ 패키지 명명(이름) 규칙
  - 단어 갯수 상관없이 소문자로 시작
  - 모두 소문자로 사용하는 것을 권장 (가독성을 위해서는 위반해도 됨)
  - 가급적 한 단어 사용을 권장 (상위 패키지 한단어, 하위 패키지 한단어씩)
  - 여러 사람 또는 기업과 협업할 경우 표준 패턴을 따름 (개인용으로 쓸 때는 무의미)
  - 표준패턴 : com.회사이름(또는 개인이름).프로젝트명.상위패키지.하위패키지.클래스

 


 

[ 클래스(Class) ]

  • 비슷한 유형의 메소드(함수)와 변수를 모아놓은 소스코드
  • 실제로 작성된 가장 하위의 소스코드 파일
  • 이클립스 에디터에 작성하는 코딩은 하나의 클래스를 생성하는 작업임
  • 클래스가 속한 마지막 패키지의 폴더에 저장됨
  • 클래스의 파일명은 클래스의 이름과 동일해야 함

 

※ 클래스 명명(이름) 규칙
- 대문자로 시작
- 명사로 시작
- 두 번째 단어부터는 소문자도 되지만 대문자로 시작하는 것을 권장

 


 

[ 메소드(methods ]

  • 클래스에 정의 되어 있는 함수
  • 하나의 클래스에서 다른 클래스의 함수를 실행할 때 실제로 이 메소드를 실행하는 것
  • 패키지A.패키지B.클래스C.메소드(arguments)의 형태로 불러와서 실행함

아래 예시에서는 "showInputDialog()"라는 메소드를 호출하기 위해 "javax.swing"의 패키지에 들어있는 "JOptionPane" 클래스를 import해주게 됩니다. 기본 제공되는 패키지 말고 다른 사람이 만든 라이브러리(패키지의 집합)를 삽입할 때도 마찬가지입니다.

package study.input;

import javax.swing.JOptionPane;

public class InputTest {

	public static void main(String[] args) {

		String id = JOptionPane.showInputDialog("입력해주세요");

	}
}

 

※ 매소드 명명(이름) 규칙
  - 소문자로 시작
  - 동사로 시작
  - 두 번째 단어부터는 소문자도 되지만 대문자로 시작하는 것을 권장

 



소문자 시작과 대문자 시작이 강제되는 이유는 패키지.클래스 형태로 가져다 사용하기 때문에 클래스와 패키지를 구분하기 위함입니다. 마지막에 대문자로 시작되는 것을 클래스라고 생각하시면 됩니다. 

728x90

댓글

💲 추천 글