2021/01 46

Ubuntu 환경에서 Jira Server 구축하기

이슈 트래킹 및 협업 툴 사용을 위해 Jira Server를 구축해봤다. 참고 블로그 (여기서는 DB를 mariadb를 쓰는데, mysql로 설치) How to Install Jira Project Management Software on Ubuntu 18.04 | 16.04 This brief tutorial shows students and new users how to install Jira project management platform on Ubuntu 18.04 | 16.04 servers. Jira is a proprietary project management software from Atlassian which… websiteforstudents.com VM 및 설치 소프트웨어 정보 L..

DevOps/Jira 2021.01.29

[BOJ 백준] 14620번 : 꽃길(Python, 파이썬)

www.acmicpc.net/problem/14620 14620번: 꽃길 2017년 4월 5일 식목일을 맞이한 진아는 나무를 심는 대신 하이테크관 앞 화단에 꽃을 심어 등교할 때 마다 꽃길을 걷고 싶었다. 진아가 가진 꽃의 씨앗은 꽃을 심고나면 정확히 1년후에 꽃이 피므 www.acmicpc.net 백트래킹을 활용하는 문제였다. dfs 함수에서 반복문을 돌면서 백트래킹을 하는 부분을 블로그 참고해서 풀었다. 소스 코드 import sys sys.stdin = open("input.txt", "r") flower_dir = [(0,0),(-1,0),(1,0),(0,-1),(0,1)] # 현위치, 상, 하, 좌, 우 n = int(input()) board = [list(map(int, input().spl..

Python 파이썬 - 소수 판별 알고리즘 (에라토스테네스의 체)

가끔 알고리즘 문제에 나오는 소수계산을 위해 정리하는 글이다.소수란, 1과 자기 자신 이외에 약수를 가지지 않는 1보다 큰 자연수 이다. 1은 소수가 아니다 소수 판별 알고리즘은 대표적으로 두가지 방법으로 구현 할 수 있다. 일반적인 방법 우선, 반복문을 사용하는 것이다. 이 방법은 1개의 숫자가 소수인지 아닌지 판별하는데 사용하면 좋다. 여러 숫자를 소수 판별해야하는 경우는 아래 있는 에라토스테네스의 체가 더 유용하다. n이라는 숫자가 소수인지 확인하기 위해서는 2부터 n-1까지 나눠보면서 나머지가 0이 나오는 숫자가 한개도 없으면 n은 소수이다. 하지만 n-1까지 나눠보지 않더고 √n 까지만 확인해봐도 된다. 소스코드 import sys, math # 소수 판별 알고리즘 : 제곱근까지 구하기 def ..

[BOJ 백준] 1747번 : 소수&팰린드롬(Python, 파이썬)

www.acmicpc.net/problem/1747 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net 소수 판별과 팰린드롬을 사용하는 문제이다. 파이썬의 경우 팰린드롬은 굉장히 쉽게 판별할 수 있으므로 패스한다. 소수 판별은 에라토스테네스의 체 2부터 제곱근까지 나머지 확인 2가지 방식으로 테스트를 해봤는데, 시간복잡도는 크게 차이나지 않는 것 같다. 다만, 소수의 갯수보다 팰린드롬의 갯수가 더 많으므로 팰린드롬인지 확인해주는 것을 먼저 해주는게 시간복잡도 측면에서 효율적이..

[BOJ 백준] 4358번 : 생태학(Python, 파이썬)

4358번: 생태학 (acmicpc.net) 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 문제는 골드 4였지만, 딕셔너리를 사용하면 쉽게 풀리는 문제다. 단순한 딕셔너리가 아니라, defaultdict를 썼다면 if, else 분기를 안해도 됐을 것이다. 주의해야할 부분은 다음과 같다. 입력 소숫점 넷째짜리까지 계산 소숫점 넷째짜리까지 출력 우선 입력이 밑도 끝도 없이 들어와서 밑도 끝도 없이 끝난다. 들어오는 나무의 개수라도 알려주면 좋겠지만 그딴게 없다. 더 이상 입력이 들어오지 않을 때 까..

[BOJ 백준] 15565번 : 귀여운 라이언 (Python, 파이썬)

