분류 전체보기 15

Fastapi 에 대해서 알아보자

Fastapi는 파이썬 3.6 이상 버전 기반의 웹프레임워크다. 링크 : https://fastapi.tiangolo.com/ FastAPI FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production Documentation: https://fastapi.tiangolo.com Source Code: https://github.com/tiangolo/fastapi FastAPI is a modern, fast (high-performance), web framework for buil fastapi.tiangolo.com 성능 높고 고성능이고 배우기 쉬운 등등 하여간 좋은 성능이라고 문서에 적혀..

카테고리 없음 2021.09.30

Google Cloud Function에 대해서 알아보자

Google Cloud Platform에서는 여러가지 형태의 Serverless 서비스들을 지원하고 있다. 이번 포스팅에서는 그 중에서도 Google Cloud Function에 대해서 알아본다. Google Cloud Function은 Google Cloud Platform 이 제공하는 서비스 중에서 가장 AWS의 Lambda와 유사한 서비스다.실제로 검색해보면 Azure의 Function과 함께 종종 비교되는 글을 볼 수 있다. Spec적인 부분에 대해서는 어느정도 차이가 있으나 사용 방식에 대해서는 전부 비슷하다. 사용하기 프로젝트 Market Place의 서버리스 항목 중에서 Cloud Function을 선택한다. 사전에 만들어놓은 Function이 없다면 위와 같이 간단한 설명이 출력된다. 함수..

Cloud 2021.09.30

Gherkin 문법에 대해서 알아보자

Gherkin은 BDD based test tool인 Cucumber에서 제안한 테스트 문법으로, 사전적으로는 pickled cucumber의 영국식 단어다. Given When Then 등의 간단한 문장으로 테스트를 구성하도록 되어 있고, 실제로 작성된 코드는 굉장히 가독성이 높아서 구성된 Gherkin 문장만 봐도 어떤 테스트를 하려고 하는지 알 수 있다. 이번 포스팅에서는 Gherkin 문법에 대해서 간단히 알아본다. Keyword Gherkin은 실행가능한 스펙을 포함하고 있는 문장으로 구성되고, 문장 하나는 특수한 keyword set을 통해서 구성할 수 있다. 이 Keyword들은 기본적으로는 영어로 구성되어 있지만 한글 단어로도 구성할 수는 있다(물론 자연스러운지는 잘 모르겠다). 이번 포스..

카테고리 없음 2021.09.29

Kotlin 설치해보기

Kotlin 은 2011년 Jetbrain 사에서 공개한 개발용 언어로, 현재 Android 공식언어로 지정된 언어다. JVM 위에서 동작할 수 있고 흔히들 Java를 사용하는 사람들이 쉽게 배울 수 있다는 장점이 있어 Java 개발자의 서브 언어로, 혹은 대체 언어로써 많이 알려진 언어다. Java 의 주요 사용처가 그렇듯 Kotlin도 안드로이드 개발용으로, 서버 개발용 언어로 채택되고 있다. 2021 인기 프로그래밍 순위 중 11번째를 차지하고 있고(PYPL 기준), 19년 이후로 성장은 좀 둔화되었지만 사용률이 빠르게 늘어났다. 아직은 차츰 성장해가는 언어의 인식이 강한 것 같다. 설치하기 환경 구축 및 동작 테스트를 위해 JDK와 IDE를 설치한다. JDK 설치 LTS 지원되는 8 버전 혹은 1..

Language 2021.09.20

유용한 PromQL 목록들

Prometheus는 PromQL(Prometheus Query Language)라는 쿼리문을 제공한다. Prometheus나 Grafana에서 요청된 쿼리 결과는 사용자가 가공할 수 있는 형태로 전달되고, 이 요청은 http api형태로 전달된다. 종종 Grafana에서 볼 수 있는 수많은 대시보드들은 전부 이 PromQL과 Grafana에서 제공하는 추가 문법들로 이루어진다. 이번 포스팅은 sysdig에서 소개한 Top 10 PromQL example for monitoring Kubernetes라는 포스팅에 나와있는 쿼리들을 소개하고 분석하는 시간을 가지려 한다. 1. namespace별 Pod 수 sum by (namespace) (kube_pod_info) kube_pod_info 쿼리는 쿠버네..

Cloud/Monitoring 2021.09.13

