분류 전체보기

테라폼 전체 코드https://github.com/su-mmer/AWSCodeDeployT..
목적Git Action과 AWS CodeDeploy 스택이 필요해서 직접 사용해보려고 합니다. Git Action으로도 CI/CD를 모두 진행할 수 있는데 왜 그렇게 하지 않는지도 생각해보았습니다. 제가 찾은 Git Action 배포 방식은 워크플로우에서 서버에 접속하여 수동으로 배포하는 방법 뿐 입니다. 그런데 워크플로우에서 실행시킨 프로세스는 워크플로우 종료와 함께 모두 종료시키는 것이 워크플로우의 원칙입니다. 실제로 Git Action에서 nohup으로 프로세스를 실행시키는 명령을 주더라도 워크플로우가 종료될 때 프로세스도 함께 종료됩니다. 임의로 뭔가를 건드려서 종료시키지 않을 수도 있지만 그러라고 만든 게.. 아니니까 다른 방법을 쓰는 것이 맞다고 생각합니다. 제가 Git Action을 사용하는..
실행 환경 AWS EC2 - Ubuntu 22.04 window Git Action Spring Boot 에러 파악 Git Action을 이용해 SpringBoot gradle 빌드를 진행 했습니다. Action에서 제공하는 yml을 사용하여 build를 했는데 gradlew를 실행할 수 없다는 에러가 발생했습니다. gradle 동작 방식을 몰라서 삽질을 좀 했습니다. Error: Gradle script '/home/runner/work/cloud-skills-sample-spring-boot-app/cloud-skills-sample-spring-boot-app/gradlew' is not executable. 원인 분석 찾아보니 gradlew 파일에 대한 실행 권한이 없어서 발생한 에러였습니다. A..
서버(server) [서버의 사전적 정의] 1. 식당에서 음식과 음료를 가져오는 사람, 웨이터 또는 웨이트리스 2. 네트워크를 통해 다른 컴퓨터에서 사용되는 파일과 서비스를 제공하는 메인 컴퓨터 3. 테니스, 배구 등의 경기에서 공을 서브함으로써 경기를 시작하는 선수 출처: Merriam Webster's Learner's Dictionary 서버는 serve(제공하다)+er(~을 하는 사람)의 합성어이다. 무언가를 제공하는 것(컴퓨터)이다. 서버라는 용어는 원래 '특정 역할에 특화된 것'을 의미한다. 레스토랑의 웨이터를 서버라고도 한다. 웨이터의 역할은 주문 접수나 음식을 내오는 것에 특화돼 있으며 요리는 하지 않는다. 서버라는 용어는 컴퓨터 자체(하드웨어)를 가리키는 경우도 있고, 컴퓨터에서 동작하고..
과제 echo2 abc라고 보내면 응답이 abc가 아니라 echo2_abc의 형태로 응답이 오도록 합니다. 힌트 기존에 사용하던 client *의 내부구조를 살펴보아야 합니다. 다음 구조체와 함수들을 참고하세요. sds sdscatfmt sdsempty addReplyBultSds 실습 Redis의 Client 구조체 접속한 클라이언트의 정보를 가지고 있습니다. argc는 입력 받은 파라미터의 개수 argv는 입력 받은 파라미터 각각을 저장한 배열 typedef struct client { ... int argc; /* Num of arguments of current command. */ robj **argv; /* Arguments of current command. */ int argv_len; /..
순서쌍의 개수 풀이 def solution(n): return len([i for i in range(1, n+1) if n%i==0]) 나누어 떨어지면 순서쌍에 해당된다. 리스트를 만들고 리스트의 길이를 리턴한다. 다른 풀이 def solution(n): return len(list(filter(lambda v: n % (v+1) == 0, range(n)))) filter(function, iterator) 함수를 사용해서 iterator 값을 함수에 넣어서 true인 값을 리스트로 만든다. 0부터 n-1까지의 값들 중에 나누어 떨어지는 값을 필터링한다. 진료순서 정하기 풀이 def solution(emergency): li = sorted(emergency, reverse=True) return [..
숨어있는 숫자의 덧셈(1) 풀이 def solution(my_string): return sum([int(i) for i in my_string if i in ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"]]) 인덱스 바꾸기 풀이 def solution(my_string, num1, num2): s = list(my_string) s[num1], s[num2] = s[num2], s[num1] return ''.join(s) list(my_string)으로만 해도 리스트로 변경된다. swap()함수를 따로 사용할 필요 없이 파이썬에서는 문자를 서로 바꾸는 문법을 지원한다. 특정 문자 제거하기 풀이 def solution(my_string, letter): s =..
최빈값 구하기 풀이 def solution(array): count = [0]*(max(array)+1) for i in array: count[i] += 1 alot = -1 for i in count: if alot < i: alot = i return count.index(alot) if count.count(alot) == 1 else -1 코딩을 C로 시작한 터라.. 이런 방법밖에는 생각나지 않았다.. array의 최대값 크기만큼 count 배열을 생성한다. array의 값이 나올 때마다 count 배열의 인덱스에서 +1을 한다. count 배열의 가장 큰 값이 최빈값이다. 가장 큰 값이 2개 이상이면 -1을 리턴한다. 다른 풀이 def solution(array): while len(array..
피자 나눠 먹기(2) 풀이 import math def solution(n): return n/math.gcd(6, n) 6과 n의 최소공배수를 6으로 나눈 값이 답이다. 파이썬 3.9부터 최소공배수를 구하는 lcm함수를 지원하는데, 프로그래머스의 버전이 3.8.5이기 때문에 lcm 함수가 지원되지 않는다. 따라서 최소공배수는 6*n/gcd(6,n) 이다. 답은 6*n/gcd(6,n)/6을 구하면 되는데, 약분해서 n/gcd(6,n)을 계산한다. 피자 나눠 먹기(3) def solution(slice, n): return n//slice if n%slice==0 else n//slice+1 n/slice의 값이 나누어 떨어지면 n/slice의 몫이 값이 된다. 나누어 떨어지지 않으면 한 판을 더 시키면 ..
su-mmer
'분류 전체보기' 카테고리의 글 목록 (2 Page)