-
[Java] Project 생성 및 구조Language/Java 2023. 2. 1. 17:08
(●ˇ∀ˇ●)
새로운 마음으로 공부하고자 마음 먹은 1일차
오늘은 이클립스 Java Project 의 구성, Java Directory 의 구조에 대해서 공부를 해보려고!!
이클립스에서 자바를 프로젝트를 사용할 때,
매번 만들어져있는 프로젝트를 이용하거나
아무 생각 없이 이용을 했던 것 같아.
나만 그랬나..?;;ㅎ
가끔 프로젝트 환경설정이나 구조에 관련된 에러들을 맞닥뜨려서 헤매거나
이 폴더는 어떤 역할을 하는지 궁금할 때가 있었는데 이번 기회에 정리를 해보려고 해.
시작하기에 앞서서 움.. 코테 공부해서 돌려볼 자바 프로젝트를 하나 만들어보려고
(나중에 Git 도 정리해봐야겠어..!)
Eclipse Project 생성
JDK 버전 확인하고, Working sets 확인하고
일단 생성을 하긴 했는데, 이거야 뭐.. 클릭 몇 번 톡톡하면 되는거잖아??
내가 궁금했던 건.. 어떤 구조인지 머리에 그려지지가 않더라구.
src 에는 뭐가있고, bin 에는 뭐가 있고,,
사실 워크스페이스, 워킹셋츠, 프로젝트, 패키지, 클래스.. 대충은 알고 있다고 하지만
누가 물어봤을 때 자연스럽게 이해를 시키면서 알려줄 자신은 없었어.
(학교 다닐 때, 교수님이 항상 그림으로 그리면서 공부하고 남에게 설명 할 수 있을 정도가 되야한다고..
그땐.. 참 유치한 소리같았는데.. 어느정도 맞는 것 같기도 하더라고..😏)
JRE & JDK
[ JRE : Java Runtime Environment ]
- JRE는 자바 실행 환경(Java Runtime Environment)의 약자이다.
- 자바 가상 머신 JVM (Java Virtual Machine) 뿐만 아니라
자바 프로그램을 실행하는데 필요한 Java binaries, Java 클래스 라이브러리, 각종 API 등이 포함되어 있다. - But, JRE 는 compiler나 Debuuger 등의 도구는 포함하지 않는다.
JRE는 자바로 "개발(쓰기)은 안되고 실행(읽기)만 된다" 라고 이해하면 된다.
[ JDK : Java Development Kit ]
- JDK는 자바 개발 키드(Java Development Kit)의 약자이다.
- 이름 그대로 Java Application을 개발하기 위한 환경을 지원한다.
- JDK 안에는 JRE 뿐만 아니라 javac(컴파일러), javadoc(소스 주석을 문서화하는 명령어), jar 등 개발에 필요한 도구들을 포함하고 있다.
→ Java 를 직접 개발할 경우에는 JDK 가 필요하고, Java 프로그램을 실행시켜야 하는 경우에는 JRE 가 필요하다.
Working sets
- project 를 그룹지어 구분하는 분류
- 아래와 같이 분류를 Working Sets 로 구분할 수 있다.
Project 파일 및 폴더 구조
[ 공통 명명 규칙 ]
- 대소문자가 구분되며 길이에 제한이 없다.
- 예약어(이미 시스템에서 사용되고 있는 용어) 사용 불가
- 숫자로 시작 불가
- 특수문자는 '_', '$' 만 가능
- 파스칼 표기법(PascalCase)과 카멜 표기법(camelCase)을 사용한다.
[ WorkSpace ]
- 하나의 전체 프로그램 단위이다.
- 볼륨이 큰 프로젝트는 여러 개의 project 로 구성될 수 있다.
- 아무리 큰 프로그램이라도 workspace 는 1개이고, 하위에 여러 project 가 속할 수 있다.
- 명명 규칙은 공통을 따른다 (보통은 대문자로 시작한다.)
[ Project ]
- 하나의 실행파일 단위이다.
- Project 안에는 상위/하위 package가 존재한다
- 보통 대문자로 시작하여 명명한다.
[ Package ]
- 클래스를 기능별로 묶어둔 단위이다.
- 단일 패키지도 사용 가능하고, 상위/하위로 구분하여 트리형태도 가능하다.
- 폴더 구조는 상위 내부에 하위 패키지가 속한다.
- Java의 소스코드 "*.java"는 project 내부의 src 의 package 안에 위치한다.
- Java의 컴파일된 class파일 "*.class"은 project 내부의 bin 의 package 안에 위치한다. (이동이 가능하다)
- 보통 소문자를 사용하여 명명한다.
[ Class ]
- 실제 코드를 모아둔 소스 파일이다.
- 실제로 소스코드를 작성하는 것은 compile 하여 class 파일을 생성하는 것이다.
- 파스칼 표기법을 사용하며 명사로 시작한다.
[ + Interface ]
- 형송사를 사용하며 특별한 접두사나 접미사를 사용하지 않고 파스칼 표기법을 사용한다. ( Runnable … )
[ + Methods ]
- 카멜 표기법을 사용하며 동사로 시작한다. ( getBook, setBook … )
평소에 생각 안했던 것들이라서 그런지 정리하다보니 아직 내가 공부할게 참 많구나 느껴졌어
(이상한 폴더들 안에 있는 것들도 궁금하고 서버 관련 파일들도 궁금하고.. 뭔가 알수록 더 흥미로워지는 듯..?!)
다음에는 여러 폴더들안에 있는 것들이 어떤 역할들을 하는지 상세하게 정리를 해봐야겠어..
Ref.
## JDK&JRE
https://coding-factory.tistory.com/826
## Working sets
https://dololak.tistory.com/451
## 워크스페이스/프로젝트/패키지/클래스의 개념 및 명명 규칙
https://codevang.tistory.com/76
https://udpark.tistory.com/132
https://dkswnkk.tistory.com/539
## 패기지에 대한 추가 내용
'Language > Java' 카테고리의 다른 글
[Java] Lombok 이란? (0) 2023.10.27