티스토리 뷰

  • 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같은 기본 베이스 확인을 깔고 가던게 여기에서 도움을 주는 것 같다.

    당연히 모든 걸 한 번에 이해할 순 없지만, 이것은 내가 작은 과제부터 차근차근 해결하면 조금이나마 이해할 수 있을 것이라 믿는다. 

    그나저나 겨우 토이프로젝트 몇 개 한 것으로 신이 나있던 나를 고맙게도 겸손하게 만들어 주었다.
    자바라는 예절주입기와 더 빨리 친해지고 배우고 공부해야 할 것은 내가 죽을때까지 있을테니, 겸손함을 항상 잊지 않아야겠다.
댓글