분류 전체보기
-
kubernetes Tutorials 1. 미니큐브 사용해보기DevOps/Kubernetes 2020. 4. 22. 22:27
쿠버 네티스를 통해 클러스터 관리나 컨테이너화 된 App을 관리할 수 있다. 최종적인 학습목표 1. 어떻게 컨테이너화 된 (도커화 된) App을 클러스터에 배포할까 도커 이미지로 만든 것들은 어떻게 클러스터에 배포할 수 있을까 ( Docker swarm이 아닌 쿠버 네티스에 배포 ) 2. 어떻게 배포 인스턴스를 늘리거나 줄이는 스케일을 할 수 있을까 3. 어떻게 새 버전을 배포하고 디버깅 하는지 튜토리얼에 보면 Katacode라는 것을 통해 가상 머신을 웹 브라우저에서 진행할 수 있다고 한다. 따라서 미니큐브(조그 만한 쿠버 네티스)를 웹 브라우저에서 실행하여 따로 설치가 필요 없이 Interactive 하게 진행해보자. 쿠버 네티스로 무엇을 할 수 있을까? 요즈음 대부분의 사용자들은 웹 서비스에 무중단..
-
Docker docs.1 Dockerfile로 도커 이미지 만들기DevOps/Docker 2020. 4. 22. 22:07
도커는 개발자들과 시스템 관리자들을 위한 플랫폼으로서 컨테이너를 통해 App을 개발하고 배포하고 실행할 수 있는 플랫폼이다. App을 배포할 때 사용하는 리눅스 컨테이너들을 containerization이라고 부르게 되는데 컨테이너들은 App을 좀 더 쉽게 개발하는데 도움을 준다. 몇가지 특징들 Flexible : 복잡한 App들도 containerization 할 수 있으니 유연하고 Lightweight : 호스트 커널을 공유해서 컨테이너 이미지 띄우는데 이전 VM ware 돌리는 것에 비해 가볍기 때문 Interchangeable : 업데이트가 쉬우며 Portable : 로컬에서 만든 것을 클라우드에 배포하든 어디든 잘 돌아가며 Scalable : 컨테이너를 자동으로 배포 숫자를 늘리기 쉬우며 Sta..
-
Spring MVC Formatter 사용법Spring/Spring MVC 2020. 4. 21. 01:35
다음과 같이 PathVariable을 통해서 url에 name부분을 String으로 받을 수 있지만 객체로 받고 싶다면 어떻게 해야 할까? 이 Person 클래스를 구현해도 스프링은 알 수가 없다. 따라서 스프링이 이 객체를 읽을 수 있도록 Formatter을 구현해주어야 한다. Formatter은 다음과 같이 parse와 print라는 인터페이스 2개로 이루어져 있으며 parse : 문자열을 객체로 변환한다. print : 객체를 문자열로 변환한다. 따라서 parse에는 우리가 만든 person인스턴스를 넣어주도록 하고 print 메소드는 toString()으로 처리해서 문자열로 바꿔주자. 이렇게 만든 Formatter는 다음과 같이 등록이 가능하다. 이제 테스트 코드를 통해 실행을 하게 되면 Body..
-
스트래티지 패턴 ( Strategy pattern )JAVA/Java Design Patterns 2020. 4. 20. 22:01
선행학습 2가지 1. 인터페이스 2. 위임 1. 인터페이스 우선 인터페이스는 기능에 대한 선언과 구현을 분리하며 기능을 사용하는 통로를 분리하는 것. 2. 위임 다음과 같이 객체의 기능을 빌려서 사용하는 것을 위임한다 라고 표현한다. 스트레티지 패턴이란? -여러 알고리즘을 하나의 추상적인 접근점(인터페이스)을 만들어 접근 점에서 서로 교환 가능하도록 하는 패턴. 클라이언트는 전략을 하나 가지고 있고 A, B, C 중 하나를 세팅할 수 있다. 하나의 Weapon을 통해서 Knife와 Sword를 바꿔 끼는 상황을 구현해보자. Person 클래스는 Weapon이라는 추상적인 접근점(인터페이스) 을 만들어 접근 점에서 서로 교환 가능(Knife or Sword) 하도록 하는 패턴이 됐다. Ax라는 무기가 추가..
-
백준(BOJ) 2174번 로봇 시뮬레이션알고리즘 풀이/백준(Boj) 2020. 4. 20. 12:55
문제 : https://www.acmicpc.net/problem/2174 2174번: 로봇 시뮬레이션 문제 가로 A(1≤A≤100), 세로 B(1≤B≤100) 크기의 땅이 있다. 이 땅 위에 로봇들이 N(1≤N≤100)개 있다. 로봇들의 초기 위치는 x좌표와 y좌표로 나타난다. 위의 그림에서 보듯 x좌표는 왼쪽부터, y좌표는 아래쪽부터 순서가 매겨진다. 또한 각 로봇은 맨 처음에 NWES 중 하나의 방향을 향해 서 있다. 초기에 서 있는 로봇들의 위치는 서로 다르다. 이러한 로봇들에 M(1≤M≤100)개의 명령을 내리려고 한다. 각각의 명령은 순차적으로 www.acmicpc.net 풀이 : v라는 배열에는 각 로봇들의 index와 상태들을 저장해 놓는 곳이다. 따라서 한 로봇이 할 일을 끝냈다면 갱신해..
-
백준(BOJ) 17085번 십자가 2개 놓기 (수정)알고리즘 풀이/백준(Boj) 2020. 4. 18. 00:05
문제 : https://www.acmicpc.net/problem/17085 17085번: 십자가 2개 놓기 첫째 줄에 격자판의 크기 N, M (2 ≤ N, M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에 격자판의 상태가 주어진다. 항상 두 개의 십자가를 놓을 수 있는 경우만 입력으로 주어진다. www.acmicpc.net 풀이 : 기존에는 a를 모두 늘리고 b를 구했지만 재채점 이후로는 틀리다고 나오므로 a를 늘리는 도중에 b를 늘리면서 ans를 구하는 방식으로 접근했습니다. 전체 n*m이 작기에 충분히 시간 안에 가능합니다. 코드 ( C++ )
-
백준(BOJ) 15831번 준표의 조약돌알고리즘 풀이/백준(Boj) 2020. 4. 15. 03:26
문제 : https://www.acmicpc.net/problem/15831 15831번: 준표의 조약돌 첫 줄에 조약돌의 총 개수 N, 준표가 원하는 검은 조약돌의 최대개수 B와 하얀 조약돌의 최소개수 W가 주어진다. 둘째 줄에는 N개의 조약돌의 정보가 한 줄로 주어진다. i번째 문자가 B라면 i번 조약돌은 검은색이고, W라면 흰색이다. www.acmicpc.net 풀이 : 완전 탐색은 시간 초과가 나므로 투 포인터를 이용해서 처리하자. lo와 hi 인덱스를 0으로 둔 후 조건을 만족하면 범위의 최댓값을 구하는 연산을 해준다. 코드 ( C++ )
-
백준(BOJ) 1806번 부분합알고리즘 풀이/백준(Boj) 2020. 4. 15. 03:07
문제 : https://www.acmicpc.net/problem/1806 1806번: 부분합 문제 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. 출력 첫째 줄에 구하고자 하는 최소의 길 www.acmicpc.net 풀이 : 완전 탐색을 이용 시 n이 크기에 시간 내에 처리하지 못하고 투 포인터를 이용해서 처리해보자 lo와 hi는 인덱스를 가리..