일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- mysql
- pymongo
- CRUD
- frontend
- java
- beautifulsoup
- openapi
- Project
- POST
- javascript
- OOP
- PYTHON
- json
- flask
- NAS
- Algorithm
- mongodb
- portfolio
- backend
- synology
- github
- flaskframework
- Crawling
- atlas
- requests
- body
- venv
- CSS
- fetch
- get
Archives
- Today
- Total
wisePocket
[JAVA] 기초문법 - IntelliJ IDEA 설치 - 01 본문
과거 Eclipse와 Spring 기반 plugin이 설치된 STS를 사용했었다. Eclipse 자체에 Mac 한글 입력 관련 오류가 있어서 불편했었는데,
- 아주 많은 검색을 했지만 공식적으로 해당 문제는 알고있지만 개선중이라는게 몇년이 훌쩍 지나 아마 업데이트 가능성이 낮음,
- 구름 입력기, Karabiner라는 키맵핑 프로그램으로 매크로를 사용하거나 여러 시도를 했지만 완벽하지 못함.
이번 기초 강의에서 IntelliJ를 사용하길래 이 기회에 한번 써보고 판단하는 것도 나쁘지 않다고 생각한다. 내가 편리하게 사용하면 되지만 Spring 관련 협업에 충돌, 인식 불가 등 문제가 생기면 판단해봐야겠다. 하지만 다양한 기능들을 추가적으로 지원해준다니 한번 사용해보고 느껴봐야겠다. 유료인점이 단점인것 같은데 이미 Eclipse의 한글 문제로 화딱지가 난 상태기 때문에 최소한 Eclipse와 동일하고 문제가 없으면 무조건 구독하고 사용해야겠다!!
- 학습자용 버전(Community) 다운로드 및 설치
https://www.jetbrains.com/ko-kr/edu-products/download/other-IIE.html
- 간편하게 설치하고 인트로 메뉴를 살펴본다. 깔끔하다.
- New Project(Gradle)
- Gradle이 뭐지? 생소한 단어다 Eclipse, STS할땐 이런 plugin을 설치해본적이 없는데 궁금해서 찾아봤다.
- 그래들(이하 Gradle)은 그루비(Groovy)를 기반으로 한 빌드 도구이다. Ant와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구이다.
- Ant의 특징
- XML 기반으로 빌드 스크립트를 작성한다.
- 자유롭게 빌드 단위를 지정할 수 있다.
- 간단하고 사용하기 쉽다.
- 유연하지만 프로젝트가 방대해지는 경우 스크립트 관리나 빌드 과정이 복잡해진다.
- 생명주기(Lifecycle)을 갖지 않아 각각의 결과물에 대한 의존관계 등을 정의해야 한다.
- Maven(이건 사용했다. pom.xml에 라이브러리명과 버전을 주입하면 빌드때 프로젝트에 적용시켜준다 정도)
- XML 기반으로 작성한다.
- 생명주기(Lifecycle)와 프로젝트 객체 모델(POM, Project Object Model)이란 개념이 도입됐다.
- Ant의 장황한 빌드 스크립트를 개선했다.
- pom.xml에 필요한 라이브러리를 선언하면 자동으로 해당 프로젝트로 불러와 편리하다.
- 상대적으로 학습 장벽이 높다.
- 라이브러리가 서로 의존하는 경우 복잡해질 수 있다.
- Gradle은 앞서 살펴본 Ant와 Maven이 가진 장점을 모아 만들었다. 의존성 관리를 위한 다양한 방법을 제공하고 빌드 스크립트를 XML 언어가 아닌 JVM에서 동작하는 스크립트 언어 ‘그루비’ 기반의 DSL(Domain Specific Language)를 사용한다. 그루비(Groovy)는 자바 문법과 유사하여 자바 개발자가 쉽게 익힐 수 있는 장점이 있으며 Gradle Wrapper를 이용하면 Gradle이 설치되지 않은 시스템에서도 프로젝트를 빌드할 수 있다.
- 심지어 메이븐(Maven)의 pom.xml을 Gradle 용으로 변환할 수도 있으며 Maven의 중앙 저장소도 지원하기 때문에 라이브러리를 모두 그대로 가져다 사용할 수 있다.
- Ant의 특징
- 그래들(이하 Gradle)은 그루비(Groovy)를 기반으로 한 빌드 도구이다. Ant와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구이다.
- 그래들은 전반적으로 빌드와 관련있으며, 라이브러리 의존성 주입과 관계가 있는 것으로 보여진다. 기본 코드를 통해 얼추 내용을 알 수 있었다. 우선 XML로 <>괄호가 남발하지 않아서 보기 편리해 보인다.
// 자바를 컴파일하기 위해 java plugin을 설정한다.
apply plugin: 'java'
// application으로 컴파일하기 위해 설정한다.
apply plugin: 'application'
//저장소를 입력하는 섹션이다. 주로 Maven의 저장소를 그대로 사용한다.
repositories {
mavenCentral()
}
//종속성을 입력하는 섹션이다. 기존에는 compile이 있었으나 3.0버전부터 deprecated 되었다.
dependencies {
//'group:name:version' 순으로 적는다. group: 'junit', name: 'junit', version: '4.12'식으로도 가능하다.
api 'com.google.guava:guava:22.0' //간접 의존, 직접 의존하는 모든 모듈을 rebuild 한다
implementation 'junit:junit:4.12' //직접 의존하는 모듈만 rebuild 한다.
}
application {
// 메인 class의 위치와 이름을 적는다.
mainClass = 'package.name.AppClass'
}
- JDK(Java Development Kit)를 확인해본다.
- 여기서 다시 확인해야 할 JDK, JRE
- JRE
- JRE(Java Runtime Environment)는 말 그대로 자바 실행 환경이다. JRE는 JVM 뿐만 아니라 Java binaries, Java 클래스 라이브러리 등을 포함하고 있어 자바 프로그램의 실행을 지원한다. 하지만 JRE는 컴파일러나 디버거(Debugger) 등의 도구는 포함하지 않는다. 따라서 자바 프로그램을 개발하는 것이 아니라 실행하기만 원한다면 JRE를 설치하면 된다.
- JDK
- JDK(Java Development Kit)는 말 그대로 자바 개발 키트이다. JDK는 자바 애플리케이션을 개발하기 위한 환경을 지원한다. JDK는 JRE를 포함할 뿐만 아니라 컴파일러(javac), 코드 디버깅(jdb), javadoc, jar 등 개발에 유용한 도구들을 포함하고 있다. 따라서 자바 프로그램을 개발하기 위해서는 JDK를 다운로드하여야 한다.
- 결론은 JRE는 자바 실행환경이고, JDK는 자바 개발 도구라는 것이다. 따라서 개발자들은 JDK를 다운로드 받으면된다.
- JRE
- 나는 11버전이 설치되어 있다. 8, 11, 17 등이 주로 사용된다.
- 8
- 오라클이 자바 인수 후 출시한 첫 번째 LTS 버전
- 32bit를 지원하는 마지막 공식 Java 버전
- Oracle JDK(Oracle사에서 지원하는 버전으로 유료) , Open JDK(오픈소스 기반의 무료)로 나뉨
- 새로운 날짜와 시간 API(LocalDateTime 등)
- 람다식(Lambda), Stream API
- PermGen 영역 삭제
- Static Link JNI Library
- 11
- Oracle JDK와 Open JDK 통합
- Oracle JDK가 구독형 유료 모델로 전환
- 람다 지역 변수 사용법 변경
- Third Party JDK로의 이전 필요
- HTTP 클라이언트 표준화 기능
- 17
- 가장 최신 LTS 버전
- 봉인 클래스(Sealed Class) 정식 추가
- 패턴 매칭 프리뷰 단계
- Incubator (Foreign Function & Memory API)
- 애플 M1 및 이후 프로세서 탑재 제품군에 대한 정식 지원 (Mac 유저들 환호)
- 난수 생성 API 추가
- 8
- 그런데 왜 최신 버전이 아니라 궂이 그 중 가장 오래된 8버전이나 11을 많이 사용하는 것일까?
- 2022년 사용률이다.
- 발표된 LTS 버전 중 가장 오랜 Support을 보장
- 기존 서비스와의 호환
- 현재 국내에서 개발된 프로젝트는 대다수 Java 8로 개발되어 운영하고있는 상황입니다. 그렇기에 기존 프레임워크 또는 제품들과의 호환성을 유지하고 안정적으로 운영하기 위해 이후 연관된 프로젝트들 또한 JDK 8에서 벗어나지 않고 있습니다.
- 결론적으로 일단 나는 그래도 많이들 사용하는 11버전이 설치되어 있으니 이대로 진행해본다. 문제가 발생하면 JDK 8을 설치해보기로. 우선 두개의 업데이트 차이는 정확하게 내 연습을 진행하는데 문제는 없을 것이라 생각된다.
- 궁금하긴하다. 보통 최신 버전은 옛날버전의 기능을 모두 포함하고 추가기능을 넣은것이 아닌가? 아니면 무엇인가 없어지거나 변경되서 호환에 문제가 실제로 있을까? 아니면 킷 자체가 너무 불필요하게 무거워지는가?
- 첫 연습 프로젝트 생성
- jdk 11
- Eclipse와 느낌이 다르다. 뭔가 익숙한듯 VSCode의 느낌이 나기도 한다. 그런데 Workspace 지정이 없다. 상관없는 부분인가??
- Eclipse를 오랜만에 열어본다. 너무 구식 GUI느낌이 나긴 한다.
- 가장 중요한건 한글을 바로 입력해봤는데 스페이스를 두번 안눌러도 된다.. 이것만으로 일단 만족스럽고 문제는 단축키나 주요 기능들 run, 파일찾기 등 위치를 연습하긴 해야 할듯 하다. 라인 복사, 라인 통째로 이동 같은 키도 내 손에 익은 것으로 맵핑해야겠다.
- Python을 연습하다와서 그런지 Main.java가 어색하게 보여진다 app.py...이제 파이썬은 잠시 내려놓고 Java에 집중해보자.
해당 Java 기초 연습은 아래 깃허브를 통해 업로드 됩니다.
'Java & Algorithm > Java' 카테고리의 다른 글
[JAVA] 기초문법 - "JAVA 개발 환경을 구축한다." 라는 의미와 "JRE는 그럼 뭔지?" 까지 - 06 (0) | 2023.07.24 |
---|---|
[JAVA] 기초문법 - Java란? 개발 언어 역사와 특징 요약 - 05 (0) | 2023.07.24 |
[JAVA] 기초문법 - JDK 버전 변경, IntelliJ IDEA Ultimate 설치 및 설정 - 04 (0) | 2023.07.24 |
[JAVA] 기초문법 - IDE template 설정 - 03 (0) | 2023.07.23 |
[JAVA] 기초문법 - IntelliJ IDEA 기초 설정 - 02 (0) | 2023.07.22 |