일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 프로그래밍문제
- 카프카
- 백트래킹
- 오일러프로젝트
- 클라우드 컴퓨팅
- 자료구조
- aws
- 월미도
- 스프링 부트
- Elasticsearch
- JPA
- 스프링부트
- 코드업
- 알고리즘
- Apache Kafka
- 쿠버네티스
- 클라우드
- 백준
- Docker
- 로드밸런서
- Spring Data JPA
- Spring Boot
- VPC
- 스프링
- springboot
- gcp
- 인천여행
- Kafka
- DFS
- Spring
- Today
- Total
목록분류 전체보기 (120)
GW LABS
백준 11497번 통나무 건너뛰기는 그리디 문제로 정렬을 해서 적절한 순서로 통나무들을 배열시키는 문제이다. 기본 아이디어는 우선 통나무들을 정렬시키고 큰 통나무들을 가운데에, 나머지 통나무들을 배열 양쪽 끝쪽으로 배열시키면 되는 것이다. 그 후 가운데서부터 왼쪽 끝, 오른쪽 끝으로 차이를 계산해서 가장 큰 값을 리턴하면 된다. 처음 접근방법은 가운데 값에서 한 개의 차이값들만 계산해서 [1, 2, 3, 4, 5, 100, 101, 102, 103, 104] 같은 예외에서 실패했다. 다른 그리디 문제들을 통해 예외를 생각해보는 연습을 계속해야겠다. import sys cases = int(input()) for _ in range(cases): length = int(input()) lumbers = l..
이번 포스팅에서는 GCP의 Auto Scaling 기능에 대해 알아본다. 나는 클라우드의 막강한 기능 중 하나가 오토스케일링이라고 생각한다. 오토스케일링 기능이 없었다면 클라우드의 이점이 많이 상실되었을 것이다. 서버 트래픽의 증가에 따라 서버를 증설해야할 때 개발자가 수동으로 인스턴스를 생성하는 것도 일종의 비용으로 볼 수 있기 때문이다. 다행히 오토스케일링 기능을 이용하면 트래픽에 따라 유연하게 확장할 수 있다. Instance Group을 통한 Auto Scaling 이전 Deployment Manager 포스팅에서 오토스케일링까지 적용했지만 직접적으로 콘솔화면에서 리소스를 생성하는 실습을 진행해보려고 한다. 순서는 다음과 같다. 방화벽 규칙 생성 인스턴스 템플릿 생성 인스턴스 그룹 생성 로드밸런서..
이번 포스팅에서는 클라우드 모니터링 서비스에 대해 알아본다. VM 인스턴스들을 생성하고 웹 서버로 사용하고 있다고 가정하자. 갑자기 서비스가 불안정해질 때 인스턴스들의 상태를 파악해야한다. 그렇다고 직접 인스턴스들에 SSH로 접속해서 top 명령어로 보기에는 아주 번거로울 것이다. GCP의 모니터링 서비스는 이러한 상황에서 아주 편리하게 이용할 수 있다. GCP Monitoring GCP Monitoring 서비스는 GCP 리소스들의 상태를 파악하기 위한 모니터링 서비스이다. 멋진 대시보드를 지원하고 알림서비스 등을 지원하고 있다. 실습을 통해서 빠르게 알아보자. 우선 VM 인스턴스를 생성하고 웹 서버를 설치한 다음, 모니터링 서비스에 필요한 것들을 인스턴스 내에 직접 설치할 것이다. 실제 운영에 사용할..
14891번 톱니바퀴는 구현 및 시뮬레이션 문제로 좋은 연습이 된 문제다. 4개의 기어들이 회전방향에 따라서 옆에 붙어있는 기어들도 회전시킨다. 그런데 서로 맞물린 극성이 다르다면 회전시킬 수 없고, 회전시킬 수 없는 기어에 맞물린 기어들도 회전시킬 수 없다. 문제를 읽어가면서 부담감이 컸는데 천천히 구현해가면 충분히 풀이할 수 있는 문제였다. 구현과 시뮬레이션 관련한 문제를 좀 더 연습을 많이 해야겠다. import sys from collections import deque if __name__ == "__main__": gears = [] for _ in range(4): gears.append(deque(list(map(int, list(sys.stdin.readline().replace("\n"..
이번 포스팅에서는 GCP Deployment Manager에 대해 알아본다. GCP를 사용하면서 Cloud Console 화면만을 이용해서 개발을 진행한다고 가정해보자. 매번 VM 인스턴스를 생성할 때마다 네비게이션 메뉴에서 Compute Engine을 찾고, 거기에서 VM instances란을 클릭한다. 그리고 create 버튼을 클릭에서 정보를 입력하고 생성한다. 클라우드에 대한 지식이 없는 상태에서는 이렇게 접근하는 것이 안전해보일 수 있지만, 익숙해진 상태에서는 너무 지루하고 비효율적이다. Cloud Shell을 사용한다면 조금은 편해진다. 인스턴스 생성명령어를 미리 메모장에 작성해두고 설정을 바꿔야한다면 명령어를 수정해서 다시 실행하면 된다. 그러나 매번 변경이 일어날때마다 이런 작업을 해야한다..
이번 포스팅에서는 클라우드 컴퓨팅의 근간이 되는 VPC 네트워크에 대해 알아보자. 네트워크는 클라우드 컴퓨팅의 중요한 요소이므로 꼭 알아두어야 할 개념이다. 대부분의 클라우드 제공자들은 VPC 네트워크를 기본 네트워크 구성으로 제공하고 있으므로, 한번 개념을 잡아두면 대부분의 클라우드 서비스의 네트워크를 이용할 수 있을 것이다. VPC Virtual Private Cloud(VPC)는 GCP 내부 네트워크에서 가상화되어 서비스되는 네트워크이다. 대부분의 클라우드 서비스들은 VPC 형태의 네트워크 서비스를 제공한다. 클라우드 리소스의 대부분이 VPC 네트워크를 통해서 제공된다. 또한 방화벽 규칙, 전달 규칙 등 다양한 네트워크 정책들은 VPC 내에서 구현된다. VPC 네트워크는 위의 그림처럼 구성이 된다...
SElinux를 사용하고 있는 리눅스에서 Docker를 사용할 때에는 SElinux의 보안정책에 주의해야한다. CentOS에서 Docker를 설치하고 사용하고자 하는 컨테이너에 volume을 마운트하면 컨테이너가 마운트한 경로에 접근이 안되는 경우가 발생할 수 있기 때문이다. 왜 그럴까? 이유는 Docker 호스트가 컨테이너에 대한 SElinux의 정책을 알 수 없기 때문이다. # docker run -v /var/db:/data1 some_image_name 따라서 SElinux를 사용하고 있는 리눅스에서는 위의 명령어와 같은 방식으로 Docker 컨테이너를 생성할 때 /var/db 경로는 컨테이너에 쓸 수 없다. 컨테이너 내부에서 접근하려고 해도 호스트의 SElinux 정책으로 접근권한이 없다는 메세..
백준 2437번 저울 문제는 정렬을 이용해서 풀 수 있는 그리디 알고리즘 문제이다. 주어진 추들을 정렬하고 추들을 이용해서 만들 수 없는 무게의 최소값을 찾는 문제이기 때문에 역순으로 정렬하여 접근했다. 처음 풀이에서는 최소값을 1씩 늘려가면서 순회하느라 시간초과가 발생했다. 그러나 추들의 무게를 더해주면서 최소값을 찾으면 정답을 얻을 수 있다. 아래는 풀이법이다. import sys if __name__ == "__main__": cases = int(sys.stdin.readline()) weight = list(map(int, sys.stdin.readline().split(" "))) weight.sort(reverse=True) num_check = 1 while True: target = nu..