인터넷이 안되는 환경이라면 maven에서 원격으로 신규라이브러리(artifact)들을 추가하거나 업데이트 할 수 없다. 따라서 Maven을 처음 설치했을 떄, mavend의 default local repository에 직접 추가할 라이브러리(artifact)를 jar 파일 형태로 넣어준다음 설치해주어야 한다. 1. local repository 설정 Maven이 처음 설치될 때 local repository는 windows 개발환경이라면 아래의 이미지 처럼 C:\Users\로그인사용자\ .m2\ 경로에 settings.xml파일이 존재한다. 그게 아니라면 Maven 설치 압축파일을 푼곳에 config 디렉토리에 settings.xml이 존재한다. Maven 설정파일인 setting.xml 파일을 열어보..
빌드관리 도구란? 우리가 프로젝트에서 작성한 Java 코드에 더불어서 각종 xml, propertise, jar 파일 등을 JVM이나 WAS가 인식할 수 있도록 빌드해주는 도구들로 대표적인게 maven과 gradle이다. Java code만 빌드할거라면 이클립스나 IntelliJ와 같은 IDE 빌드 도구만을 이용해도 되지만 프로젝트가 거대해질수록 xml, propertise, jar 등이 많이 추가되는데 이럴때 유용한 도구들이 바로 maven과 gradle이다. Maven (Making the bulid process easy) 메이븐의 풀네임은 'Apache Maven'으로 2004년에 발표되었고 2023년을 기준으로 안정화된 Maven의 버전은 3.8.7로 2022년 12월 24일에 릴리즈되었다. M..
새로운 기능 개발시 생각해볼 것. 1. 해당 기능구현을 위해서 필요한 데이터들을 현재의 DB에서 저장되고 관리되는데 문제가 없는가? > 문제가 발생하여 해결하기 위한 방법으로 데이터를 조금 변형해도 되는가? > 데이터 변형이 불가능하다면 기능 타협을 통해서 구현이 가능한가? > 기능타협이 불가능하다고 하더라도 새로운 DB종류를 사용한다던지 하여 개발할 수 있는가? 2. 기능 개발에 필요한 라이브러리가 기존의 프로젝트의 프레임워크, RDB, 자바버전 등등 과 호환이 가능한가? > 호환이 불가능해도 구현할 수 있는가? (라이브러리의 기능을 자체개발 한다던지 등) > 기존의 프레임워크를 교체할 수 있는가? 교체할 필요성이 있는가? 3. 새로운 기능이 시스템의 전반적인 성능에 영향을 미치는가? > 해당 기능으로..
Maven vs Gradle 1. Gradle은 작업 의존성 그래프를 기반으로 하는 반면 Maven은 고정적이고 선형적인 단계의 모델을 기반으로 하고 있다. 2. 성능 측면에서는 둘 다 다중 모듈 빌드를 병렬로 실행 할 수 있다. 그런데 Gradle의 경우 어떤 task가 업데이트 되었고 안되었는지를 체크하기 때문에 incremental build를 허용 한다. 이미 업데이트된 task에 대해서는 작업이 실행되지 않으므로 빌드 시간이 훨 씬 단축된다. 3. Maven의 경우 멀티 프로젝트에서 특정 설정을 다른 모듈에서 사용하려면 상속을 받아야 하지만, Gradle은 설정 주입 방식을 제공한다. Maven Gradle Java를 사용하여 프로젝트 빌드 자동화에 주로 사용되는 압축 소프트웨어 프로젝트 관리 ..
WAS(WebApplicationServer)란? WAS에 대한 설명을 검색하여 찾으면 다음과 같은 글로 정의된 검색결과들이 많이 존재한다. HTTP를 통한 동적인 웹페이지 요청을 처리하기 위해서 코드를 실행하기 위환 환경이자 미들웨어라고 한다. 이러한 WAS는 프로그램 실행환경과 DB접속 기능을 제공하며 여러개의 트랜잭션을 관리하고 업무를 처리하는 비즈니스 로직을 수행하는 것을 말한다. 웹 사용자가 어떤 요청을 하게되면 그 요청에 맞는 코드를 실행해야하고 그 실행된 결과를 웹서버에서 다시 클라이언트에 돌려주게되는 이런 형태로 동작하게된다. 동적으로 문서를 만들기 위한 코드들 Server App과 이 Server App을 실행할 수 있게 만들어주는 환경(WebServer+WAS)들이 웹을 만들기 위한 기..