브래의 슬기로운 코딩 생활
JAVA 프로그래밍 10주차 정리 본문
Java
Language Fundamentals
Token, variable, Data type - type conversion, Operator
Statement, Array, String, Method(or Function)
OOP
연관된 Method(연산)와 자료구조(속성)를 정의한 Class - Object
Inheritance, Abstract Class, Interface, Polymorphism
Inner Class, Nested Class
Package, Exception Handling
Additional
Enum, Lambda (Functional Interface)
Generic, JCF(Java Collection Framework) - ArrayList, List, Map, Set
Stream, I/O,
향후 : Thread, JDBC
https://docs.oracle.com/en/java/javase/17/docs/api/index.html
https://docs.oracle.com/en/java/javase/17/ // 자바 참고 사이트
* MVC Model(or Pattern) : Model, View, Controller 나누어 소프트웨어 개발하는 방법론
* MVC Model 2 + Service Pattern : 업무 로직(business logic) 세분화
* DTO(Data Transfer Object) : 데이터 전송 객체 (주고 받는 데이터)
* DAO(Data Access Object) : 데이터 접근 객체 (데이터 처리)
https://docs.oracle.com/en/java/javase/17/ // 자바 참고 사이트
* MVC Model(or Pattern) : Model, View, Controller 나누어 소프트웨어 개발하는 방법론
* MVC Model 2 + Service Pattern : 업무 로직(business logic) 세분화
* DTO(Data Transfer Object) : 데이터 전송 객체 (주고 받는 데이터)
* DAO(Data Access Object) : 데이터 접근 객체 (데이터 처리)
JPMS (Java Platform Module System)
패키지(package)
what
연관된 클래스, 인터페이스, 열거형, 애노테이션 등들의 모음 - 디렉토리와 대응되는 계층 구조를 가짐
why or benefit
- 연관성 있는 클래스들의 분류를 편리하게 하여 관리를 손쉽게 할 수 있다.
- 개발자가 같은 클래스 이름으로 개발을 하여도 이름 충돌을 피할 수 있도록 네임스페이스(namespace) 관리를 제공한다.
- 접근 권한을 조정할 수 있다.
패키지 선언
선언 구문 구조: package packageNameList;
패키지 사용
사용 구문 구조
import packageNameList.ClassName;
-ClassName 이라는 이름의 클래스만 사용(실행 시 로딩)
import packageNameList.*;
- 패키지에 포함된 모든 클래스들을 사용(실행 시 로딩)
디폴트 패키지(default package)
•소스 코드에 package 정보를 명시하지 않아서 패키지 이름이 없는 패키지
특징
- 현재 작업 디렉토리를 대상 디렉토리로 사용함
- 간단하여 테스트 프로그램 작성시 사용함
- 다른 패키지에 포함된 클래스들이 접근할 수 없음, 즉 import 할 수 없음
JAR (Java Archive) 파일
what
연관된 패키지나 클래스 파일들을 묶어서 만든 파일
- 여러 개의 파일을 하나의 파일처럼 관리하고 배포할 수 있음, pkzip을 기반으로 함
자바 모듈(Module) 개요
등장 배경
플랫폼의 모듈화 필요성 증가
- Java 9부터 자바 API의 모든 클래스들(자바 실행 환경)을 패키지 기반에서 모듈들로 완전히 재구성
응용프로그램의 모듈화
- 클래스들은 패키지로 만들고, 다시 패키지를 모듈로 만듦
- 모듈 프로그래밍은 어렵고 복잡. 기존 방식으로 프로그램 작성
정의
•여러 패키지와 이미지 등의 자원을 모아 놓은 컨테이너
•하나의 모듈을 하나의 .jmod 파일에 저장
특징
•모듈성은 패키지 위에서 더 높은 수준의 집계를 추가
•하나 이상의 패키지를 가짐
모듈화의 목적
Java 9부터 자바 API를 여러 모듈(99개)로 분할
- Java 8까지는 rt.jar의 한 파일에 모든 API 저장
응용프로그램이 실행할 때 꼭 필요한 모듈들로만 실행 환경 구축
- 메모리 자원이 열악한 작은 소형 기기에 꼭 필요한 모듈로 구성된 작은 크기의 실행 이미지를 만들기 위함
모듈의 현실
•Java 9부터 전면적으로 도입
•복잡한 개념
•큰 자바 응용프로그램에는 개발, 유지보수 등에 적합
•현실적으로 모듈로 나누어 자바 프로그램을 작성할 필요 없음
자바 API의 모듈 파일들
자바 JDK에 제공되는 모듈 파일들
•자바가 설치된 jmods 디렉터리에 모듈 파일 존재
- .jmod 확장자를 가진 파일 (java 11 – 72 modules -> java 17 – 71 modules) //$Java_HOME\jmods
- 모듈 파일은 ZIP 포맷으로 압축된 파일
•모듈 파일에는 자바 API의 패키지와 클래스들이 들어 있음
•jmod 명령을 이용하여 모듈 파일에 들어 있는 패키지를 풀어 낼 수 있음
'2-1 > JAVA 프로그래밍' 카테고리의 다른 글
JAVA 프로그래밍 12주차 정리 (0) | 2023.05.23 |
---|---|
JAVA 프로그래밍 11주차 정리 (0) | 2023.05.16 |
JAVA 프로그래밍 중간고사 정리 (0) | 2023.04.29 |
JAVA 프로그래밍 7주차 정리 (0) | 2023.04.17 |
JAVA 프로그래밍 6주차 정리 (0) | 2023.04.11 |