본문 바로가기

전체 글

(11)
[Service Level 3총사] SLI, SLO, SLA 소프트웨어 공학 및 인프라 운영(특히 SRE, Site Reliability Engineering)에서 시스템의 안정성과 신뢰성을 정량적으로 관리하기 위해 사용하는 핵심 지표 삼총사입니다. SLI, SLO, SLA 이 세 가지 개념은 "무엇을 측정할 것인가(SLI) ➔ 목표치가 얼마인가(SLO) ➔ 못 지키면 어떻게 책임질 것인가(SLA)"의 흐름으로 묶어서 이해해야 가장 명확합니다.각 용어의 정의와 실무에서의 차이점을 알기 쉽게 정리해 드릴게요.1. 각 용어의 명확한 정의📊 SLI (Service Level Indicator, 서비스 수준 지표) 정의: 서비스의 안정성을 측정하기 위한 '실제 계측 정량 지표'입니다. (쉽게 말해 현재 측정되고 있는 모니터링 값) 핵심 질문: "지금 무엇을, 어떻게..
[Test 용어] Smoke, Sanity, Happy and Sad path 1. 각 테스트의 명확한 정의🛑 Smoke Test (스모크 테스트)정의: 새로 빌드 및 배포된 소프트웨어가 다음 단계의 본격적인 테스트를 진행할 만한 최소한의 자격이 있는지 확인하는 관문 테스트입니다.핵심: 시스템 전체의 가장 치명적인(Critical) 핵심 기능 1~2개만 얕게 찔러보고, 터지면 즉시 빌드를 반려(Reject)합니다.🩹 Sanity Test (새니티 테스트), Sanity : 온전한 정신정의: 버그 수정이나 소규모 코드 변경(Hotfix 등)이 일어난 후, "그 수정이 제대로 반영되었고, 그 여파로 주변 기능이 망가지지 않았는지" 확인하는 국소적 테스트입니다.핵심: 변경 사항이 있는 특정 컴포넌트와 그 주변 영역(Side Effect 발생 가능 구역)만 좁고 빠르게 확인합니다.☀️..
[DigitalOcean] Space 안녕하세요 아빠곰입니다. 오늘은 Digital Ocean의 Space, AWS의 S3와 같은 기능을 하는 Space에 관한 글을 작성해 보고자 합니다.  먼저 Why? 왜 계속 생소한 Digital Ocean이라는 것을 소개하는가? - AWS보다 더 좋아서? No. 결론적으로 말하면 AWS보다 제공하는 편의 기능은 부족하지만 Performance가 충분히 나오고, 비용이 저렴하기 때문입니다.  사실 우리가 비용이 싸다고 생각했던 부분은 월 5달러 부분보다는 Outbound Transfer 비용이 (구간별 차이가 있지만) 다른 서비스 보다 싸다고 판단이 들었습니다.  이번에 확인한 기능은 Expiration입니다.  Digital Ocean의 경우 AWS와 같이 Lifecycle Policy 적용 화면을 ..
[Flutter Web] 로컬 개발시 CORS 오류 https://stackoverflow.com/questions/65630743/how-to-solve-flutter-web-api-cors-error-only-with-dart-code How to solve flutter web api cors error only with dart code? It seems like CORS error is well-known issue in the web field. But I tried flutter web for the first time ever and I faced critical error. The code below worked well in app version when it was runn... stackoverflow.com 1. Flutter 설치..
Package dependencies 관리하기 일반적으로 Pubspec에서 package를 지정하는 방법은 아래와 같다. dependencies: firebase_core: ^1.11.0 그런데... 내가 무언가 했겠지만.... 갑자기 빌드가 안된다... 그래서 알아봤다. 대체 ^ 이게 무슨 의미인가? 플루터에서 추천하는 Caret Syntax는 작성한 버전의 호환되는 버전 범위를 가져온다는 의미라고 한다. 즉 .. ^1.2.3은 '>= 1.2.3
[Android] Service Running Check Activity나 서비스에서 다른 서비스를 Stop하기 위해서 실행하였음 private Boolean isRunningService(Context context, String targetServiceName) { try { boolean result = false; ActivityManager manager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) { if (targetServiceName.equals(service.service.getClassN..
Reqex 숫자 & 영어 & 최소 8자리 match( /(?=.*\d)(?=.*[a-zA-Z]).{8,}/ ) 숫자 & 영어 & 특수문자 & 최소 8자리 match(/(?=.*\d)(?=.*[a-zA-Z])(?=.*[`~!@#$%^&*|'";:/?]).{8,}/)
[NextJs] Router Next Js에서 Query로 넘긴 값을 다음 Page에서 Prop으로 사용하기 1.이전 페이지에서 넘기기 const router = useRouter() router.push({pathname: "/path", query: {test: "hello"}}, "/path") 첫번째 param: {pathname: "/path", query: {test: "hello"}} path와 넘기고자 하는 정보를 정의한다. 두번째 param: "/path" ... as query로 넘기게 되면 Url이 길어지게 되는데, 바꾸고자 하는 정보를 적어 준다. 즉, 브라우저 URL로 표시 하고 싶은 경로를 정의한다. 2. 받는 page에서 const router = useRouter() const {query: {test}..