Cold Sequence 와 Hot Sequence
📘 스프링으로 시작하는 리액티브 프로그래밍 챕터 7 Cold Sequence Subscriber 가 구독할 때마다 데이터 흐름이 처음부터 다시 시작되는 sequence 이다. 마블 다이어그램을 보면 위쪽에 위치한 Subscriber A 가 구독을 하면 Publisher 는 네 개의 데이터를 emit 한다. 그리고 아래쪽에 위치한 Subscriber B…
Reactor 특징과 마블다이어그램
📘 스프링으로 시작하는 리액티브 프로그래밍 챕터 5~6 Reactor 특징 리액티브 스트림즈의 구현체인 는 리액티브 프로그래밍을 위한 라이브러리이며, Reactor Core 라이브러리는 Spring WebFlux 프레임워크 라이브러리로 포함되어 있다. Mono0|1 Mono 는 데이터를 한 건도 emit 하지 않거나 단 한건만 emit…
reactive streams 개념 정리와 spring webMVC 와 webFlux 코드 비교
📘 스프링으로 시작하는 리액티브 프로그래밍 챕터 1~…
스프링 Async multi config 설정하기
@Async 기본으로 사용하기 main 클래스에 @EnableAsync 추가해준다. 비동기로 처리하고자 하는 메소드에 @Async 를 붙여주면 끝! 문제점 @Async 의 기본설정인 SimpleAsyncTaskExecutor…
코프링 일주일 공부하고 정리하는 글
필드 주입 방법 다음의 코드에서 필드 주입은 동작하지 않는다. 필드 타입들이 null 이 될 수 없기 때문에 컴파일 타임에서 에러가 발생한다. 생성자 주입으로 변경. 변수는 val 로 해야 한다. val 는 변경 불가능한(immutable) 참조를 지정하는 변수다. 필드 주입이 필요하면 지연 초기화를 사용 한다. lateinit…
intellij mac 단축키
꼭 기억해야 할 단축키 스마트 코드 완성 : Control + Shift + Space 모두 검색 : Double Shift quick fix : Option + Enter Generate Code(생성자, getter, setter, override 등) : Command + N 또는 Control + Enter 파라미터 정보 : Command + P…
jenkins 를 이용한 빌드 & 배포
목표 git repository 의 특정 브랜치에 소스가 push 되면, git repository 의 webhook 설정에 의해 jenkins 의 아이템을 실행한다. item 은 pipeLine 으로 구성하고, Jenkinsfile 을 작성하여 빌드 및 배포 구성을 코드로 관리한다. 빌드 구성 gradlew clean build build…
토비의 스프링 3.1(vol1) - 2장 테스트
토비의 스프링 2장을 보고 최신 스프링버전에서 테스트 해보고 정리한 내용. 애플리케이션이 계속 변하고 복잡해져 가는데 그에 대응하는 첫번째 전략이 확장과 변화를 고려한 객체지향적 설계와 그것을 효과적으로 담아낼 수 있는 IoC/DI…
토비의 스프링 3.1(vol1) - 1장 오브젝트와 의존관계
토비의 스프링 1장을 보고 최신 스프링버전에서 테스트 해보고 정리한 내용. 예제 소스 1.1 초난감 DAO DAO(Data Access Object) 는 DB 를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트를 말한다. 책에서는 mysql-connector jar 파일을 클래스패스에 넣어주게 되어 있지만 테스트한 소스에는 gradle…
자바 람다식
whiteship/live-study 15주차 정리 목표 자바의 람다식에 대해 학습하세요. 학습할 것 (필수) 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스…
자바 제네릭
whiteship/live-study 14주차 정리 목표 자바의 제네릭에 대해 학습하세요. 학습할 것 (필수) 제네릭 사용법 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 1. 제네릭 사용법 제네릭 기본 이해 제네릭은 자바…
자바 I/O
whiteship/live-study 13주차 정리 목표 자바의 Input 과 Output 에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream 과 OutputStream Byte 와 Character 스트림 표준 스트림 (System.in, System…
자바 애노테이션
whiteship/live-study 12주차 정리 목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 (필수) 애노테이션 정의하는 방법 @retention @target @documented 애노테이션 프로세서 1. 애노테이션 정의하는 방법 애노태이션 Java…
자바 열거형
whiteship/live-study 11주차 정리 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum 이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 1. enum 정의하는 방법 enum: 컴퓨터 프로그래밍에서 Enumerated Type…
자바 멀티쓰레드 프로그래밍
whiteship/live-study 10주차 정리 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 1. Thread 클래스와 Runnable 인터페이스 process & thread process…
자바 예외처리
whiteship/live-study 9주차 정리 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception 과 Error 의 차이는? RuntimeException 과 RE…
PostgreSQL pg_dump
특정 테이블을 insert sql 로 덤프 로컬에 있는 postgres 를 덤프할 경우 포트 번호는 생략해도 된다. 만약 원격에 있는 postgres 를 덤프할 경우 원격의 postgres 와 pgdump 를 실행하는 클라이언트의 postgres 버전이 맞이 않을 경우 pgdump 가 되지 않을 수도 있다. 여러 테이블을 insert sql 로 덤프 -t…
자바 reflection API
1. Java Reflection 정의 리플렉션이란 객체를 통해 클래스의 정보를 분석해 내는 프로그램 기법을 말한다. 스프링의 다음과 같은 코드가 reflection 을 이용한 예라고 볼 수 있다. @Service, @Autowired 등과 같은 애노테이션을 사용해서, 직접 인스턴스를 생성해주지 않아도 쓸 수 있게 된다. 2. 클래스 정보 조회 Class…
자바 인터페이스
whiteship/live-study 8주차 정리 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바…
자바 패키지
whiteship/live-study 7주차 정리 목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 1. package…
Intellij 시작 오류 조치
intellij 시작시 다음과 같은 오류가 발생할경우 아래와 같이 조치가 가능하다. intellij 는 실행되면서 6942에서 6991번 포트 중 사용 가능한 첫번째 포트를 바인딩하는데 해당 범위에 사용가능한 포트가 존재하지 않아 에러가 난다고 한다. windows 에서 WSL2로 전환하고 Docker Desktop…
자바 상속
whiteship/live-study 6주차 정리 목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스…
자바 클래스
whiteship/live-study 5주차 정리 목표 자바의 Class 에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 과제 (옵션) int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int…
자바 제어문
whiteship/live-study 4주차 정리 목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 (필수) 선택문 반복문 과제 (옵션) 과제 0. JUnit 5 학습하세요. intellij, 이클립스, VS Code 에서 JUnit 5로 테스트 코드 작성하는 방법에 익숙해 질 것. 이미 JUnit…
자바에서 제공하는 연산자
whiteship/live-study 3주차 정리 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자…
자바 데이터 타입, 변수 그리고 배열
whiteship/live-study 2주차 정리 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익히기 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및…
JVM 이해하기
whiteship/live-study 1주차 정리 목표 자바 소스 파일(.java)을 JVM 으로 실행하는 과정 이해하기 학습할 것 JVM 이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK 와 JRE 의 차이 1. JAVA, JVM, JDK , JRE JVM (Java…
Web Application Server 와 servlet
DB 조회나 다양한 로직 처리를 요구하는 동적인 컨텐츠를 제공하기 위해 만들어진 Application Server 이러한 동적인 컨텐츠를 제공하기 위해 CGI(Common Gateway Interface) 프로그램이 등장했으며, 펄(Perl)스크립트나 C, Python, PHP 같은 언어로 작성되었다. Servlet…
docker 로 개발환경 구성하기
1. docker image 사용하기 docker hub 에 있는 image 를 받아서 사용 문제점 리눅스에서 기본적으로 사용하던 wget, unzip, clear 명령 등이 없어서 설치해줘야 한다. 위 이미지는 postgis 만을 위한 image 이므로 다른 것을 사용 하려면 용도에 맞는 이미지를 별도의 container…
Docker Compose 작성 방법 및 명령어 정리
Docker Compose 여러 컨테이너를 모아서 관리하기 위한 툴 docker-compose.yml 파일에 컨테이너의 구성 정보를 정의함으로써 동일 호스트상의 여러 컨테이너를 일괄적으로 관리 할 수 있다. yml 파일에 기술하는 version 은 docker engine 버전에 따라 달라진다. 이미지 지정(image) Docker…
Dockerfile 작성 방법 정리
Dockerfile 이란? 베이스가 되는 이미지에 각종 미들웨어를 설치 및 설정하고, 개발한 애플리케이션의 실행 모듈을 전개 하기 위한 애플리케이션의 실행 기반의 모든 구성 정보를 기술한다. Dockerfile 의 기본 구문 옵션 설명 FROM 베이스 이미지 RUN 명령 실행 CMD 컨테이너 실행 명령 LABEL 라벨 설정 EXPOSE 포트 익스포트 ENV…
Windows10 source tree 완전 삭제
1. 제어판 - 프로그램 제거에서 Source Tree 삭제 2. 다음의 폴더로 가서 파일들을 삭제(숨김 폴더 보기를 해야 보임)
intellij 테스트 코드 한글 깨짐 해결 방법
intellij 에서 테스트 코드에 한글이 깨지는 경우 인텔리제이 프로그램 메뉴 중 Help -> Edit Custom VM Options.. 에서 다음 문구를 추가 한다. intellij 를 재실행 하고 테스트를 실행 하면 한글 결과가 잘 뜬다.
docker rabbitMQ 설정 하기
1. 필요 패키지 다운로드 2. Erlang, rabbitMQ 설치 3. 자동 재시작 등록 4. rabbitMQ 관리자 플러그인 enable 설정 5. 설정파일 작성 advanced.config 파일 작성 definitions.json 작성 : 여기에 실제로 사용할 유저 및 queue 와 exchange…
docker container 기본 설정
1. 업데이트 및 필요 패키지 설치 2. container timezone 설정 3. postgresql timezone 설정 postgresql.conf 파일을 다음과 같이 수정 후 재시작한다. 4. vim 설정 홈디렉토리의 최상위에 다음 내용의 파일을 만든다 5. bash 컬러 설정 /etc/bashrc 파일의 하단에 다음과 같이 추가 후 저장
Geoserver Clustering
1. jms 클러스터링 구성 2. geoserver 기본 설정 docker container 생성 및 시작 geoserver data 는 독립적으로 사용하고 tiff 파일과 캐시 데이터는 공유 디렉토리를 마운트해서 사용한다. 타일 캐시와 관련된 설정은 동기화 되지 않으며, gwc data 디렉토리를 공유해서 사용할 경우 master…
Load Balancing, Session Clustering
1. 테스트 환경 및 버전 모든 테스트는 docker 에서 진행 centos : CentOS Linux release 8.1.1911(centos 버전 확인은 cat /etc/centos-release) haproxy : 2.1.5 apache : 2.4 tomcat-conectors(mod_jk) : 1.2.48 tomcat : 9.0.35 db…
docker 에 haproxy 설치
1. DockerFile 작성 centos 에서 dnf 로 haproxy 를 설치하면 1.8.5 버전인가가 설치된다. 현재 최신 버전은 2.1.5 버전인데… 그래서 소스를 받아서 컴파일 해야한다. haproxy docker image 로 테스트 하면 되지만 우리가 쓰는 서버는 다 centos 다 보니 이런 삽질을 했다. haproxy…
springBoot Thymeleaf
1. build.gradle 설정 thymeleaf, layout-dialect 를 사용하기 위한 의존성을 추가한다. 2. config 설정 thymeleaf 레이아웃을 사용하기 위한 빈을 생성해준다. 3. controller view 페이지 이동을 위한 기본 컨트롤러 설정 4. application.properties thymeleaf…
postgreSQL 고가용성
1. 정의 고가용성(HA, High Availability)이란 서버와 네트워크, 프로그램 등의 정보 시스템이 상당히 오랜 기간 동안 지속적으로 정상 운영이 가능한 성질을 말한다. 데이터를 수정할 수있는 서버를 read/writer, master, primary server 라고 한다. master 의 변경 사항을 추적 하는 서버를 standby…
centos8 postgresql12&postgis 설치하기
centos 최신 이미지 pull container 생성 systemctl 을 사용하기 위해서는 privileged 옵션을 사용해야 하고 실행 커맨드는 /sbin/init 를 사용한다. privileged 옵션을 사용하는 것이 보안에는 취약하다고 하지만 개발 환경을 하나의 컨테이너에 담아서 쓰기 위해서 일단 이렇게… 컨테이너 접속? 업데이트 : centos…
intellij JSP 관련 오류 해결 방법
eclipse 쓸 때는 아무 문제가 없었지만 intellij 에서는 jsp 를 사용시 로컬 개발 환경이 실행 되지 않는다. 그럴 경우 configuration 에서 Working directory 를 다음과 같이 설정하여 해결이 가능하다.
docker 시작하기
docker image, container image : 필요한 프로그램, 라이브러리, 소스 등을 설치한 뒤에 이를 파일로 만든 것이다. container : 이미지가 실행된 상태가 컨테이너(Container…
intellij 단축키
꼭 기억해야 할 단축키 스마트 코드 완성 : Ctrl + Shift + Space 모두 검색 : Double Shift quick fix : Alt + Enter Generate Code(생성자, getter, setter, override 등) : Alt + Insert 파라미터 정보 : Ctrl + P…
ubuntu에서 jekyll 설치하기
ubuntu 에서 jekyll 을 설치하는 방법을 정리. 참고로 windows 에서 ubuntu 를 사용하기 위해서는 제어판 - 프로그램 및 기능 - windows 기능 켜기/끄기 에서 Linux 용 Windows 하위 시스템을 체크하고 재부팅이 필요하다. 재부팅후에 ms store 에서 ubuntu 를 검색해서 설치하면 windows 에서 ubuntu…
maven 프로젝트 생성
maven project 생성하기(archetype:generate) maven 프로젝트를 생성하고자 하는 경로로 이동(윈도우라면 maven이 환경변수에 등록되어 있어야 한다.) 잠시 기다리면 다음과 같은 텍스트들이 출력된다. 이 상태에서 엔터를 치면 가장 최신의 maven-archetype quickstart version이 선택 된다. groupId…
postgresql & postgis 설치하기
1. 기존에 설치된 postgresql 삭제 기존 패키지가 깨끗하게 지워지지 않아서 dpkg를 이용해서 삭제했다. —purge 옵션으로 깨끗하게 삭제가 가능하다. 먼저 설치된 postgres 관련 항목들을 찾는다. 검색되는 항목들을 모두 삭제한다. 내 경우에는 11, 1…
리눅스 디렉토리 구조 정리
리눅스 데이터 디렉토리 구조 정리 디렉토리명 설명 / / (root), 가장 최상위 디렉토리모든 파일시스템의 마운트 포인터가 존재, 모든 파일 시스템의 이름 (Name Space)이 존재 /root 시스템 관리자(root)의 홈 디렉토리 /bin/ 기본 명령어들이 모여 있는 디렉토리 /etc…
웹접근성 향상 시키기
1. 접근 가능한 숨김 텍스트 display:none 일 경우 스크린리더에서 읽을 수 없다. 이렇게 숨겨놓은 건 없는것과 같다. visibility:hidden은 사용자에게 가시적으로 보여지지 않도록 하여 사용자에게 정보를 전달하지 않겠다라는 것이기 때문에, 스크린리더 역시 해당 정보 사용자에게 전달해주지 않게 된다. css…
eclipse 단축키
vscode로 자바웹개발을 하려다보니 안되는 것들이 많아서 결국 다시 eclipse를 쓰기로 했다. eclipse라도 제대로 쓰기 위해 유용한 단축키를 정리해 본다. 1. 이동 관련 단축키 ctrl + H : find 및 replace ctrl + T : 타입의 상속구조(Interface 안에 Impl Method 찾아갈때 유용하다.) ctrl + F…
vscode lombok & static import 설정
1. vscode에서 lombok 사용하기 원래는 아무 설정 없이 잘되던건데 어제 vscode 업데이트이후에 lombok이 먹히질 않았다. 그래서 찾아보니 setting.json에 명시적으로 써줘야 한다고 한다. 우선 lombok.jar파일을 다운 받는다. 그리고 setting.json에 다음과 같이 명시적으로 적어준다. 혹시 안된다면 java clean…
Springboot Redis 세션 공유
1. Springboot Redis 세션 클러스터링을 사용하는 이유 서버가 한대일 경우 WAS에 세션 정보를 담아두고 사용하면 되지만 서버가 N대로 늘어날 경우 늘어난 서버의 ip, port 정보를 N대의 서버에 일일이 입력해줘야 한다. 따라서 WAS…
Ubuntu java 버전 변경하기
아무 생각 없이 apt로 java를 설치 했는데 openjdk11 이 깔렸다. 프로젝트에서 쓰는건 openjdk8이라서 버전 변경하는 것 찾아보다가 기록! 근데 찾아보니 ubuntu랑 centos랑 버전 변경하는 방법이 다르다고 한거 같은데 일단 집에서는 ubuntu를 사용하고 centos…
rsync를 이용한 파일 동기화
1. ssh 설정 rsync를 통한 파일 동기화를 스케줄을 실행해 같은 시간에 반복적으로 돌릴 경우 원격 서버 접속시 패스워드를 묻게 되므로 ssh key를 설정하여 스케줄을 실행 할 때 패스워드를 사용하지 않고 접속하도록 설정한다. 입력창에 엔터를 쳐서 key를 생성하고 생성된 key를 동기화에 사용할 서버에 카피한다. ssh…
postgreSQL Replication
1. postgreSQL Replication? PostgreSQL에는 여러가지 Replication 방법이 있는데 Master/Master의 이중화는 아직 써본적이 없어서 Master/Slave로 구성했던 Streaming Replication에 대해 기록하려고 한다. Streaming Replication은 WAL(Write Ahead Log…
fdisk 를 통한 파티션 분할
서버 세팅할 때 문서를 제대로 안만들어서 이건 그냥 안까먹게 정리용으로… fdisk -l 명령어로 물리적인 하드웨어 구성 확인 fdisk 파티션나눌 disk경로 나는 start는 default로 하고 end는 할당할 사이즈 만큼 했다. 예) +500G(해당 파티션에 500G를 할당) w 로 저장. mkfs -t “파일type…
방화벽 정책 설정
1. firewall 명령어로 포트 열기 firewall 명령어를 통해 포트를 열 수 있다. zone은 서버의 용도에 맞게 사전에 정의된 네트워크의 신뢰 레벨을 의미한다는데… 난 아직까지는 zone을 따로 추가하지 않고 그냥 public으로 쓰고 있다. 포트를 추가하고 나면 반드시 firewall을 reload해야지 적용된다. 적용된 포트는 sudo…
대충 알고 넘어갔던 기본 개념 정리
1. 이진수로 음수 표현 음수는 2의 보수로 표현하고 둘을 더하면 0이 된다. 보수의 사전적 의미를 구글링 해보면 다음과 같다. 두 수의 합이 진법의 밑수(N)가 되게 하는 수. 예를 들어 10진수 4의 10의 보수는 6이고, 10진수 2의 10의 보수는…
ulimit 설정하기
1. ulimit? 서버 세팅을 하게 되면 os update 하고 나면 그 다음 하게 되는 ulimit 설정. 근데 이게 정확히 뭔지 몰라서 찾아봤다. ulimit는 각 유저의 파일 사용에 대해서 할당할 자원을 제한 하는 것으로, 다중 사용자및 프로그램을 기본으로 하는 Linux…
리눅스에서 톰캣 서비스 등록하기
1. Centos7 환경에서 톰캣 서비스 등록 /usr/lib/systemd/system/ 경로에 등록하고자 하는 서비스명.service 파일을 생성한다. 대략 다음과 같이 서비스 파일을 만들면 된다. user와 ExecStart/ExecStop경로만 잘 적어주면 별 오류 없이 서비스가 잘 등록 된다. 서비스를 시작하는 방법은 service…
rpm download 하기
rpm 패키지 다운받기 인터넷이 되지 않은 로컬 환경에서 설치하기 위해서는 rpm파일들을 미리 준비해야 하는데 그 방법은 다음과 같다. centos 7을 기준으로 했을때 yum에 —downloadonly 라는 옵션이 있다. 만약 yum —help 목록에서 이 옵션이 없다면 sudo yum install yum-downloadonly…
user 계정 sudo 권한
일반 사용자 계정에 root 권한 주기 리눅스에서 일반 사용자 계정을 사용하다 보면 root의 권한이 필요할 경우가 있다. 그럴때마다 root로 계정을 변경해서 사용 할 수 도 있지만 해당 user계정에 root 권한을 부여하여 사용 할 수 있다. visudo를 이용하거나 /etc/sudousers…
postgresql pg-dump
postgresql 백업하기! 같은 버전의 DB 같은 경우에는 pg_dump로 손쉽게 sql 파일로 백업이 가능 특정 테이블만 백업할 경우에는 -t 옵션을 사용하고 원격 서버의 DB를 백업할 경우에는 -h 옵션을 사용하고 원격서버 ip를 입력한다. 나같은 경우에는 접속한 DB서버와 원격 DB서버의 버전이 달라서 copy 명령을 통해 csv…
Ubuntu vscode 한글 관련 오류 해결
1. 설정 파일 수정하기 Ubuntu 에서 vscode 를 사용할 경우 한글 받침이 정상적으로 입력이 되지 않는 오류가 있다. 해당 오류는 vscode 에서 Droid Sans Fallback 폰트를 제거해주면 된다. 환결설정 단축키는 Ctrl + ,
gradle 멀티 프로젝트 세팅하기
1. spring.io에서 springboot 프로젝트 생성하기 이클립스에서 바로 할 수 있지만 난 초짜이므로 일단 SpringIO를 통해서 프로젝트를 생성. SpringIO에서 SpringBoot 프로젝트를 생성한다. 상단탭에서 PROJECTS - SPRING BOOT선택 - Quick start의 Spring Initializr 링크 선택 또는 url…