[Docker] Docker Compose를 이용해 Docker + Nginx + SpringBoot + React(w/ Vite) + CertBot 배포하기
·
Server/Docker
서론이번 프로젝트를 진행하면서 SSL 인증을 포함한 프로젝트를 한 번에 배포하기 위해 Docker Compose를 이용한 것을 기록하기 위해 작성하였습니다.모든 것이 정답이 아닐 수 있기 때문에, 틀린 부분이 있다면 댓글로 알려주세요! 감사합니다. Docker Compose를 사용하여 React (Vite)와 SpringBoot를 함께 배포하는 방법을 다뤘습니다.이를 위해 Nginx를 중심으로 요청이 들어오면 React의 정적 파일을 서빙하고, SpringBoot Api를 프록시 하는 환경을 설정하는 과정을 나타냅니다.이전에는 Spring Boot 만을 독자적으로 실행하였는데 매번 애플리케이션들을 따로하기가 힘들어서 고민하였습니다.Docker Compose를 이용해 한 번에 여러 이미지를 배포할 수 있는..
[Spring || SpringBoot] Thymeleaf Layout - 타임리프 레이아웃 적용 하기
·
Java/Spring || SpringBoot
화면 단에서 사용하는 헤더 혹은 푸터와 같은 화면에서 공통적으로 사용하는 부분을 모든 HTML이나 JSP 화면에 적용하게 되면, 수정이 이뤄지면 매번 고쳐야 하는 문제가 있다. 즉 비효율적이다. 필자는 JSP에서는 Include와 같은 것을 사용해 공통. jsp를 만들고 해당 jsp 부분을 가져오는 방식으로 개발했었다.하지만 타임리프에서는 이런 번거로운 과정을 줄여주기 위해 레이아웃 기능을 제공해 준다. build.gradleimplementation 'org.springframework.boot:spring-boot-starter-thymeleaf'implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' 위 Dependencies를 build..
[Spring || SpringBoot] IPv4 설정
·
Java/Spring || SpringBoot
서버에서 유저 IP를 받기 위해서, IPv4로 설정이 필요하다. 이는 실행 파일 VM 설정을 해주면 된다.  위 사진은 IntelliJ의 Run Configuration  설정이다. Build and Run > Modify Options를 누르면 위와 같은 리스트가 나온다.사진 속 Add VM Options를 선택하면 사진과 같이 실행시 옵션을 설정할 수 있다.-Djava.net.preferIPv4Stack=true​ 위 VM Arguments를 입력해주면 IP를 받는 부분에서 IPv4 형식으로 출력할 수 있다.
[Spring || SpringBoot] Spring에서 @Value로 Properties 값 가져오기
·
Java/Spring || SpringBoot
Spring boot에서는 외부 설정 파일을 통해 Properties 설정 값을 관리할 수 있다. application.properties  또는 application.yml 파일에 저장된 값을 Java 코드에서 불러오는 방법 중 하나는 @Value 어노테이션을 사용하는 것이다. @Value 어노테이션 사용하기# application.propertiesapp.name=MySpringApplicationapp.version=1.0.0 위와 같이 설정 값을 저장한다고 가정한다. import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Component;@Componentpublic class A..
[Git] 이미 커밋된 파일 제외하기
·
Git & Github
Git에서는 .gitignore을 통해 추적할 파일을 무시 할 수 있다. 하지만, .gitignore를 설정하기 전에 커밋을 했다면 어떻게 제외해야하는지에 대해 알아보자. 일단! .Gitignore을 무엇인가?Git에서 특정 파일이나 디렉터리를 버전 관리에서 제외하고 싶을 때 사용한다.Git은 기본적으로 모든 파일을 추적하지만, .gitignore에 명시된 파일들을 무시하고 추적하지 않는다. 주로 버전 관리에 불필요한 파일들을 추가한다. 이미 커밋된 파일 추적 취소하기- 기본적으로 git rm --cached (파일 이름 or -r .) 해당 명령어로 추적을 취소한다.파일 이름만 작성할 경우 해당 파일만 제외되고, -r . 은 전체 파일 추적을 취소한다.# 단일 파일 추적 취소git rm --cached..
[Algorithm] 선택 정렬 Selection Sort
·
Java/Algorithm
정의선택 정렬은 버블 정렬과 비슷한 알고리즘이지만, 지정된 순서에 원소를 넣을 곳이 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘이다. 간단하게 말하자면 특정 자리에 올 원소를 선택해서 바꾸는 것이다. 과정1. 배열에서 가장 최소값을 찾는다. 2. 맨 첫번째 원소와 교체 3. 그 다음 위치에도 1번과 2번을 반복해서 교체 코드 및 풀이public class Main { public static void main(String[] args) { int[] arr = { 64, 32, 15, 23, 33, 10 }; selectionSort(arr); System.out.println("Sorted array:"); for (int num : arr) { System.out.println(num +..