본문 바로가기

전체 글252

Dockerfile, Docker-compose 특징 및 차이 실제 사용예시 (핵심만 보기용도) docker-compose를 사용할만한 상황으로, multimodule 환경을 구성해보았다. Multimodule(루트 프로젝트) - api-other (모듈) - api_center (모듈) - api_common (모듈) 여기서 나는 이미지를 찍고 컨테이너화 하고싶은 모듈이 api-other와 api_center이다. 2. 컨테이너화 하고싶은 모듈인 api-other와 api_center 모듈 안에 각각 Dockerfile을 생성한다 현재 api-other와 api_center의 application 내용은 아래와 같다 api-other package com.example.apiother; import org.springframework.boot.SpringAppli.. 2023. 4. 18.
Build and run using의 값을 Gradle로 두냐 Intellij IDEA로 두냐의 차이 Build and Run using 옵션은 IntelliJ IDEA에서 프로젝트를 빌드하고 실행할 때 사용되는 빌드 도구를 선택하는 옵션입니다. 이 옵션을 Gradle로 설정하는 경우와 IntelliJ IDEA로 설정하는 경우 각각 다음과 같은 차이점이 있습니다 Gradle로 설정하는 경우 프로젝트의 빌드 및 실행이 Gradle 빌드 도구를 사용하여 수행됩니다. Gradle 스크립트에 정의된 빌드 설정이 적용됩니다. 프로젝트의 의존성 관리, 빌드 스크립트, 태스크 실행 등이 Gradle에 의해 처리됩니다. Gradle 빌드 도구를 사용하는 경우, 프로젝트를 다양한 환경에서 빌드하고 실행할 수 있습니다. 또한 Gradle의 다양한 기능을 활용하여 빌드 및 배포 과정을 자동화할 수 있습니다. IntelliJ.. 2023. 4. 15.
Multimodule(멀티모듈) 개념 및 사용법 무엇인가? 하나의 프로젝트를 여러 개의 작은 모듈로 나누어서 개발하고 관리하는 방식 각각의 모듈은 독립적으로 개발 및 빌드될 수 있으며, 다른 모듈과 의존성을 가질 수 있음 ⇒ 애플리케이션에서 공통으로 사용하는 것을 공통 모듈로 분리하여 사용가능 패키지 집합체 (관련된 패키지와 리소스들을 재사용할 수 있는 그룹) 왜 쓰는가? 상황 가정 회원시스템을 단일 프로젝트로 개발한다고 하면 아래와 같이 서로 독립된 프로젝트 단위가 있을 것이다 member internal api member external api member batch 이런 구조를 가지고 있을 때 가장 큰 문제점은 시스템의 중심 Domain 이 가져야할 구조와 규칙 등을 동일하게 보장해주는 메커니즘 이 없다는 것이다. 개발자는 매우 번거롭게, 동일.. 2023. 4. 14.
jib란? 왜 Jib을 써야하는가? 우리가 애플리케이션을 컨테이너화 한다고 했을 때 가장 먼저 떠오르는 단어는 아마 Dockerfile일 것이다 그에 대한 방법은, 컨테이너 이미지를 만들기 위한 과정을 Dockerfile에 정의해놓고, docker build명령을 통해서 컨테이너 이미지를 만드는 게 가장 많이 알려진 방법으로 통할 것이다 아래 예시처럼 말이다. # 현재 나는 corretto17을 사용하고 있기 때문에 아래와 같이 베이스 이미지를 설정하였음 FROM openjdk:17-jdk # JAR_FILE 변수 정의 -> 기본적으로 jar file이 2개이기 때문에 이름을 특정해야함 # 나는 그냥 bootJar해서 jar file 1개만 생성한 후 아래와 같이 진행했음 ARG JAR_FILE=./build/li.. 2023. 4. 4.
java record 개념 및 사용법 record란? Java14부터 도입된 기능 데이터를 저장하는 불변 클래스를 쉽게 작성할 수 있도록 하는 새로운 기능 record없이 기존의 방법은? 데이터를 저장하기 위해 클래스를 정의, 필드를 정의, 생성자를 정의, getter메서드를 정의하는 등, 번거로운 작업들을 해야 했음. 아래는 이름, 성, 나이를 가지고 있는 Person객체를 정의하는 일반적인 방법의 코드임 public class Person { private String firstName; private String lastName; private int age; public Person(String firstName, String lastName, int age) { this.firstName = firstName; this.lastNa.. 2023. 3. 23.
2023.03.18 TIL 오늘 한 일 > 객체지향의 사실과 오해 독서시작 (3.31까지 완료 후 추가 정독하자) > POM (Place Of Meeting) 유지보수 2023. 3. 18.