Coding Groot
최근 데브옵스 및 인프라 글
-
[AWS] 2월부터 늘어난 VPC 비용 - In-use Public IPv4 Address
[AWS] 2월부터 늘어난 VPC 비용 - In-use Public IPv4 Address
2024.03.03오늘 2월 Invoice를 받아보니 VPC 비용이 갑자기 애매하게 증가한 사실을 알 수 있었습니다... 상황에 따라 몇 만원이 초과할 수 있어서, 예산 알림을 20$로 정해두어서 알림을 받지 못해서 인보이스를 받고서야 알아차렸습니다. 흑.. 아래의 공지를 보면 비용이 증가 이유를 알 수 있습니다. 바로 새로 적용된 IPv4 요금 때문!! 자동 할당된 것도! 서버스에서 사용 중인 것도! 모두 요금 부과의 대상이됐습니다. 공지 – AWS Public IPv4 주소 요금 변경 및 Public IP Insights 기능 출시 | Amazon Web Services AWS에서 퍼블릭(Public) IPv4 주소에 대한 새로운 요금이 도입됩니다. 2024년 2월 1일부터 서비스 연결 여부에 관계없이 모든 퍼블릭 I.. -
[AWS] AWS 비용 절감하기 :: 0. Free Tier가 끝나며 흥미로워진 AWS 비용
[AWS] AWS 비용 절감하기 :: 0. Free Tier가 끝나며 흥미로워진 AWS 비용
2023.08.16AWS Free Tier가 만료되기 직전이 되자 그동안 편하게 쓰고 있던 Free Tier RDS나 Elastic Load Balancer의 가격이 무섭게 느껴지기 시작했습니다. Free Tier의 무료 서비스로 쓰고 있던 것을 대체하며 서비스를 유지하기 위해 최대한 Low 스펙 인스턴스 안에 욱여넣는 경험을 공유합니다. AWS Free Tier가 만료되며 최근 Modoco 서비스를 위해 쓰던 AWS 요금이 예상했던 것보다 많이 들어서 급하게 PR 하나를 날렸습니다. ➡️ https://github.com/SWM-FIRE/modoco-backend/pull/56 new feature: https without loadbalancer👍 by IamGroooooot · Pull Request #56 · SW.. -
[AWS] Route53 Domain 다른 AWS 계정으로 이전하기
[AWS] Route53 Domain 다른 AWS 계정으로 이전하기
2022.11.20소마 연수 기간이 끝나갑니다. 발표가 끝나면 해당 기관에서 발급해준 AWS 계정을 사용할 수가 없어서 다른 AWS 계정으로 이전해야 했습니다. 지원받은 AWS 계정의 Route53에서 산 도메인을 다른 AWS 계정으로 이전하며 겪은 것을 공유해보고자 합니다. Route53의 도메인을 다른 계정으로 이전해보자 Route53에서 구매한 도메인은 3가지 방법으로 이전할 수 있습니다. AWS에 직접 연락해서 이전하기 AWS SDK를 사용해서 코드로 이전하기 AWS CLI로 이전하기 저는 AWS CLI로 옮겨보았습니다. 문서가 잘 없네용.. 준비물 Route53에서 구매한 도메인을 가진 계정 도메인을 받아올 계정 AWS CLI 2 AWS CLI 2로 도메인 이전하는 법 A계정의 Route53에서 구매한 Domai..
최근 프로그래밍 글
-
CertBot 인증서가 만료가 되었다
CertBot 인증서가 만료가 되었다
2024.01.21문제의 상황 모도코라는 사이트의 API Server를 운영하고 있고 CertBot으로 무료 인증서를 Let's Encrypt로부터 받아와서 사용하고 있다. 무료 인증서는 갱신 기간이 90일밖에 되지 않기 때문에 CertBot으로 자동으로 renew되도록 cronjob을 등록해놓았다. 실제로 거의 1년 동안 신경 안 쓰고 잘 사용해왔다. 그런데 인증서가 만료되면서 사이트 로그인이 되지 않는다고 갑자기 문의가 들어왔다. 일단 API 서버가 사용중인 인증서를 보니 이전에 만료된 Let's Encrypt 인증서를 사용하고 있었다. 운영 환경 API Server를 관리하기 위해 PM2라는 Process Manager를 사용하고 있다. GitHub에 Code를 업데이트하면 GitHub Action으로 자동으로 AW.. -
Error installing cocoapods 해결 후, CocoaPods 업그레이드하는 법
Error installing cocoapods 해결 후, CocoaPods 업그레이드하는 법
2023.11.17최신 코코아팟(CocoaPods)으로 업그레이드하기 맥을 Sonama(14.1.1)로 업그레이드를 하고 XCode17에 대응하기 위해 코코아팟을 업그레이드하려 했습니다. 그런데 sudo gem install cocoapods을 했더니 다음과 같은 오류가 발생했습니다. Fetching cocoapods-downloader-2.0.gem Fetching cocoapods-core-1.14.2.gem Fetching cocoapods-1.14.2.gem ERROR: Error installing cocoapods: There are no versions of cocoapods-downloader (>= 2.0) compatible with your Ruby & RubyGems 원인 루비(Ruby) & 패키지 .. -
Flutter3.0 Firebase 연동하기
Flutter3.0 Firebase 연동하기
2023.10.051. Firebase CLI를 설치한다다음의 페이지에서 설치할 수 있다. CLI 설치 가이드: https://firebase.google.com/docs/cli?hl=ko#setup_update_cli 설치한 다음 로그인까지 해주자.firebase login2. Firebase Project를 하나 생성한다firebase projects:create groot-fcm-test나는 groot-fcm-test라는 이름으로 프로젝트를 만들었다. 전세계에서 유일한 명칭이어야 해서 특이하게 설정해야 한다. 이제 Firebase Console에 접속해보면 방금 생성한 프로젝트가 보일 것이다. 콘솔 링크: https://console.firebase.google.com/ 3. 작업할 Flutter 프로젝트를 생성하자.. -
NestJS v8에서 v9으로 업그레이드 하는 법
NestJS v8에서 v9으로 업그레이드 하는 법
2022.10.05최근에 NestJS v9의 Major Update가 있었다. REPL 기능이라든지 Swagger 업그레이드라든지 필요한 기능들이 있어서 업그레이드를 진행해보고자 했다. v9 업데이트에 관해서는 아래의 글에서 간단하게 참고할 수 있다. https://trilon.io/blog/nestjs-9-is-now-available NestJS v9 is now available Today I am excited to announce the official release of Nest 9: A progressive Node.js framework for building efficient and enterprise-grade, server-side applications. trilon.io v9.0.0 PR은 http..
최근 프로그래밍 언어 글
-
[Java] 람다식과 익명 클래스
[Java] 람다식과 익명 클래스
2024.02.21람다식은 어디서 왔을까? 함수형 언어가 다시 주목받으며 자바도 함수형의 이점을 살리기 위한 여러 기능이 업데이트되었다. 특히 자바 8에서 소개된 람다식이 대표적인 예이다. 함수형에서는 여러 클래스나 값을 변경하고 상호작용을 구현하여 표현하지 않는다. 보통 코드를 보면 무엇을 하는지 한눈에 보이고 데이터나 이벤트 스트림이 처리되는 과정을 가독성 좋게 볼 수 있다. 이런 데이터나 스트림을 다루는 데에 있어서 작은 동작이나 일회성 작업에 이름을 붙일 필요가 없는 경우가 많다. 그럴 때 쓸 수 있는 것이 람다식 혹은 익명 함수이다. 클래스명 같은 이름이 없기 때문에 그저 하나의 람다식으로 쉽게 전달될 수 있기도 하다. 람다식과 익명 클래스 람다식, 익명 클래스 모두 이름이 없는 함수나 객체를 표현하기 위해 쓰인.. -
[Java] Annotation (feat. Reflection)
[Java] Annotation (feat. Reflection)
2024.02.19Annotation? Annotate는 어떤 문서에 간단한 설명이나 의견을 달아놓는 것을 뜻한다. "주석을 달다"라고 번역할 수 있다. 이런 추가 정보는 어떤 데이터를 설명하기 위한 데이터이며 우리는 것을 메타데이터라고 부른다. 어노테이션(Annotation)을 사용하는 이유 자바에서 어노테이션은 코드에 메타데이터(코드를 설명하는 추가적인 데이터)를 표현하기 위한 방법 중에 하나이다. 이런 메타데이터를 통해 프로그램은 추가적인 정보를 알 수 있고 그에 따라 여러가지 기능을 지원할 수 있다. 대표적으로 여러 프레임워크에서는 메타데이터와 리플렉션을 통해 런타임에 다양한 기능을 지원해주고는 한다. 우리는 몇 가지 어노테이션으로 의존성 주입, 트랜젝션 관리, 테스트 코드 등을 깔끔하게 구현할 수 있다. 단순히 .. -
모던 JavaScript 튜토리얼 파트 1 :: 8장 - "프로토타입과 프로토타입 상속", 9장 - "클래스" 정적 메서드까지 정리
모던 JavaScript 튜토리얼 파트 1 :: 8장 - "프로토타입과 프로토타입 상속", 9장 - "클래스" 정적 메서드까지 정리
2023.02.01정리 시간이 없어서 텍스트로 내용을 정리하지는 못했습니다. 스터디 때 코어 자바스크립트 내용을 참고해서 쓴 자료를 올립니다. excalidraw에서 진행했습니다. https://excalidraw.com/#json=UPKDLXv3hxLCB5lt9MDKv,2NQftxJsB_qiK6Z2CnP3pw 1. 프로토타입 상속 프로토타입 상속 ko.javascript.info 2. 함수의 prototype 프로퍼티 함수의 prototype 프로퍼티 ko.javascript.info 3. 내장 객체의 프로토타입 내장 객체의 프로토타입 ko.javascript.info 4. 프로토타입 메서드와 __proto__가 없는 객체 프로토타입 메서드와 __proto__가 없는 객체 ko.javascript.info 프로퍼티를 이.. -
[JS] Lexical Environment로 알아보는 Closure
[JS] Lexical Environment로 알아보는 Closure
2023.01.16쓰게 된 계기 모던 자바스크립트를 요즘 정리하면서 얘기하는 스터디를 하고 있습니다. 그런데 이 부분 내용을 따로 공유하면 좋을 것 같아서 분리하게 되었습니다. 변수의 유효범위와 클로저 변수의 유효범위와 클로저 ko.javascript.info 자바스크립트는 함수형 프로그래밍을 지원합니다. 함수가 일급 객체이기 때문에 고차함수는 익숙하게 볼 수 있습니다. let과 const를 사용하면 block scope으로 사용하게 됩니다. (자바스크립트에서도 이런 용어를 쓰는지 모르겠지만) 이렇게 눈으로 바로 블록에 쌓인 변수 범위를 lexical scope이라고 부릅니다. 외부 scope에서 내부 scope에 있는 변수를 사용하지 못하기 때문에 실수를 많이 줄여줍니다. 사실 이런 Lexical Scope과 이것을 활..