본문 바로가기
반응형

전체 글157

[개발상식] 런타임이란 런타임이란기본적으로는 프로그램이 실행되는 동안의 환경을 의미하기도 하지만코드를 작성 한 뒤 실행가능한 환경에 올라가는 모든 과정을 포함 합니다. 1. 왜 런타임을 알아야하는가oom이 발생한 경우를 생각해보겠습니다.oom이 발생한 원인을 확인하고 개선방안을 고민하려면로직상의 개선이 필요한건지런타임의 개선이 필요한건지실제 서버 or k8s의 노드의 스펙의 문제인지확장이 필요하다면 수직 수평중에 어떤 증설이 필요한지런타임에 대한 이해가 없다면 판단이 보다 수월해 질 수 있습니다. 2. 컴파일 방식먼저 런타임에 대한 이해를 위해 컴파일에 대해 정리합니다.컴파일이란 우리가 작성한 코드를 기계에 가까운 언어로 변경하는 과정을 말합니다.언어, 컴파일방식에 따라 개념이 조금씩 다릅니다(빌드란 컴파일된 결과물을 이용해 .. 2024. 11. 6.
[elasticsearch] opensearch와 aws sso연동 opensearch에 인증을 붙이는 방법에는 크게 saml연동과 cognito 연동이 있습니다. 이번 게시글에서는 opensearch에 aws sso saml 연동하는 방법에 대해 정리합니다. 1. 세분화된 액세스 제어 활성화 saml 연동을 위해서는 세분화된 액세스 제어를 활성화 해야 합니다.(세분화된 액세스 제어를 활성화하게 되면 saml연동을 하거나 최소한 basic auth를 적용해야하며 aws에 문의해도 이전의 상태로는 돌아갈수 없으니 주의합니다.) 2. saml 인증 활성화 saml 인증 활성화를 체크해준후 서비스 공급자 엔터티 ID, idp가 시작한 SSO URL, sp가 시작한 SSO URL을 복사해서 메모해둡니다. idp는 sso 페이지에서 카드아이콘을 이용해 접근할때 필요하며, sp는 .. 2023. 4. 25.
[golang] golang reverse proxy 예제 일반적으로 proxy기능이 필요한 경우 nginx, haproxy 등 proxy용 솔루션을 통해 구축하지만 내부적으로 추가 동작이 필요한 경우 직접 proxy 서버를 개발해야 됩니다. 이번 게시글에서는 golang을 사용해 reverse proxy를 구축하는 방법에 대해 정리합니다. 저는 http request를 처리하기위해 echo framework를 사용하는것을 선호하지만, 이번 게시글에서는 따로 서드파티 라이브러리의 기능이필요하지 않으므로 standard library인 mux를 이용한 프록시 서버를 구축합니다. 1. 소스코드 소스코드는 아래 github repo에서 확인할 수 있습니다. GitHub - jaeho310/go-std-proxy Contribute to jaeho310/go-std-p.. 2023. 4. 6.
[golang] echo framework와 jwt 이번 게시글에서는 golang echo framework에 jwt 인증방식을 적용시키는 방법에 대해 정리합니다.먼저 jwt에 대해 간단하게 알아보고 기성 인증방식인 세션방식과 비교한 후 소스코드를 정리합니다.1. JWT란JWT(Json Web Token)란 cliam 기반의 web token으로 토큰자체에 정보를 포함해 인증 인가를 처리하는데 사용합니다. 2. 기성 인증방식(세션)과의 차이기성 인증방식은 서버가 한대라면 세션에 사용자 정보를 담고 보관하다가 인증이 필요한 요청에 세션정보를 확인합니다.서버가 여러대라면 시간복잡도가 좋은 디비(redis)를 뒤져 세션정보를 찾아 인증하는 형식입니다. 그러나 jwt는 secret키를 알고있으면 어느 서버에서나 인증, 인가를 수행할 수 있는 state less .. 2023. 1. 21.
[golang] gqlgen을 사용하여 golang graphql 서버 구축하기(마무리) 이번 게시글에서는 gorm을 사용하여 graphql서버의 전반적인 아키텍쳐를 구축하면 graphql 서버 구축을 마무리합니다. 소스코드는 github 링크에서 확인하실 수 있습니다(main 브랜치) GitHub - jaeho310/golang-graphql-sample: golang graphql sample with gqlgen golang graphql sample with gqlgen. Contribute to jaeho310/golang-graphql-sample development by creating an account on GitHub. github.com 1. 패키지 구조 ./ ├── generated │ └── generated.go ├── go.mod ├── go.sum ├── gq.. 2022. 12. 10.
[golang] gqlgen을 사용하여 golang graphql 서버 구축하기(3) 이번 게시글에서는 resolver 작성방법과 데이터를 질의하는 방법에 대해 정리합니다. 소스코드는 아래의 github 레포에서 확인할 수 있습니다(example-2 브랜치) GitHub - jaeho310/golang-graphql-sample Contribute to jaeho310/golang-graphql-sample development by creating an account on GitHub. github.com 1. 패키지 구조 . | go.mod | go.sum | gqlgen.yml | main.go | tools.go | +---generated | generated.go | +---graphql | user.graphql | ㄴ---resolver | resolver.go | user.. 2022. 12. 8.
[golang] gqlgen을 사용하여 golang graphql 서버 구축하기(2) 이번 게시글에서는 gqlgen 사용법에 대해서 정리합니다. 소스코드는 아래의 github 레포(example-1 branch)에서 확인하실 수 있습니다. GitHub - jaeho310/golang-graphql-sample Contribute to jaeho310/golang-graphql-sample development by creating an account on GitHub. github.com 1. 패키지 구조 . | go.mod | go.sum | gqlgen.yml | main.go | tools.go | +---generated | generated.go | +---graphql | user.graphql | ㄴ---resolver | resolver.go | user.resolvers... 2022. 12. 7.
[golang] gqlgen을 사용하여 golang graphql 서버 구축하기(1) 이번 게시글부터 graphql에 대해 정리하며 gqlgen을 사용하여 golang graphql 서버를 구축하는 예제를 만들어볼 예정입니다.(gqlgen, gorm, sqlite3 사용) 소스코드는 아래의 github 레포에서 확인하실 수 있습니다. GitHub - jaeho310/golang-graphql-sample Contribute to jaeho310/golang-graphql-sample development by creating an account on GitHub. github.com 1. graphql이란 페이스북에서 개발한 graphql은 클라이언트에서 쿼리를 통해 원하는 만큼의 데이터를 꺼내갈 수 있도록 만들어진 api로 rest api보다 유연하게 데이터를 제공할 수 있습니다. 2... 2022. 12. 7.
[terraform] resource를 여러개 생성하는 올바른 방법(count보다는 for_each) 이번 게시글에서는 resource를 여러개 생성하는 방법에 대해 정리합니다. 테라폼에 익숙하지 않다면 count를 사용하기 쉬운데 좋은 방법이 아닙니다. 잘못된 예시와 올바른 예시를 정리합니다. 복잡한 aws를 몰라도 쉽게 적용이 가능한 s3 bucket으로 예시를 만들었습니다. 전체 소스코드는 아래의 github에서 확인할 수 있습니다. prod, stag, dev등의 여러 환경을 위한 모듈구성방법도 포함되어있으니 github 레포를 참고해주세요 GitHub - jaeho310/multi-resource-terraform Contribute to jaeho310/multi-resource-terraform development by creating an account on GitHub. github.c.. 2022. 11. 3.
반응형