[AWS EC2] AWS EC2 시작하기 : 서버 구동 방법, 클라우드 종류
·
Cloud
이번 프로젝트에서는 AWS에 웹 서비스를 올려보려고 합니다😎 본격적으로 시작하기 전에 AWS EC2로 서버를 배포해야 할 이유에 대해 글 하나 작성하고 넘어갑니다 ❗❗❗ > 서버 구동 방법 외부에서 서비스에 접근하려면 24시간 작동하는 서비스가 필요합니다 이렇게 24시간 작동하는 서버는 다음과 같은 방법으로 구동시킬 수 있습니다 - PC를 24시간 구동시키다 - 호스팅 서비스 (Cafe24, 코리아호스팅 등) 이용 - 클라우드 서비스 (AWS, AZURE, GCP 등) 이용 클라우드는 지원하는 기능(모니터링, 로그관리, 백업, 복구 등)이 많아 개발에 좀 더 집중할 수 있어, 최근 서버 개발은 클라우드가 대세라고 할 수 있습니다 > 클라우드의 종류 1. Iaas (Infrastructure as a Se..
[Spring] JUnit / IntelliJ에서 스프링 테스트 코드 작성하기
·
Spring
견고한 서비스를 위해서는 TDD를 하거나 최소한 테스트 코드를 작성해야 합니다 📌 TDD (Test Driven Development) 방법론과 테스트 기법의 종류 스프링 부트에서 단위테스트 코드를 작성하는 법을 배워봅시다! 현재 스프링 구조를 잘 파악하고 있지는 못하여 교재와 구글링을 통해 습득한 지식으로 간단한 테스트만 진행합니다 스프링 프레임워크에 익숙해진 후에 한번 더 테스트 코드 작성에 대한 글을 쓰겠습니다 👊 이번 글은 저처럼 간단한 테스트 코드를 체험해보시고 싶은 분들만 참고하세요 😉 xUnit - 테스트 코드 작성을 도와주는 프레임워크 - 개발환경(x)에 따라 Unit 테스트를 도와주는 도구 - 대표적인 xUnit 프레임워크들 * JUnit - Java * DBUnit - DB * CppU..
TDD (Test Driven Development) 방법론과 테스트 기법의 종류
·
Computer Science/Concept
TDD : Test Driven Development - 테스트 주도 개발 - 반복 테스트를 이용한 소프트웨어 방법론 - 자동화된 테스트 코드를 작성한 후 테스트를 통과하기 위한 코드를 개발하는 방식의 개발 방식 TDD를 이용한 개발방법 - 항상 실패하는 테스트를 먼저 작성 (RED) - 테스트가 통과하는 프로덕션 코드를 작성 (GREEN) - 테스트가 통과하면 프로덕션 코드를 리펙토링 (REFACTOR) TDD의 효과 - 코드가 프로그래머의 손을 벗어나기 전에 빠르게 피드백을 받을 수 있다 - 작성한 코드의 불안정성을 개선하여 생산성을 높일 수 있다 - 프로그래머의 오버 코딩을 방지한다 - 테스트 코드를 작성하는 과정에서 히스토리가 남아, 과거 의사결정을 쉽게 상기할 수 있다 테스트 기법의 종류 1. ..
[BOJ / 백준] 16953번 A → B 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net CODE import sys from collections import deque input = sys.stdin.readline def solve(a, b): q = deque([(a, 1)]) while q: now, cnt = q.popleft() if now == b: print(cnt) return if now * 2
[BOJ / 백준] 1743번 음식물 피하기파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net CODE import sys from collections import deque input = sys.stdin.readline dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] def bfs(i, j, trash): q = deque([[i, j]]) trash[i][j] = 2 # visited result = 1..
[BOJ / 백준] 6603번 로또 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net CODE 방법 1 : itertools의 combinations 사용 import sys from itertools import combinations input = sys.stdin.readline while True: nums = list(map(int, input().split())) if len(nums) == 1 and nums[0] == 0: break l..
[BOJ / 백준] 11724번 연결 요소의 개수 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net CODE from collections import deque import sys input = sys.stdin.readline def bfs(v, edges, visited): q = deque([v]) visited[v] = True while q: now = q.popleft() for e in edges[n..
[BOJ / 백준] 2606번 바이러스 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net CODE from collections import deque import sys input = sys.stdin.readline v = int(input()) e = int(input()) edges = [[] for _ in range(v + 1)] for _ in range(e): a, b = map(int, input().split()) edges[a].append(b) ed..
[BOJ / 백준] 1697번 숨바꼭질 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net CODE from collections import deque def solve(n, k): time = [0] * (200001) q = deque([n]) time[n] = 0 while q: now = q.popleft() if now == k: print(time[k]) return if abs(k - now) > abs(k - 2 * now)..
[BOJ / 백준] 2178번 미로 탐색 파이썬(Python) 문제 풀이
·
Baekjoon
문제 문제 링크 : https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net CODE from collections import deque import sys input = sys.stdin.readline n, m = map(int, input().split()) miro = [] for i in range(n): miro.append(list(input().rstrip())) visited = [[0] * m for _ in range(n)] dir = [[1, 0], [-1, 0..