티스토리 뷰
- problem
자바의 기본 구성이 어떻게 되는지! gradle은 뭔지!! jdk는 또 뭔지! - what I tried
자바의 파일 구성을 훑어보며 모르는 내용을 검색하고 찾아보았다. - my answer
- 모듈은 뭘까? 모듈은 왜 쓸까?
먼저 모듈은 패키지의 캡슐화를 보완하기 위해 등장했다.
클래스는 패키지 내부에 숨길 수 있는데, 패키지는 어디에 숨겨둘까!
어디에 숨겨두고 내부에서만 사용할 수 있는 방법이 없었기 때문에 문법적으로 패키지를 숨기기 위해 모듈이라는게 만들어 졌다고 한다.
자바 프로젝트를 실행시켰을 때 내부 디렉토리를 봐도 알 수 있듯이,
모듈 - 패키지 - 클래스 - 인스턴스 의 흐름으로 그 관계를 대략적으로 이해할 수 있었다.
- jdk?
자바의 3대 구성요소 중 하나! jdk / jvm / jre.
자바를 개발하기 위한 도구로 쉽게 설치 가능한 것에는 openJDK와 oracleJDK가 있다.
여기에서 JVM은 자바 가상 기계로, 이게 있어서 바이트 코드 파일을 다양한 운영체제에서 수정하지 않고 사용할 수 있게 해 준다.
기계라고 하는데 하드웨어는 아니고, JDK에 포함된 소프트웨어다.
JRE는 자바의 런타임 환경인데, 런타임 환경이란 쉽게 설명하면 다른 소프트웨어를 실행하기 위한 소프트웨어라고 할 수 있다.
JDK를 다운로드하면 항상 호환 버전의 JRE가 포함되고 그 JRE에서 기본 JVM이 포함된다!
물론 JRE를 별개로 다운로드 할 수 있지만, 나처럼 초심자는 이유없이 굳이 그럴 필요는 없다.
- gradle? maven?
난 지금 인텔리제이를 쓰고 있는데 프로젝트를 생성할 때 막힌 부분이 있었다.
gradle? maven? intellij? 빌드 관리 도구라는데 이게 뭘까?
일단 지금 단계에서 나의 필요와 접목시켜 이해한 내용으로는,
내가 프로젝트에서 작성한 자바 코드나 기타 파일을 JVM이 인식할 수 있도록 하는 과정(빌드)을 자동화 해주는 도구라고 이해했다.
(아직 자바에서의 라이브러리 사용은 경험하지 못했으니 라이브러리를 자동으로 다운로드 해 준다는 내용은 대략적으로 파악만 하였다. JS나 python과 비슷할 수도 있지만, 아닐 수도 있으니까.)
이제 이런 툴의 종류로 maven과 gradle이 등장한다. (인텔리제이는 자체 빌드 툴이라는데 대중적으로 사용되는 것은 아닌 듯 하여 넘어가기로 했다.)
나온 시기로만 치면 maven이 먼저 등장하고 그 다음 gradle이 등장했다는 것.
따라서 오픈 소스 사용시에 maven을 이용하는 것이 더 많을 수 있다는 것에 maven의 장점이 있고,
gradle은 후발주자인 만큼 더 좋은 성능을 가지고 있다고 한다.
(아직 뭣도 모르지만 gradle과 maven의 코드를 비교한 것을 봤는데 gradle이 딱 보기에도 매우 간결하고 읽기도 훨씬 쉬워보였다. 근데 뭘 알고 하는 말은 아니다ㅠ) - I learned!
영상 제작자의 습관이 남아있던 걸까! 항상 resolution이나 ratio, framerate같은 기본 베이스 확인을 깔고 가던게 여기에서 도움을 주는 것 같다.
당연히 모든 걸 한 번에 이해할 순 없지만, 이것은 내가 작은 과제부터 차근차근 해결하면 조금이나마 이해할 수 있을 것이라 믿는다.
그나저나 겨우 토이프로젝트 몇 개 한 것으로 신이 나있던 나를 고맙게도 겸손하게 만들어 주었다.
자바라는 예절주입기와 더 빨리 친해지고 배우고 공부해야 할 것은 내가 죽을때까지 있을테니, 겸손함을 항상 잊지 않아야겠다.
'Learned!' 카테고리의 다른 글
221221 String 비교할때 == 말고 equal (0) | 2022.12.21 |
---|---|
[bootCamp][항해99] 2주차 마무리 - 자바를 왜 쓸까? (0) | 2022.12.18 |
[bootCamp][항해99] 1주차 마무리 - 쿠키와 토큰, 왜 JWT? (0) | 2022.12.11 |
221210 댓글기능 구현 (0) | 2022.12.10 |
221207 pymongo사용시 TypeError: 'Collection' object is not callable 에러 (0) | 2022.12.08 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프로그래머스
- pessimisticlock
- 토큰
- jwt
- 부하테스트시나리오
- 항해
- 자바
- CheckedException
- Lock
- jmeter테스트
- jmeter토큰
- 인덱스
- jmeter쿠키
- jmeter부하테스트
- Redis
- Java
- 동적크롤링
- CorrectnessAndTheLoopInvariant
- bankersRounding
- Python
- jmeter로그인
- jmeter시나리오
- hackerrank
- Spring
- jmeter세션
- 스프링faker
- Redisson
- 대규모더미데이터
- EC2
- index
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함