Java

Java 입문 전 알아두면 좋은 것

yerinpark 2023. 11. 14. 17:33

관련 용어

IDE(Integrated Development Environment)

통합 개발 환경

 

e.g.

이클립스 - eclipse.org

인텔리제이 - jetbrains.com

 

 

JDK

Java Development Kit의 약어이다.

작성한 코드를 컴파일하고 실행해주는 역할을 수행한다.

 

  • Compiler를 비롯한 개발에 필요한 여러 도구 + JRE(실행 도구)
  • 컴파일러 : Java source를 byte code로 변환(단, 문법적 오류가 없는 경우)
  • 인터프리터 : byte code인 class확장자 파일로 실행

 

JRE(Java Runtime Environment)

JVM + API(Application Programming Interface, library)

 

 

 

JDK

  • JRE
    • JVM
    • API
  • API 문서 작성 유틸리티
  • 컴파일러

 

 

JDK의 종류

c.f. Java source code 자체는 open source이므로 빌드하여 사용할 때는 거의 제약이 없지만 Oracle에서 제공하는 설치 버전의 JDK는 라이센스 문제로 제약이 따른다.

 

1. Oracle JDK

  • 구독을 통해 유료 라이센스를 구매할 수 있다.

2. OpenJDK

3. Azul Zulu

 

 

Java의 Code Convention

Java에서는 camelCase를 사용한다. 상수를 선언할 때는 UPPER_SNAKE_CASE를 사용한다.

 

Java의 버전

19

17 - LTS(Long Term Support)

11

9

8 - LTS

7 - LTS

6 - LTS

5

 

 

version별 추가된 spec

1. Java 5.0

  • util 쪽 package
  • e.g. Generic, Autoboxing, Unboxing, enum, annotation, 개선된 for, static import

 

2. Java 8.0

  • Interface의 static
  • default
  • 함수형 프로그래밍
  • Lambda
  • Stream 활용
  • 날짜와 시간 관리 강화
  • 개선된 Date API
  • 병렬 데이터 처리 성능

 

3. Java 9.0

  • Immutable List 가능
  • 모듈 시스템(Java Platform Module System)
    • Java에서 패키지 단위의 캡슐화가 가능하고 module 간의 의존 관계를 정의하여 최적화된 application 배포를 가능하게 한다.
    • 필요한 것, 원하는 것만 module화 해서 export할 수 있다. (무겁다는 단점 보완)

 

 

Servlet vs. JSP

Servlet

웹 서버 성능 향상을 위해 사용되는 자바 클래스의 종류 중 하나

 

  • Java 문서 안에 HTML, CSS, JavaScript를 모두 사용할 수 있다.
  • 프론트엔드를 HTML, CSS, JacaScript로 작성하고 Business Logic을 순수 Java로 작성할 수 있다.
  • 확장자가 .java이므로 컴파일 후 실행

 

JSP

자바를 웹 서버에서 쉽게 사용하기 위한 기술이다.

 

  • Java Server Pages로 언어가 아닌 서버 사이드 템플릿 엔진이다.
  • 확장자가 .jsp인 문서 안에 HTML, CSS, JacaScript로 작성한다.
  • Java 코드가 필요할 때는 <% [Java 코드 작성] %> 과 같이 작성한다.
  • asp, php와 비슷한 느낌

 

JSP로 웹 페이지를 만들 때 유의할 사항

view와 Business Logic이 한 페이지에 있어서 source code가 복잡해진다.

유지보수, 확장성 개선을 위해 다음과 같은 방법을 고려해본다.

 

  • Refactoring
  • Design Pattern GoF 23가지 방법 적용
  • SOLID 객체 지향 설계 원칙 지키기
  • MVC 구조로 개발하기
    • e.g.
    • Model : Java
    • View :   HTML, CSS, JacaScript, JSP
    • Controller : Servlet(View와 Model 사이에서 Front-end와 Back-end를 연결해주는 역할)

 

 

 

'Java' 카테고리의 다른 글

객체지향 문제 만들고 풀어보기  (0) 2023.11.22
Eclipse 개발 환경 세팅  (1) 2023.11.21
[Spring Boot] Lombok  (0) 2023.10.24
[Spring Boot] ORM, JPA, Hibernate 개념  (1) 2023.10.23
[Spring Boot] springfox 3.0.0 Whitelabel 에러  (0) 2023.10.20