분류 전체보기 1185

[Ubuntu] E: Packages were downgraded and -y was used without --allow-downgrades.

Ubuntu 서버에서 특정 패키지를 다운그레이드 하고자 아래의 명령을 사용했다. apt-mark unhold kubeadm && \ apt-get update && apt-get install -y kubeadm=1.21.1-00 && \ apt-mark hold kubeadm 하지만 기존에 설치되어 있던 패키지의 버전(1.23.1-00)이 높아 에러 메시지와 함께 설치가 정상적으로 이뤄지지 않았다. 에러 메세지 E: Packages were downgraded and -y was used without --allow-downgrades. 메시지 내용을 보니 패키지를 다운그레이드 할 때는 -y 옵션을 사용하지 못하는 것 같다. 에러 메시지가 안내하는 대로 --allow-downgrades 옵션을 사용하면..

Linux 2022.03.27

[Redmine on AWS] Database 생성 및 설정

WAS를 생성하기 전에 먼저 Redmine에서 사용할 Database를 먼저 생성한다. Database는 AWS RDS로 생성하며, 고가용성을 위해 Multi-AZ 기능을 활성화할 것이다. 데이터베이스 엔진은 MySQL 5.7.21을 사용한다. 생성 방법 1. AWS 콘솔에서 RDS 서비스로 접속한다. 2. 서브넷 그룹 생성 서브넷 그룹은 RDS에 사용할 수 있는 서브넷과 IP 범위를 정의한다. 메뉴바에서 서브넷 그룹으로 접근하여 DB 서브넷 그룹 생성 버튼을 클릭한다. RDS가 사용할 VPC, AZ, Subnet 정보를 지정한다. 3. 데이터베이스 생성 메뉴바에서 데이터베이스로 접근하여 데이터베이스 생성 버튼을 클릭한다. 3-1) 생성 방식 및 엔진 옵션 생성 방식은 표준 생성으로 진행할 것이다. 엔진..

[BOJ] 5575번 - 타임 카드

문제 https://www.acmicpc.net/problem/5575 5575번: 타임 카드 JOI 상사는 직원의 근무시간을 타임 카드로 관리하고있다. 직원들은 전용 장비를 사용하여 타임 카드에 출근 시간을 기록한다. 근무를 마치고 퇴근할 때도 타임 카드에 퇴근 시간을 기록한다. www.acmicpc.net 직원의 출퇴근 시간을 관리하기 위해 타임카드를 사용한다. 타임카드에 출근 시간과 퇴근 시간을 기록하며, 24시간 제를 사용한다. 직원은 7시 이후에 출근하며 23시 이전에 퇴근한다. 퇴근 시간은 출근 시간보다 늦다. 직원 A, B, C의 출근 시간과 퇴근 시간이 주어졌을 때 각 지원의 근무시간을 계산하라. 풀이 내 풀이 1. 직원의 출퇴근 시각을 입력받는다. 2. datetime 모듈의 strpti..

Algorithm/백준 2022.03.25

[Redmine on AWS] ALB 생성

생성한 웹 서버로 접근하기 위해 ALB를 생성하고자 한다. 웹 서버 오토 스케일링 등은 테스트 비용 문제로 서비스 동작을 확인한 뒤에 설정할 것이다. 생성 방법 1. EC2 서비스의 왼쪽 메뉴바에서 로드 밸런서를 클릭한다. 2. 로드 밸런서 생성 버튼을 클릭한다. 3. Application Load Balancer를 선택한다. 4. ALB 생성을 위한 구성 정보를 적절하게 설정한다. 4-1) 기본 구성 인터넷을 통해 AWS 네트워크 외부에서 접근하므로 인터넷 경계를 선택한다. 4-2) 네트워크 ALB가 위치할 VPC와 AZ, 그리고 서브넷을 선택한다. 이 글에서는 ap-northeast-2a, ap-northeast-2c AZ의 public subnet에 위치한다. 4-3) 보안 그룹 ALB를 통해 80..

[Redmine on AWS] Web Server

아주 오랜만에 글을 마저 작성한다. 이번 글에서는 웹 서버를 생성할 것이다. OS는 Ubuntu 18.04 LTS를 사용하며, nginx를 웹 서버로 사용할 것이다. EC2 인스턴스를 생성하는 것 자체는 2022.02.24 - [Redmine on AWS] Bastion Host 생성와 동일하므로 이 글에서는 생략한다. Nginx 설치 패키지 설치가 필요하므로 root 권한이 필요하다. 저장소 업데이트 apt update nginx 설치 apt install nginx Nginx 서비스 활성화 서버가 재부팅할 때 nginx도 함께 동작을 시작할 수 있도록 한다. # nginx 실행 systemctl start nginx # nginx 서비스 활성화 systemctl enable nginx 웹 서버 오토 ..