www.acmicpc.net/problem/15565 15565번: 귀여운 라이언 꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의 www.acmicpc.net 슬라이딩 윈도우를 활용하는 문제였다. 문제에서 K개 이상의 라이언 인형을 포함하는 가장 작은 연속된 인형들의 집합의 크기를 구하라고 했으므로 일단 어피치는 신경쓰지말고 라이언 인형이 딱 K개가 되는 구간만 확인해주면 된다. 항상 K개가 되는 것을 확인해야 하므로 슬라이딩 윈도우를 활용할 수 있는 것이다. 예제에서 라이언 인형의 위치는 0, 4, 6, 9 이다. 라이언 인형은 총 4개가 있으며 K가 3이기 ..

[BOJ 백준] 11659번 : 구간 합 구하기 4 (Python, 파이썬)

www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 누적 합을 구해놓으면 쉽게 풀리는 문제였다. 단, python의 경우 input( )이 아닌 sys.stdin.readline()을 써야 시간초과에 걸리지 않는다. 소스코드 import sys n, m = map(int, sys.stdin.readline().split()) _list = list(map(int, sys.stdin.readline().split())) _sum = [0 f..

[Kubernetes Study - 05] 기본 실습 (3) - AKS를 이용한 내부 클러스터 통신

인프런에서 쿠버네티스 강의를 듣는데, 강의 환경은 VM 3개를 띄워서 1대는 마스터 노드, 나머지 2대는 워커노드로 사용을 한다. 이번 강의에서 실습한 내용은 아래와 같다 Pod에 Service를 붙이기 Master Node에서 curl로 Cluster IP를 호출한다 해당 IP의 9000번 포트에 접근하여 hostname을 url 매개변수로 넘겨주면 9000번 포트에 올라가 있는 Pod의 호스트 네임이 출력된다. (Pod의 이미지의 내용이 이렇다) 우선 각 오브젝트들의 매니페스트 정보는 다음과 같다 pod.yaml apiVersion: v1 kind: Pod metadata: name: pod-1 labels: app: pod spec: nodeSelector: kubernetes.io/hostname..

DevOps/Kubernetes 2021.01.22

[Kubernetes Study - 03] 기본 실습 (1) - yaml 파일 작성 및 Pod 내 컨테이너 접속

쿠버네티스의 가장 기본이 되는 yaml 파일 작성 및 Pod 안에 있는 컨테이너에 접속하는 방법을 알아보자 현재 Azure의 AKS를 활용하여 클러스터를 구축한 상황이다. 하나 짚고 넘어갈 것은, AKS를 사용하여 구축한 클러스터에서 Master Node는 Azure가 되고, AKS를 생성할 때 만든 노드들이 전부 Worker Node가 된다. 호스팅되는 Kubernetes 서비스인 Azure는 상태 모니터링 및 유지 관리 같은 중요 작업을 처리합니다. Kubernetes 마스터는 Azure에서 관리됩니다. 에이전트 노드만 관리하고 유지하면 됩니다. 관리되는 Kubernetes 서비스, AKS가 무료이므로 마스터가 아니라 클러스터 내의 에이전트 노드에 대해서만 지불합니다. Azure Kubernetes ..

DevOps/Kubernetes 2021.01.21

[Kubernetes Study - 02] 기본 개념 이해

참고 블로그 : 조대협의 블로그 쿠버네티스 #2 - 개념 이해 (1/2) 쿠버네티스 #2 개념 이해 (1/2) 조대협 (http://bcho.tistory.com) 쿠버네티스를 공부하면서 가장 헷갈리는 부분이 용어와 컨셉이다. 이 컨셉만 잘 이해하면 쿠버네티스를 쉽게 이해하고 사용할 수 있지 bcho.tistory.com 오브젝트 구성요소 기본적인 구성단위가 되는 기본 오브젝트 기본 오브젝트를 생성하고 관리하는 컨트롤러 추가정보인 메타정보 오브젝트 스펙 : 오브젝트의 특성을 기술한 것. yaml이나 json으로 스펙 정의 (manifest file) 기본 오브젝트 종류 Pod : 컨테이너화 된 애플리케이션 Service : 로드밸런서 Volume : 디스크 Namespace : 패키지명 Pod 쿠버네티스..

DevOps/Kubernetes 2021.01.19