일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- Elasticsearch
- 클라우드
- Apache Kafka
- 자료구조
- 백트래킹
- 월미도
- 카프카
- 스프링부트
- 로드밸런서
- Spring Data JPA
- 코드업
- 인천여행
- Docker
- 스프링
- Spring
- 클라우드 컴퓨팅
- aws
- 쿠버네티스
- Spring Boot
- 오일러프로젝트
- gcp
- JPA
- springboot
- DFS
- 프로그래밍문제
- 스프링 부트
- Kafka
- 알고리즘
- VPC
- Today
- Total
목록분류 전체보기 (120)
GW LABS
저번 포스팅에서는 클라우드 구성요소와 GCP의 기본적인 구조와 특징, 대표적인 서비스들이 무엇이 있는지 알아봤다. 이번시간에서는 직접 가상머신을 생성하고, 여러 대의 가상머신에 로드밸런서를 연결하여 트래픽을 분산하는 방법까지 살펴보려고 한다. 예제 서비스 구조 이번 포스팅에서 구현해보려고 하는 서비스의 구조는 위의 그림과 같다. 사용자는 로드밸런서에 할당된 고정 IP(static ip)로 서비스에 접근한다. 그러면 로드밸런서는 트래픽을 분산하여 www1 가상머신이나 www2 가상머신에 요청을 보내게 된다. 각각의 www1, www2는 받은 요청대로 html 응답을 사용자에게 보낸다. 예제에서는 www1, www2로 트래픽 분산이 실제로 일어나는지 확인하기 위해서 가상머신의 이름을 출력하는 html을 보내..
이전 포스팅에서 클라우드의 장단점을 통해서 클라우드를 알아봤다. 이번 포스팅에서는 기본적인 클라우드 컴퓨팅의 구성요소들을 알아보고 Google Cloud Platform의 특징과 서비스들을 알아본다. 먼저 하나의 질문으로 이번 글을 시작해보려고 한다. 만약 우리의 장비가 망가진다면? 철수는 소규모 인터넷 쇼핑몰을 서비스하고 있는 기업에서 웹 개발자겸 시스템 엔지니어로 근무하고 있다. 그런데 이게 웬일인가!? 서버가 먹통이되어 홈페이지로 접속이 안되고 있다! 철수는 침착하게 옆방에 있는 서버 컴퓨터를 재부팅시키고 웹 서버를 다시 실행시켜줬다. 다시 접속이 된다. 휴 다행이다. 다음날 철수 회사 근처에서 엄청난 폭우가 쏟아지고 있다. 갑자기 벼락이 회사 건물에 떨어져 정전이 되버렸다. 철수는 재빨리 옆방을 ..
이번 포스팅에서는 클라우드 컴퓨팅의 개념과 어떤 장단점들이 있는지 정리하려고 한다. 본격적으로 GCP에 대해 스터디하기 전에 클라우드 컴퓨팅의 개념을 다시 한번 살펴보고 어떤 경우에 클라우드를 사용할 수 있는지, 어떤 경우에는 사용하면 안되는지 장단점을 통해서 알아보자. 클라우드 컴퓨팅 클라우드 컴퓨팅은 인터넷을 통해 서버, 네트워크 장비 등 다양한 컴퓨팅 리소스를 클라우드 제공자에게 비용을 지불하고 사용하는 것을 의미한다. 클라우드 컴퓨팅을 이용하면 개발자는 장비를 구축하는 수고와 비용없이 손쉽게 컴퓨팅 자원을 사용할 수 있게 된다. 그렇다면 클라우드를 사용하지 않고 직접 장비를 관리하는 온프레미스 방식과 클라우드의 장단점은 어떤 것들이 있을까? 온프레미스 vs 클라우드 비용측면에서 온프레미스와 클라우..
2020 하반기 구글 클라우드 스터디 잼에 참가가 확정되었다! 생각도 못하고 있었는데 클라우드 컴퓨팅에 공부할 수 있는 좋은 기회가 찾아왔다. AWS와 Azure는 Docker를 클라우드 환경에서 어떻게 사용하는지 궁금해서 몇 번 개발용으로 사용해본 적이 있지만 GCP는 사용해본적이 없다. 또 클라우드에 대한 전체적인 지식이 없다보니 막히는 부분도 많았었다. 이번 스터디 잼에 참가가 되어서 클라우드 환경에 대해 공부해볼 수 있는 좋은 기회가 왔다! 구글 클라우드 스터디 잼 구글 클라우드 스터디잼은 Qwiklab이라는 구글 클라우드의 교육 프로그램에서 진행된다. Qwiklab은직접 GCP 환경을 체험해보면서 주어진 과제를 수행하는 Hands-on Lab이다. 텍스트로 된 설명 이외에도 과금될 염려없이 클라..
백준 2583번 영역 구하기 문제는 그래프 탐색 문제의 응용으로, 주어진 좌표로 탐색할 수 없는 영역을 표시하는 부분을 구현하는 것이 핵심인 문제이다. 처음에 접근할 때에는 좌표의 오른쪽 끝점을 포함해서 표시했는데, 이렇게 구현하면 훨씬 큰 영역을 잡게된다. 오른쪽 끝 점에서 1을 빼주고 영역을 표시하고 DFS로 탐색하면 쉽게 풀 수 있는 문제였다. DFS로 구현했을 때 PyPy3 환경에서는 재귀깊이 초과로 런타임 에러가 발생할 수 있다. Python3 환경에서 실행하자. import sys sys.setrecursionlimit(10**6) def dfs(row, col, table): if table[row][col] == 1: return 1 table[row][col] = 1 dx = [0, 0,..
문자열을 뒤집는 문제는 프로그래머의 기본이 되어있는지 판단할 수 있는 문제라고 한다. 17413번 단어 뒤집기 2는 단순히 배열을 뒤집는 것에서 넘어 특정 조건에 맞는 문자열만 뒤집는 문제이다. 투 포인터와 큐를 이용해서 풀면 되겠다고 생각했고, 깔끔하지 못한 코딩이였지만 한번에 정답을 맞출 수 있었다. 다른 사람들의 풀이를 보면 문자열을 문자단위로 분해해서 순회하는 방법, 스택을 이용하는 방법들도 있었다. 아래는 소스코드이다. import sys from collections import deque if __name__ == "__main__": q = deque() target_string = sys.stdin.readline().replace("\n", "") idx_start, idx_end = ..
백준 4963번 섬의 개수 문제는 전형적인 그래프 탐색 문제이다. BFS, DFS 두 방법 모두 풀이가 가능하고 인접 행렬 형태의 자료구조를 탐색하는 연습을 하기에 좋은 문제이다. 문제를 풀면서 BFS로 접근했지만 메모리 초과, 시간 초과 문제로 DFS로 변경해서 풀이했다. 소스구조에 어떤 문제가 있는지는 차후에 분석해봐야 한다. 아래의 소스코드는 DFS로 풀이한 솔루션이다. import sys sys.setrecursionlimit(10**6) def dfs(row, col): dx = [0, 0, 1, -1, 1, -1, 1, -1] dy = [1, -1, 0, 0, -1, 1, 1, -1] board[row][col] = 0 for idx in range(8): nx = col + dx[idx] n..
백준 18044번 쉬운 계단 수 문제는 전형적인 백트래킹, 동적계획법 문제였다. 처음 문제를 접했을 때 당황했지만, 천천히 의사코드로 먼저 로직을 구성하고 나서는 어렵지 않게 풀이할 수 있었다. 하향식으로 문제를 풀었지만 상향식 해결법으로 풀이하는 고수들도 많다. 의사코드를 적어놔서 독자 여러분들도 어렵지 않게 로직을 이해할 수 있을 거라고 생각한다. import sys def find_step_number(length, last_num, container, cache): # 컨테이너 길이가 N이라면 if length == 0: return 1 if cache[length][last_num] != -1: return cache[length][last_num] # 숫자 0-9까지 반복 count = 0 f..