스프링 부트 스프링 부트의 기반은 스프링 프레임워크다. 스프링 프레임워크는 의존성 주입(Dependency Injection) 개념을 기반으로 되어있고, XML 구성파일을 사용한다. 기능이 점차 증가되면서 XML 구성 파일을 사용하는건 점점 부담이되어, 스프링부트가 출시되었다. 스프링 부트는 스프링 프레임워크 + 서드파티(제 3자의 기업) 제품으로 구성되어있고, 핵심 모듈의 설정 방식을 개선하여 빠르게 개발할 수 있도록 스프링 프레임워크 보다 개선된 프레임워크다. 스프링 부트는 기본 구성이 적용되어있어, 추가적인 설정을 최소화하고 필요한 경우에만 구성을 작성한다. 또한 독립형 JAR 파일 기반의 런타임 모델도 지원한다. (이전에는 WAR 파일로 배포 및 실행) @SpringBootApplication 스..
Read more지노드란? 서로 연결되어있는 서버들이 상태 정보 등을 주고받는데, 이때 key-value 형식으로 카프카 지노드에 저장된다. 지노드에 저장된 key-value 를 사용하여 분산 애플리케이션이 서로 데이터를 주고받고, 이러한 지노드에 접속하여 상태 정보를 확인할 수 있는 명령어에 대해 더 자세히 알아보자. 지노드 경로 설정 카프카의 환경설정 파일에서 지노드 경로를 설정할 수 있다. vi /usr/local/kafka/config/server.properties 환경 설정 파일에서 아래 부분을 수정하자. zooleeper.connect=servername/test-kafka # test-kafka 경로로 설정 지노드 접속 /usr/local/zookeeper/bin/zkCli.sh 접속한 후, 아래 명령어를..
Read more쿠버네티스의 개념 컨테이너를 실행하는 서버 클러스터를 하나의 커다란 논리 서버로 만드는 컨테이너 오케스트레이터이다. 또한 컨테이너를 쉽고 빠르게 배포 및 확장할 수 있고, 관리를 자동화해주는 오픈소스 플랫폼이다. 오케스트레이터 데브옵스(DevOps) 직원(또는 자동화)이 레지스트리에서 이미지를 가져오고, 컨테이너 이미지를 배치하고, 실행 중인 컨테이너를 관리할 수 있게 하는 도구이다. 역할 1) 컨테이너를 배포/실행 하면서 '무중단 롤링 업그레이드'를 지원한다. = 새로운 버전의 컨테이너가 배포되더라도, 기존의 컨테이너가 중지되지 않고 교체되며 이를 무중단 배포라고 한다. 2) 하나 혹은 다수의 컨테이너가 배치된 포드(pod)를 클러스터의 가용 노드에 스케줄링 할 수 있다. 3) 실행중인 컨테이너의 상태..
Read more문제 10870번 - 피보나치수열 https://www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 재귀함수 풀이 import java.util.Scanner; public class M10870 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long A = sc.nextLong(); System.out.println(facto..
Read more배열 Array를 역순 정렬하기 Arrays.sort(arr, Collections.reverseOrder());
Read moreORA-10858 a non-numeric chracter was found where a numeric as expected 해당 오류는 아래와 같은 상황에서 발생한다. SELECT TO_DATE(SYSDATE, 'YYYYMMDD') FROM DUAL; SYSDATE는 이미 DATE 타입의 값인데 해당 값을 다시 TO_DATE()를 사용하여 DATE 타입으로 변환을 시도했기 때문에 발생한다. SELECT TO_CHAR(SYSDATE, 'YYYYMMDD') FROM DUAL; Foramt 을 변경하려면, Date 타입의 값을 TO_CHAR()을 사용하여 변경해주자. ORA-01481 invalid number format model 해당 오류는 아래와 같은 상황에서 발생한다. SELECT TO_CHAR(..
Read moreStream 사용하여 배열 array의 max, min 구하기 1) max int arrayMax = Arrays.stream(arr).max().getAsInt(); 2) min int arrayMin = Arrays.stream(arr).min().getAsInt();
Read more2750번 : 수 정렬하기 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 선택정렬 풀이 import java.util.Scanner; public class M2750_선택정렬 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); int[] arr = new int[A]; for(int i = 0; i < A; i++) ..
Read morestartDate-endDate 기준 포함되는 월(Month) 조회 SELECT TO_CHAR(ADD_MONTHS(TO_DATE(SUBSTR('20210301', 5, 2), 'MM'), LEVEL - 1 ),'MM') AS MONTHS FROM DUAL CONNECT BY LEVEL
Read more백준 2884번 제출 코드 1) 기본 import java.util.Scanner; public class M2884_2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String A = sc.nextLine(); String[] array = A.split(" "); int hour = Integer.parseInt(array[0]); int minute = Integer.parseInt(array[1]); if (minute >= 45) { minute = minute - 45; } else { minute = 60 + minute - 45; hour = hour - 1; if (hour < 0) { ho..
Read more백준 2588번 1) 문제 2) 입력/출력 예제 제출 코드 import java.util.Scanner; import java.util.stream.Stream; public class M2588 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int A = sc.nextInt(); // 472 int B = sc.nextInt(); // 385 /* 풀이 진행 */ // 1) 입력값 배열로 변경 int[] digitsA = Stream.of(String.valueOf(A).split("")) .mapToInt(Integer::parseInt) .toArray(); int[] digitsB = Stream.of..
Read moreKafka in Docker 설치 Docker 에 Kafka, Zookeeper 설치는 이전 포스팅을 참고바란다. https://devfunny.tistory.com/429?category=820624 docker로 Kafka, Zookeeper 설치 (with docker-compose) Docker 이미지 설치 1) Kafka 설치 docker pull wurstmeister/kafka 2) zookeeper 설치 docker pull wurstmeister/zookeeper docker-compose 파일 생성 1) docker-compose.yml 파일 생성 (local PC에 경로는 자유.. devfunny.tistory.com 프로젝트 구조 1) Producer 역할의 Service - Pro..
Read moreDocker 에 MariaDB 설치 및 실행까지의 과정 1) 이미지 다운로드 docker pull mariadb 2) 컨테이너 실행 docker container run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 --name mariadb mariadb 3) 컨테이너 확인 docker ps 4) 컨테이너ID로 접속 docker exec -it containterID bash #containterID : 위 명령어에서 확인된 CONTAINER ID 5) 로그인 mysql -u root -p # 이후 password 입력 : 1234 MariaDB 설정 1) 데이터베이스 생성 create database seohaedb; 2) 데이터베이스 사용 use seohaedb; 3..
Read more1) rqbbitmq 이미지 설치 docker pull rabbitmq:3-management 2) rabbitmq 컨테이너 실행 docker run -d -p 15672:15672 -p 5672:5672 --name msa-rabbitmq rabbitmq:3-management 3) 접속 확인 localhost:15672 ID: guest PWD : guest
Read more현재 프로젝트 목록 Prj1. Config -> 여러 Service 프로젝트들의 Config를 공통으로 관리하는 프로젝트 Prj2. API-Gateway -> 여러 Service 프로젝트들의 Gateway 역할을 하는 프로젝트 Prj3. User-Service -> User, Order, OrderItem 등 여러 서비스 프로젝트들 중에 유저 프로젝트 User-Service 프로젝트 우선 서비스 프로젝트들 중 하나인 User-Service 프로젝트에 추가 설정을 해보자. 1) pom.xml org.springframework.boot spring-cloud-starter-bus-amqp 2) application.yml spring: application: name: user-service rabbitm..
Read more