[AWS] EC2 + CodeDeploy + S3 + GithubActions 조합으로 자동화배포 구축하기 - (1) EC2 인스턴스 생성 및 세팅 해당 글은 2024년 4월 11일에 생성된 인스턴스를 기준으로 작성되었습니다. (Ubuntu 22.04로 만들었지만 20.04로 만들어도 문제없습니다! 직접 만들어서 확인해 봤습니다.) 💡 프로젝트 기술스택 : Sprin yooooooni.tistory.com 이전 글에서 EC2 인스턴스 생성 및 우분투 환경 세팅 과정을 확인할 수 있습니다. 1. CodeDeploy 애플리케이션 및 배포 그룹 생성 본격적으로 애플리케이션을 생성하기 전에 역할을 하나 더 만들어줄 겁니다. IAM > 역할 > 역할 생성으로 들어갑니다. 위처럼 AWS 서비스, CodeDeploy..
해당 글은 2024년 4월 11일에 생성된 인스턴스를 기준으로 작성되었습니다. (Ubuntu 22.04로 만들었지만 20.04로 만들어도 문제없습니다! 직접 만들어서 확인해 봤습니다.) 💡 프로젝트 기술스택 : SpringBoot + MySQL + JDK 17 1. EC2 인스턴스 만들기 AWS에 로그인한 후 EC2를 클릭하여 인스턴스를 시작합니다. 인스턴스의 이름을 작성하고 AMI를 선택합니다. 저는 우분투 22.04로 만들었지만, 20.04로 만들어도 괜찮습니다. 다음으로 키 페어를 만들어줍니다. 저는 기존의 키 페어를 사용했지만, 처음 만드시는 분들은 만들어 주셔야 합니다. 만드는 방법은 바로 아래에 나와있습니다. 새 키 페어 생성 버튼을 누른 후 키 페어 이름과 RSA를 선택한 뒤 생성합니다. 네..
https://www.acmicpc.net/problem/3085 3085번: 사탕 게임예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다.www.acmicpc.net 인접한 두 사탕의 색깔이 다르면 스왑한 뒤 전체 사탕의 색깔을 탐색하면서 하나의 색으로 일치하는 가장 긴 행 or 열을 찾으면 된다. 처음에 스왑하고 유지되는 줄 알았는데, 탐색 후에 다시 원래 상태로 되돌려놔야 한다.- 상하좌우로 탐색- 어? 나랑 붙어있는데 색깔이 다르네?- 스왑 후 N x N 탐색하면서 색깔이 연속하는 가장 긴 행 or 열을 찾기- 탐색 끝나면 다시 재스왑 (원래대로 돌려놓기)- 다시 색깔 다른 인접한 칸 찾기- 반복 1. origin에 기존 색깔을 저장해 두고, 인접한 사탕의 색깔이 다르면 스..
https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net 일단 이 문제는 1080번 행렬 문제와 비슷하다. 문제에서 최소 횟수를 요구하고 있기 때문에 한 번 바꿔준 애는 다시 바꿔주면 안 되겠다는 생각이 들었다. 현재 전구 상태가 원하는 전구 상태와 같으면 그냥 넘어가고, 아니면 눌러주는 방식으로 구현하고자 했다. 하지만 이렇게 풀면 예제를 틀린다. 예제에서는 000을 010으로 바꾸고 싶어 하는데, 내가 말한 대로 풀게 되..
https://www.acmicpc.net/problem/1080 1080번: 행렬 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. www.acmicpc.net 문제 풀이 a, b를 입력받은 후 비교 메서드를 호출한다. 3*3으로 뒤집어주기 때문에 n-2, m-2 범위까지만 비교한다. 3*3 범위 중 (0, 0)가 달라서 뒤집어줄 때 나머지도 함께 뒤집히기 때문이다. 뒤집기 메서드를 호출할 때마다 count를 하나씩 올린다. 뒤집기 작업이 끝난 후에는 모든 행렬 요소를 비교한다. 이때는 n, m의 전체 범위를 기준으로 비교한다. 만약 한 개라도 다른 부분이 있다면 바로..
https://www.acmicpc.net/problem/21314 21314번: 민겸 수 민겸 수 하나가 주어진다. 민겸 수는 대문자 M과 K로만 이루어진 문자열이며, 길이는 3,000을 넘지 않는다. www.acmicpc.net 가장 큰 수를 구하는 방법 문자열을 하나씩 탐색하다가 K를 만나면 끊어준다. 만약 문자열이 K로 끝나지 않으면? K로 끊은 이후의 문자열은 하나의 M으로 취급해 준다. (예를 들어 KMKMM인 경우 K, MK, M, M) 가장 작은 수를 구하는 법 문자열을 하나씩 끊어준다. 단, M이 연속되는 경우는 묶어준다. (예를 들어 MKKMMK인 경우 M, K, K, MM, K) 정답 코드 import sys input = sys.stdin.readline strings = list..
https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 해결 과정은 다음과 같다. 주어진 막대 길이들 중, 가장 긴 막대의 인덱스를 찾는다. 가장 긴 막대를 기준으로 오른쪽 그룹과 왼쪽 그룹으로 나누어 탐색한다. 가장 길이가 긴 막대의 인덱스까지 반복문을 돌린다. (오른쪽 그룹은 0에서 해당 인덱스까지, 왼쪽 그룹은 가로길이에서 해당 인덱스까지 역순으로) 오른쪽 그룹 기준으로, 가장 오른쪽 막대의 길이를 변수 right_height로..
https://www.acmicpc.net/problem/16918 16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net 해당 문제에서 중요하게 봐야 할 부분이다. 폭탄과 인접한 칸도 함께 폭발한다. (상하좌우) 대신, "폭탄과 인접한 칸"과 인접한 칸은 폭발하지 않는다. 연쇄작용 X 폭탄이 있는 칸은 3초가 지난 후에 폭발한다. 시간 계산 반복문을 돌리면서 시간을 계산해 주어야 하는데 이 부분에서 꽤 헤맸다. 해결 방법은 다음과 같다. 1. 처음에 주어지는 봄버맨의 폭탄 설치 위치를 저장한다. 2. 해당 폭탄을 제외한 나머지 "."..