본문 바로가기
IT관련/정리

[자바 의존성 관련] 의존성과 라이브러리, 그리고 Jar

by XoX 2020. 5. 13.
728x90
개인적인 메모를 위해 작성된 글이므로 가벼운 참고용으로 봐주세요.

 

의존성

 

자바는 객체 지향의 성질 때문에 JAVA에서는 객체들끼리 의존성을 가지고 있다.

A 타입의 변수를 생성하고, 이에 A를 상속받는 B 객체를 초기화하면 이는 B 객체에 의존성을 가진다.

 

 

DI ( Dependency Injection)

의존성 주입

 

 

DI가 필요한 이유


의존성 파라미터를 생성자에 작성하지않아도 되기 때문에 코드를 줄일 수 있다.

또한 Interface에 구현체를 쉽게 교체할 수 있다.

상황이 변할 때 마다 유용하게 적용시킬 수 있게 된다.

 

 

의존성주입이란

 

한 마디로 뭔가 필요한게 있으면 내가 가서 찾아오던지 직접 만들지 해야하지만 프로그램에서

무언가 필요하다고 선언만 하면 외부에서 알아서 찾아서 제공해주겠다는 뜻.

그렇게 하는 이유는 여러가지가 있지만, 가장 큰 이유는 "그런 건 내(컨테이너)가 할테니 넌(빈/서비스/컴포넌트) 네가 할 일(비즈니스)이나 신경써라"라고 할 수 있고, 이를 조금 더 정제해서 표현하면 '관심의 분리(separation of concern)'를 달성하기 위해서라고 할 수 있다.

 

 

라이브러리

 

라이브러리는 컴퓨터에서 자주 사용하는  부분(함수)를 프로그램에  모아 놓은 것.

언제든 자유롭게 이용할 수 있도록  구성해놓은 Jar 파일이다.

 

 

JAR (JavaArchive)

 

자바아카이브는 여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스(텍스트, 그림 등) 및 메타데이터를 하나의 파일로 모아서 자바 플랫폼 응용 소프트웨어 라이브러리를 배포하기 위한 소프트웨어 패키지 파일 포맷이다.

JAR 파일은 실제로 ZIP 파일 포맷으로 이루어진 압축 파일로서, 파일 확장자는 .jar이다.

컴퓨터 사용자들은 JDK에 포함된 jar 명령어를 이용하여 JAR 파일을 만들거나 압축을 풀 수 있다.

또, zip 도구를 사용할 수도 있으나 압축 시에는 매니페스트 파일이 처음이어야 하는 경우가 있어서

zip 파일 헤더의 엔트리 순서가 중요하다.

JAR 안에서 파일 이름들은 유니코드 텍스트로 되어 있다.

728x90
반응형

댓글