[Docker] inspect - 이미지/컨테이너 세부정보 확인

inspect은 기본 명령어 중 하나로 도커 이미지 또는 컨테이너의 세부 정보를 확인할 수 있다. 명령어 docker inspect 출력 결과는 JSON 형식이다. -f 옵션을 사용하면 특정 항목만을 출력할 수도 있다. 아래 명령어는 컨테이너에 할당된 IP 주소를 확인한다. docker inspect -f "{{ .NetworkSettings.IPAddress }}" Docker 컨테이너 IP 목록 확인 docker inspect -f '{{.Name}} -> {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)

Docker 2022.03.22

[Nifi] FTP 파일 수집

Nifi를 이용해 특정 FTP 서버의 정해진 경로에서 파일을 수집하여 클라이언트의 특정 경로에 저장하려고 한다. 플로우를 구성해보자. 프로세서를 추가할 때, 아래에 선택한 프로세서에 대한 간단한 설명을 확인할 수 있다. 해당 설명을 참고하거나, 공식 문서를 참고하여 사용할 프로세서를 선택하면 된다. 프로세서마다 데이터 처리에 필요한 속성이 있을 수 있으므로 플로우를 구성할 때 호환되는 프로세서를 활용해 구성하거나, 프로세서에 필요한 값을 맞추는 작업을 별도로 수행해야 한다. 사용 프로세서 FTP에서 파일을 가져올 때는 ListFTP와 FethFTP를 사용한다. 각 프로세서의 역할은 아래와 같다. ListFTP FTP 서버에 있는 파일의 목록을 확인한다. 확인된 각 파일에 대해 새 FlowFile을 생성한..

Apache Nifi 2022.03.21

[heapq] 최소 힙, 최대 힙

2022.04.19 - 최소 힙 / 최대 힙 최소 힙과 최대 힙 개념은 위 글에서 정리했다. heapq 파이썬에서 제공하는 최소 힙 자료구조 모듈 자바의 PriorityQueue 클래스와 유사하다. heapq를 사용하면 원소가 정렬된 상태로 추가되고 삭제된다. 모듈 임포트 내장 묘듈이기 때문에 별도 라이브러리 설치 없이 사용할 수 있다. import heapq 최소 힙 생성 heapq는 파이썬의 일반 리스트를 최소 힙처럼 다룰 수 있도록 한다. 빈 리스트를 생성한 뒤, heapq 모듈을 통해 원소를 추가하거나 삭제한 리스트가 최소 힙에 해당한다. heap = [] 원소 추가 heapq.heappush 함수를 이용하여 힙에 원소를 추가한다. 첫 번째 매개변수는 원소를 추가할 리스트이고, 두 번째 매개변수는..

Python 2022.03.20

최소 힙 / 최대 힙

2022.03.18 - 힙 트리 (Heap tree) 글에 이어서, 힙 트리에는 두 가지 종류가 존재한다. 최소 힙 (Min heap) : 부모 노드가 자식 노드보다 작거나 같다. 최대 힙 (Max heap) : 부모 노드가 자식 노드보다 크거나 같다. 형제간에는 대소 관계가 없다. 최소 힙에서는 루트 노드가 최솟값이 되고 최대 힙에서는 루트 노드가 최댓값이 된다. 삽입 연산 트리 끝에 노드를 추가한다. 부모 노드와 대소를 비교한다. 최대 힙인 경우, 추가한 값이 부모 노드보다 크면 자리를 바꾼다. 최소 힙인 경우, 추가한 값이 부모 노드보다 작으면 자리를 바꾼다. 2번을 반복한다. 코드 삽입 연산을 python 코드로 나타내면 아래와 같다. def insert_h(heap, val): heap.appe..

자료구조 2022.03.19

힙 트리 (Heap tree)

힙 트리 최댓값 또는 최솟값을 빠르게 찾기 위해 고안된 완전 이진트리의 일종 우선순위 큐를 위해 만들어진 자료구조이다. 부모-자식 노드 간의 대소관계가 성립한다는 속성을 만족하며, 일종의 반정렬 상태(느슨한 정렬 상태)를 유지한다. 형제 간의 대소 관계는 없다. 값을 중복하여 저장할 수 있으며, 일반적으로 간단히 heap이라고 말한다. 우선순위 큐 데이터가 우선순위를 가지고 있어, 우선순위가 높은 데이터가 먼저 나가는 우선순위의 개념을 큐에 도입한 자료 구조 배열, 연결 리스트 또는 힙으로 구현할 수 있으며 셋 중에서는 힙으로 구현하는 것이 가장 효율적이다. 구현 힙 트리는 1차원 배열로도 충분히 구현할 수 있다. 조건 루트 노드의 인덱스는 1이다. 0으로 설정하면 부모-자식 간의 대소관계를 표현하기 어..

자료구조 2022.03.18