포스트

4. java에 대하여

자바의 도구를 알아가보자

4. java에 대하여

지난 정리 중…

3. 웹 어플리케이션에 대하여

Application 개발 방식에는 총 3가지가 있는데

  1. 컴파일 방식
  2. 인터프리트 방식
  3. 하이브리드 방식

여기서 자바는 하이브리드 방식에 해당한다.

그럼 자바는 왜 Hybrid 방식을 취했는가?

컴파일 방식과 인터프리트의 단점

  1. 컴파일 방식의 단점
    • OS 별로 컴파일을 해야한다.
  2. 인터프리트 방식의 단점
    • 실행할 때마다 소스파일이 필요함
    • 실행할 때마다 문법 검사를 해야해서 실행속도가 느림

Hybrid의 장점

  1. 컴파일 할 때 에러 발견이 용이하다 → 컴파일 방식을 차용, 인터프리트는 컴파일 시 실행되지않으면 에러를 발견하지않음
  2. ByteCode는 기계어와 흡사하여 실행 속도가 빠르다
  3. 한 번만 컴파일 하면 여러 OS에서 실행할 수 있다.
    Write Once, Run Anywhere (한번 쓰고, 어디든 실행하자) → 자바의 존재의의, 캐치프라이즈

Java 도구

JRE(Java Runtime Environment) = JVM + 실행할 때 사용하는 도구

JDK(Java Develop Kit) = JRE + 개발 관련 도구(컴파일러, 디버거, 프로파일러, 문서생성기)

JDK 설치해보기

  1. java.oracle.com 접속 → 원하는 버전 클릭 후 자신에게 맞는 JDK 다운 및 설치

  2. path 설정하기

    window
    1. 시스템 설정 → 환경 변수 설정에서 JDK의 bin 폴더까지의 주소를 넣는다
      path는 상단부터 찾기 때문에 버전이 여러개일 경우 사용할 버전의 path를 위로 올려준다.

    2. JAVA_HOME의 시스템 변수를 새로 만들어 JDK의 폴더 주소를 넣는다 (bin 이전까지)

      상단은 현재 사용자의 변수이며 하단은 어떤 사용자든 모두 사용할 수 있는 변수이다.

    mac
    1. /usr/libexec/java_home -V 를 입력하면 현재 설치된 모든 버전의 폴더 위치가 노출된다.

      해당 사진을 보면 Library/Java/JavaVirtualMachines/jdk-17, 21…로 버전이 있다
    2. cd 만 입력하여 최상단 위치로 이동한 다음 nano .zshrc를 입력하여 zshell을 연다
      1
      
       "nano .zshrc" 
      
    3. 해당 코드를 입력 후 저장하고 닫는다 (Ctrl+O : 쓰기완료, Ctrl+X : 파일 나가기)

      1
      2
      3
      4
      
       export JAVA_HOME=$(/usr/libexec/java_home -v 21)
       //JAVA_HOME을 설정함 위치는 java 21 버전이 있는 폴더
       export PATH=$JAVA_HOME/bin:$PATH
       //JAVA_HOME/bin까지를 PATH에 설정하고 그외 $PATH들을 이어 붙인다(:PATH의 의미)
      

Java의 제품

  1. Java SE(Standard Edition)
    • JRE, Server JRE(JRE - Desktop 기능 제외), JDK가 있음
  2. Java EE(Enterprise Edition)
    • 웹 애플리케이션 개발 + 분산 애플리케이션 개발 + 자원 관리 + 웹 서비스 개발 등 도구 + 테스트용 서버를 포함함

Enterprise 용 Application 실행 요건

  1. 다중 사용자가 이용 → Web Application 제작 도구 제공 (Servlet, JSP, JSTL, EL, JSF…등)
    • 사용자1, 2, 3 ↔ Web Server ↔ App : Web Server가 실행 할 수 있는 App 개발도구를 제공함
    • JSF는 JavaScript 도구가 성장, 활성화 되면서 사실상 사장됨
  2. Application의 분산 배치
    • 분산 컴포넌트 제작 도구 제공
    • 서버, 백업 서버 ← 인사, 회계, 결재, 주문…등 여러 시스템이 하나의 서버에 들어감
      서버의 메모리 부족 등의 문제 초래
      → 시스템 별로 서버를 모두 분산하여 이용
      (장점 : 서버 다운 시 관련된 시스템만 다운 되어 업무의 안정성 증가)
    • 한 시스템에서 다른 시스템의 코드를 실행해야 함
      → 코드를 작성할 때 다른 컴퓨터에서 사용 할 수 있도록 만들어야한다
      = 분산 컴포넌트 제작 기술이 중요함 (EJB(Enterprise Java Bean) WebService REST API)
  3. Java ME(Micro Edition)
    • Embedded 애플리케이션 개발 도구
    • 대안 기술(Android Things, Smart Things 등)이 많아 망했다.
짤지식
  • bin = binery의 줄임말
  • 파일이 동일한 이름일때 .com > .exe >.bat 순서대로 찾고 먼저 존재하는 파일을 실행 함
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.