전체 글

제가 미처 확인하지 못한 부분이 있다면 알려주시면 감사하겠습니다.
· 컨퍼런스
https://www.meetup.com/ko-KR/awskrug/events/298048627/ Login to Meetup | MeetupNot a Meetup member yet? Log in and find groups that host online or in person events and meet people in your local community who share your interests.www.meetup.com 좋은 배포란누가 언제 무엇을 배포했는지 알 수 있어야 한다.담당자를 찾기 어려운 문제가 있었음Argo CD의 배포 완료와 엔지니어가 기대하는 배포 완료에 차이가 있음 > Argo 날림kubernetes를 몰라도 배포할 수 있어야 한다(알면 더 잘 쓸 수 있긴 하다)처음부터 끝..
· 회고록
자격증 스터디에 들어가서 2주 안에 자격증을 호다닥 취득했습니다. 9일 중 2일은 주말 제외, 총 7일 공부하고 바로 시험을 쳤습니다. CLF는 거저 주는 문제가 많아서 조금만 더 맞추면 통과할 수 있을 거라고 해서 냅다 시험 쳤는데 됐네용 높은 점수는 아니지만 절대평가니까 *^____^* 역시 덤프로 따는 것보다 직접 공부해서 딴 자격증이 더 소중하네요. 뿌듯하다. 스터디가 짱입니다. 공부하라고 채찍질 해주는 분들도 있고 너무 좋아요. https://explore.skillbuilder.aws/learn/course/13522/AWS%2520Cloud%2520Practitioner%2520Essentials%2520%28Korean%29%2520%28Na%29%2520%28%25ED%2595%259C%..
문제 제기 Git Action을 사용하는 도중, 브랜치 별로 다른 설정을 해야 할 일이 생겼습니다. 정확히는 main 브랜치에 push가 들어올 경우에만 review를 받은 후 action을 동작시켜야 했습니다. 팀에서 해결 방법을 찾지 못해 똑같은 파이프라인 yaml 파일을 두 개(ci-prd.yaml, ci.yaml) 만들어 사용했습니다. 한 파일은 main 브랜치에 push가 들어왔을 때, 다른 파일은 dev, stg 브랜치에 push가 들어왔을 때. 이러면 코드를 수정할 때 두 파일을 모두 수정해주어야 하고, 이로 인해 휴먼에러가 생기겠다 싶었습니다. 처음엔 브랜치 별로 job을 나눠서 job을 두 개 돌릴까도 생각해봤는데, 그러면 똑같은 코드를 두 번 써야하는 건 마찬가지라 패스했습니다. env..
0. IaC(Infra as a Code)의 사용 이유 사람은 한정적인데 운영해야 할 서버가 많아짐 → 반복되는 일이 늘어남 버전 관리 가능 리뷰 및 테스트 가능 휴먼 에러 감소 테라폼 사용에 대한 공부와 기존 인프라가 이미 있을 경우 통합시키는 수고 필요 1. 기본 동작 방식 1.1 Init: 실행을 위한 준비 작업(초기 setting) 테라폼 상태 파일 확인 provider 플러그인 다운로드 모듈 다운로드 1.2 apply: 작성된 코드를 기반으로 인프라 구성 테라폼이 자동으로 의존성(dependency)을 구성하고 병렬로 인프라를 구성한다. 수동으로 의존성을 걸 수 있지만 테라폼이 의존성을 구성하는 과정에서 꼬일 수 있어 사용하지 않는 것을 권장 어떤 리소스가 생성/수정/삭제 되는지 확인하는 pla..
테라폼 전체 코드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 [..
su-mmer
Summary Of Summer