Golang을 사용한 Http 서버 기본 예제

Golang은 net/http 모듈을 통해 http 서버를 구축할 수 있도록 제공한다. 기본적으로 http 모듈의 Server가 http2 를 자동으로 enable하고 있기 때문에 좀더 복잡하거나 low-level단의 http/2를 구축하기 위해서는 golang.org/x/net/http2를 별도로 사용한다. net/http 모듈의 가장 기본이 되는 항목으로는 아래 두 가지가 있을 수 있다. http.HandleFunc 요청한 라우팅 경로에 대한 함수를 지정한다. 예를 들어 아래와 같은 방식이다. http.HandleFunc("/hello", hello) http.HandleFunc("/some-api", apiHandler) 위의 함수를 예로 했을 때, /hello 서브 도메인으로 들어온 요청에 대해 ..

Language/golang 2021.09.05

tekton에 대해서 알아보자

tekton은 Cloud 기반 CI/CD 툴로, Kubernetes 위에 설치된다. Jenkins 나 CircleCI 같은 툴과는 달리 Kubernetes 기반으로 나온 툴이기 때문에 대부분의 기능들이 Kubernetes 기반으로 동작한다. 당연히 각 Workflow들은 Pod 기반으로 동작한다. 개발 중인 Application이 Kubernetes에 올라가는 것을 전제로 한다면 여러가지로 실 환경에 가깝게 구성해볼 수 있다는 장점이 있다. Prerequisites (https://tekton.dev/docs/getting-started/) - A Kubernetes cluster version 1.15 or higher for Tekton Pipelines v0.11.0 or higher, or a K..

Cloud/CI CD 2021.09.05

Admission Control

Kubernetes에서 kubelet, 혹은 kubectl을 통해 api server에 요청을 보내면 api server는 controller plane의 컴포넌트들과 상호작용을 완료한 후 요청에 대해 응답한다. 이 요청이 일어날 때, 아무 요청이나 받아들이면 클러스터는 금새 잘못된 요청, 악의적인 요청들로 인해 망가질 가능성이 있다. 따라서 요청 자체가 올바른 지 판단하는 과정이 필요하다. 이번 포스팅에서 api 요청이 "올바르다"고 판단하는 기준이 무엇일지 알아본다. API Request 과정 api server로 요청이 들어오게 되면 아래 3가지 절차에 의해서 이 요청을 확인한다. 1. 요청이 올바른 대상으로 부터 왔는가 (Verification) 2. 요청을 하는 대상에게 충분한 권한이 있는가 (..

Cloud/Kubernetes 2021.07.27

Vue에서 환경 변수 사용하기

이번 포스팅에서는 환경변수 사용하는 법을 확인해본다. vue와 vuetify 버전은 다음과 같다. "vue": "^2.6.11", "vuetify": "^2.2.11" 여기서 언급되는 환경변수는 리눅스나 윈도우의 환경변수랑은 다른 Vue용 환경변수를 말하는 것임을 유의한다. .env 생성 Vue에서 환경 변수를 사용하기 위해서는 아래와 같은 .env 폴더들을 프로젝트 아래에 만들어야한다. .env 폴더가 기본이고, 환경에 따라 .development, .production 등을 붙일 수 있다. 공통적으로 쓰는 것들은 env에, 개발용으로 사용할 것들은 development에 넣는 식으로 분리하면 되겠다. .env : development, production 등 모든 환경에 사용되는 환경 변수 .env...

Web/Vuejs 2020.12.31

Vue, Vuetify 설치 및 구동하기

CLI 설치하기 npm install -g @vue/cli -g 옵션으로 글로벌로 설치한다. 관리자 권한으로 위 명령어를 입력하거나 하면 이후로도 관리자 권한으로만 cli를 사용할 수 있으니, 원하는게 아니라면 일반 cmd나 PowerShell 등에서 입력하자(리눅스 유저라면 sudo 없이). 프로젝트 생성 vue create test 프로젝트를 생성한다. test가 프로젝트 명이다. Default Vue 2를 선택한다. vuetify는 vue 2에 호환된다. Vue CLI v4.5.9 ? Please pick a preset: (Use arrow keys) > Default ([Vue 2] babel, eslint) Default (Vue 3 Preview) ([Vue 3] babel, eslint) ..

Web/Vuejs 2020.12.29