일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- docker명령어
- 추후정리
- appspec
- application.yml
- ㅔㄴ션
- 컨테이너실행
- Query
- 네이티브쿼리
- EC2
- 적용우선순위
- subquery
- 참조키
- 테스트
- 포트
- 테스트메소드
- WeNews
- 메소드명
- 예약
- 검색
- appspec.yml
- querydsl
- AuthenticationEntryPoint
- 메세지수정
- foreignkey
- ubuntu
- MySQL
- 커밋메세지수정
- 서브쿼리
- 2 > /dev/null
- 외부키
Archives
- Today
- Total
제뉴어리의 모든것
워크스페이스/프로젝트/패키지/클래스의 개념 및 명명 규칙 본문
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("입력해주세요");
}
}
※ 매소드 명명(이름) 규칙
- 소문자로 시작
- 동사로 시작
- 두 번째 단어부터는 소문자도 되지만 대문자로 시작하는 것을 권장
소문자 시작과 대문자 시작이 강제되는 이유는 패키지.클래스 형태로 가져다 사용하기 때문에 클래스와 패키지를 구분하기 위함입니다. 마지막에 대문자로 시작되는 것을 클래스라고 생각하시면 됩니다.
결론 :
- 패키지
1. 소문자로 시작
2. 웬만하면 한단어로
3. 만약 여러 단어 쓸 경우 모두 소문자를 추천하지만
가독성을 위해 위반해도 됨.
4. 카멜 표기법쓸것
- 클래스
1. 대문자 시작
2. 명사로 시작
3. 카멜 표기법쓸것
- 메소드
1. 소문자로 시작
2. 동사로 시작
3. 카멜 표기법쓸것
'JAVA' 카테고리의 다른 글
남궁성님의 자바의 정석 정리 1 (0) | 2021.04.18 |
---|---|
java 예외처리 - throw, throws (0) | 2021.04.08 |
자바 Array 특정값으로 초기화 하는 방법 (0) | 2021.04.03 |
Arrays.copyOf , Arrays.copyOfRange 배열 복사 (0) | 2021.04.03 |
[Java] 얕은 복사와 깊은 복사 (0) | 2021.04.03 |