Java/Spring
SPRING 관련 용어들
amungstudy
2023. 7. 25. 09:35
## 1 빌드란?
-- 소스코드 파일을 컴퓨터에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그에 대한 결과물 이다.
-- 이를 좀더 쉽게 풀어 말하자면 우리가 작성한 소스코드(java),
프로젝트에서 쓰인 각각의 파일 및 자원 등(.xml, .jpg, .jar, .properties)을
JVM이나 톰캣같은 WAS가 인식할 수 있는 구조로 패키징 하는 과정 및 결과물이라고 할 수 있다.
## 2 빌드 도구(Build tool)
-- 빌드 도구란 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램.
-- 빠른기간동안 계속해서 늘어나는 라이브러리 추가, 프로젝트를 진행하며 라이브러리의 버전 동기화의 어려움을 해소하고자 등장.
-- 초기의 java 빌드도구로 Ant를 많이 사용하였으나 최근 많은 빌드도구들이 생겨나 Maven이 많이 쓰였고, 현재는 Gradle이 많이 쓰인다.
(Ant는 스크립트 작성도 많고, 라이브러리 의존관리가 되지 않아 불편함)
## 3 정의 및 특징
-- Maven은 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 내가 사용할 라이브러리 뿐만 아니라
해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다.
-- Maven은 중앙 저장소를 통한 자동 의존성 관리를 중앙 저장소(아파치재단에서 운영 관리)는 라이브러리를 공유하는 파일 서버라고 볼 수 있고, 자기 회사만의 중앙 저장소를 구축할수도 있다.
-- 간단한 설정을 통한 배포 관리가 가능 하다.
## ex
-- .jar 압축파일 : java Archive의 약자로 자바 class 파일을 압축해 저장해놓은 파일
-- .war 압축파일 : Web Application Archive의 약자로 말그대로 웹 어플리케이션 저장소이며 웹 어플리케이션을 압축해 저장해 놓은 파일
-- 소프트웨어 공학에서의 소프트웨어 디자인 패턴(software design pattern)은
소프트웨어 디자인의 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다.
소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며,
다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다.
디자인 패턴은 프로그래머가 어플리케이션이나 시스템을 디자인할 때
공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 관행이다.
## 프레임 워크
- 디자인 패턴이 설계를 재사용하는 것이라면 프레임워크는 설게와 코드를 함께 재사용하기 위한 것이다.
프레임워크는 애플리케이션의 아키텍처를 구현 코드의 형태로 제공한다.
프레임워크가 제공하는 아키텍처가 요구사항에 적합하다면 다양한 환경에서 테스트를 거친 견고한 구현 코드를 쉽고 빠르게 재사용 할 수 있다.
프레임워크는 각 애플리케이션 요구에 따라 적절하게 커스터마이징할 수 있는 확장 포인트를 제공한다.
## 공통점과 차이
- 디자인 패턴과 프레임워크 모두 일관성 있는 협력과 관련이 있다.
디자인 패턴은 특정한 변경을 일관성 있게 다룰 수 있는 협력 템플릿을 제공한다.
디자인 패턴이 협력을 일관성 있게 만들기 위해 재사용할 수 있는 설계의 묶음이라면,
프레임워크는 일관성 있는 협력을 제공하는 확장 가능한 코드라고 할 수 있다.
결론적으로 디자인 패턴과 프레임워크 모두 협력을 일관성 있게 만들기 위한 방법이다.