본문 바로가기

기타111

[proxy] Envoy 이해하기 - Routing 개요안녕하세요. 오늘은 Envoy의 3번째 시간입니다. 이번시간에는 Envoy에서 사용할 수 있는 다양한 Routing 방법에 대해서 실습해보는 시간을 가져보도록 하겠습니다. 예제는 실전에서 주로 사용하는 예제를 기준으로 가져왔습니다.Path 기반 라우팅가장 먼저 Path 기반의 라우팅을 살펴보도록 하겠습니다. Path 기반의 라우팅은 Backend Cluster를 N개 등록하고 path에 따라서 라우팅되는 Cluster를 다르게 가져가는 방법입니다. 해당 방법을 통해서 apigateway 처럼 사용하 수 있습니다. 이 방법을 통해 리버스 라우팅을 할 수 있게됩니다. 각 서비스마다 path를 다르게 가져가는 방법입니다.테스트➜ 02-routing-proxy curl -X GET http://localh.. 2025. 4. 8.
[proxy] Envoy 이해하기 - 실습 (Listener, Cluster, Route, Filter의 개념) 개요안녕하세요. 이전 포스팅 Envoy 이해하기 - 기본 이론편에서 마지막에 envoy.yaml 파일의 기본 구성을 함께 확인해 보았었습니다. 그때는 잠깐 언급만 하고 넘어가는 수준이었는데요. 오늘은 제대로 한번 해당 파일을 함께 보고 Envoy의 구성을 알아보도록 하겠습니다.Envoy 구성Envoy의 기본적인 아키텍처와 구성요소는 아래와 같습니다.ListenerEnvoy가 수신 대기할 IP와 포트를 정의Filterfilter_chain이란 어떠한 조건으로 요청을 처리할 것인지 정의예를 들어 L4 계층 기반으로 라우팅할지 L7 계층 기반으로 라우팅할지 등의 상위 레벨의 설정Router실제 라우팅의 조건 및 라우팅할 서비스 등을 지정L7 이라면 URL 경로, Header 기반 라우팅 설정이 가능L4 라면 .. 2025. 4. 5.
[proxy] Envoy 이해하기 - 기본 이론편 개요마이크로서비스 아키텍처가 보편화되면서, 서비스 간 통신의 복잡성도 함께 증가했습니다. 서비스 간 라우팅, 로드 밸런싱, 모니터링, 보안 등 다양한 과제를 해결하기 위해 등장한 것이 바로 Envoy입니다. Envoy는 쿠버네티스 환경에서 Data Plane으로써 application의 side car로 많이 사용되는데요. 오늘은 이러한 Envoy에 대해서 알아보는 시간을 가져보도록 하겠습니다.Envoy의 탄생 배경Envoy는 원래 Lyft에서 개발되었습니다. Lyft는 수많은 마이크로서비스를 운영하면서 네트워크 관련 문제에 지속적으로 부딪혔고, 기존의 솔루션으로는 문제를 해결하기 어려웠습니다. 이 과정에서 새로운 L7 프록시가 필요하다는 결론에 도달했고, 그렇게 탄생한 것이 Envoy입니다. 이후 20.. 2025. 3. 28.
[기타] String으로 정렬하기 - 기본적인 룰, 시간, ULID 개요안녕하세요. 요구 사항으로 특정 리스트에 대해서 시간순으로 정렬해달라는 요구사항을 받았습니다. 이를 정렬하기 위해서 어떤 데이터 타입의 형태를 사용하실건가요 ? 혹시 timestamp만 고려하고 있으시진 않으신가요 ? timestamp 정말 좋은 방법이지만 가독성이 좋지 않은건 누구나 아는 사실입니다. 혹시 String Type의 시간 표현 방법인 ISO_8601로 정렬하는건 생각해보셨나요 ? 혹시 이게 제대로 정렬될지 걱정이 들지 않으시나요 ?저도 이와 같은 고민을 했고 여러 테스트를 진행해보았습니다. 오늘은 String 타입의 형태의 정렬에 대해서 한번 알아보도록 하겠습니다.String의 정렬String의 정렬은 일반적으로 시스템에 따라서 정렬 순시가 다를 수 있습니다만 기본적으로 사전순(lexi.. 2025. 2. 26.
[Security-OAuth2] Authorization Code Flow도 ID / Password를 입력하는데 Password Grant만 안전하지 않다고 하나요 ? 개요OAuth2의 인증 방식중 Password Credentials 라는 것이 있습니다. 이는 ID와 Password를 입력하여 Access Token을 얻어서 Resource Server에 접근할 수 있는 메커니즘을 가진 인증 방식입니다. 그런데 이 방식은 취약한 방법으로 더이상 OAuth2에서는 권장하지 않는 방식입니다. 그리고 일반적으로 많이 사용하는 Authorization Code Flow 방식이 있습니다. 이는 인증을 한 후 Code를 통해서 Resource Server에 접근할 수 있도록 하는 인증 방식입니다. 이 또한 처음에 ID / Password를 입력받아서 인증하게됩니다.두개의 Type 모두 동일하게 유저는 ID와 Password를 입력하는데 왜 Authorization Code Fl.. 2024. 10. 1.
[기타] 날짜와 시간 표현의 국제 표준인 ISO 8601에 대해서 자세히 알아보자. (RFC3339, ISO8601, JavaTime) 개요먼저 표준화라는것은 사물, 개념, 방법 및 절차 등에 대하여 합리적인 기준을 설정하여 그 기준에 맞추는 것을 말합니다. 표준이 필요한 이유는 생산, 소비, 서비스 등 다양한 분야에서 생산성과 경제성을 높이고자함입니다. 표준화가 되어있는 요소에 대해서는 재활용이 가능하고 서로 이해하는것도 좋습니다. 최근의 좋은 표준의 예시는 in/out port로써 C-Type으로 통일되어가고 있습니다. 기존에 각 제품마다 표준이 달라서 불편했던 생산과 소비에 이제 단일화된 표준으로 편리함을 제공해주고 있지요. 이것이 바로 표준화가 필요한 이유입니다.오늘은 날짜와 시간 표현의 국제 표준인 ISO 8601과 RFC 3339에 대해서 알아보는 시간을 가져보려고합니다. 인터넷 표준에 비추어 볼때 우리가 따라야하는 표준은 I.. 2024. 7. 2.
[security] OAuth 2.0의 인가 스펙과 OIDC(OpenID Connect)의 인증 스펙에 대해서 알아봅시다 개요안녕하세요. 오늘은 OIDC(OpenID Connect)에 대해서 자세히 알아보는 시간을 가져보도록 하겠습니다. 다들 OAuth2에 대해서는 아실것 같습니다. 잘 모르시는 분들은 [OAuth2] OAuth2 개론 - 개요와 Authorization Code Flow를 통해서 먼저 보고 오시는것을 추천드립니다. OAuth2는 HTTP 기반에서의 권한 부여(Authorizaiton)를 위한 업계 표준 프로토콜입니다. OIDC는 OAuth2의 확장중 하나로써 인증(Authentication)에 대한 프로토콜입니다.오늘은 인증과 인가의 차이부터 OIDC까지 알아보도록 하겠습니다.요약인증과 인가의 차이인증(Authentication): 사용자의 신원을 확인하는 과정입니다. 로그인과 같은 방식으로 사용자가 누구.. 2024. 6. 19.
[Security] OAuth 2 Extension, Proof Key of Code Exchange(PKCE)에 대해서 알아보자 개요안녕하세요. 이전 포스팅 [OAuth2] OAuth2 개론 - 개요와 Authorization Code Flow을 통해서 OAuth2 개론을 알아보았습니다. OAuth2는 http 기반에서의 인증의 표준으로써 안전하게 토큰을 발급하고 이를 통해서 인증(Authentication)된 유저만 접근할 수 있도록 할 수 있습니다.하지만 기본 OAuth2는 네이티브 앱 또는 SPA 웹을 사용할 경우 authorization code interception attack을 당할 수 있습니다. 이 공격을 당하면 본인이 아닌 다른 유저가 token을 발급받을 수 있게됩니다. 따라서 이를 방지하기 위해서 OAuth 2.1의 업데이트의 하나로 Proof Key of Code Exchange(PKCE)가 있습니다.오늘은 .. 2024. 6. 9.
ChatGPT 알아보기 - Token 안녕하세요. 오늘은 ChatGPT 시리즈의 마지막으로 ChatGPT에서 Token에 대해서 알아보도록하겠습니다. Token이란 ChatGPT의 기본 단위입니다. 이 Token이라는 단위를 이용해서 가격을 설정하고 이전 대화의 컨텍스트를 유지하는 단위로도 됩니다. Tokenizing Token은 단어의 조각이라고 할 수 있습니다. 프롬프트가 입력되면 입력된 프롬프트는 모델에 처리되기전에 먼저 token으로 분할됩니다. 이렇게 token화 되는 방식은 정확하게 word만을 나누는것은 아니며 띄어쓰기, 컴마, 복합어 등을 기준으로 쪼개질 수 있습니다. https://help.openai.com/en/articles/4936856-what-are-tokens-and-how-to-count-them 에서 이야기하.. 2023. 6. 4.
ChatGPT 알아보기 - API 사용하기 안녕하세요. 이전 시간에는 ChatGPT의 동작 과정과 프롬프트(Prompt)에 대해서 알아보는 시간을 가졌었습니다. 프롬프트 엔지니어링을 통해서 서비스에서 ChatGPT를 써볼 수 있지 않을까 ? 라고 고민하실 수 있습니다. 저도 고민하고 있고 실제로 사용하는것도 API 하나로 쉽게 가능합니다.오늘 포스팅에서는 ChatGPT를 프로젝트에 적용하기 위해서의 API의 사용방법에 대해서 알아보도록 하겠습니다.Open API 사용방법https://openai.com/blog/introducing-chatgpt-and-whisper-apis 사이트에 접속하여 로그인을 진행합니다.로그인을 하게되면 3가지를 선택할 수 있습니다. 해당 UI에서 제일 오른쪽의 API를 선택합니다.그 후 프로필을 선택하고 View AP.. 2023. 5. 24.
ChatGPT 알아보기 - ChatGPT의 동작 과정과 프롬프트(Prompt) ? 안녕하세요. 이전 포스팅에서 ChatGPT 알아보기 - 개요와 기본 사용법라는 포스팅으로 찾아 뵈었었는데요. 해당 포스팅에서 ChatGPT를 사용하는 방법과 기존 구글 검색과의 차이점, 그리고 어디에 사용하면 좋을지에 대해서 알아보았었습니다. 오늘은 ChatGPT의 기본적인 동작 과정과 잘 사용하기 위해 프롬프트라는 개념과 적용하는 방법에 대해서 알아보도록 하겠습니다. ChatGPT의 동작 과정 이전 포스팅을 통해 우리는 기본적으로 ChatGPT의 사용방법에 대해서 알게 되었습니다. 오늘은 먼저 ChatGPT와 유저의 동작이 어떻게 되는지 한번 알아보도록 하겠습니다. 사용자가 ChatGPT interface에 Text를 입력합니다. 이러한 Text는 질문이 될 수 있고, 정보를 전달하는 것일 수 있습니다.. 2023. 5. 13.
ChatGPT 알아보기 - 개요와 기본 사용법 안녕하세요. 요즘 IT 업계의 핫한 키워드 중 하나로 ChatGPT가 있습니다. ChatGPT는 대화형 AI로써 검색의 새로운 패러다임을 가져다주고 있습니다. 저는 회사에서 진행한 한 세션에서 인사이트를 얻었습니다. 개발자로써 이러한 새로운 기술, 새로운 환경에 대해서 이해하고 사용할 수 있으면 지금까지와는 또 다르게 개발자로써의 성장을 한번 더 할 수 있을거라고 생각했습니다. 오늘은 ChatGPT에 대해서 제가 정맇한 내용으로 알아보는 시간을 가져보도록 하겠습니다. 그리고 다음 시간에는 좀 더 ChatGPT를 잘 사용할 수 있는 Token과 프롬프트 엔지니어링에 대해서도 알아보려고 합니다. ChatGPT 란 ? ChatGPT란 방대한 양의 텍스트 데이터로 학습된 AI 언어 모델입니다. ChatGPT는 .. 2023. 5. 5.