일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 디자인패턴
- typescript
- apollo router
- intellij ide
- 오블완
- kube-prometheus-stack
- Infra
- 배포 파이프라인
- Intellij
- gitops
- goland
- elasticsearch
- body size
- Buffered channel
- 코사인 유사성 메트릭스
- javascript
- Kubernetes
- cosine similarity metric
- GoF
- http 413
- go
- UnBuffered channel
- 티스토리챌린지
- AWS
- golang
- Logrus
- 사설 ip
- m4 pro
- 배포 프로세스
- esbuild
- Today
- Total
목록Information Technology (311)
Fall in IT.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DA4zj/btsMjBfY2rU/TLkBJyxkjkNJc5QABcsLs0/img.webp)
안녕하세요.오늘은 최근 회사에서 진행 인증 방식을 개선한 내용을 정리해보도록 하겠습니다.1. 기존 인증방식HTTP 헤더를 이용한 JWT 인증기존에는 클라이언트가 서버와 통신할 때, JWT(Json Web Token)를 HTTP 헤더의 Authorization 필드에 포함하여 요청을 보내고 이를 인증하는 방식이었습니다. 이 방식은 주로 다음과 같이 동작합니다. 기존 인증 방식 흐름클라이언트가 로그인 시 서버에서 JWT 토큰 (access token, refresh token)을 발급클라이언트는 API 요청 시 HTTP 헤더의 Authorization 필드에 access token을 포함하여 보냄서버는 Authorization 헤더에 포함된 토큰을 검증한 후 요청을 처리토큰이 만료되었을 경우, refresh..
ESBuild는 JavaScript와 TypeScript 코드를 빠르게 번들링하고 변환(트랜스파일링)하기 위한 고성능 빌드 도구입니다. Evan Wallace가 개발했으며, 속도와 효율성을 극대화하는 것을 목표로 설계되었습니다.ESBuild의 주요 특징빠른 속도:ESBuild는 Go 언어로 구현되어 있어 단일 스레드에서도 매우 빠른 성능을 발휘합니다.병렬 처리가 가능하여 멀티 코어 CPU 환경에서도 속도가 빠릅니다.TypeScript와 Babel 기반 도구에 비해 10~100배 더 빠릅니다.지원하는 언어와 기능:JavaScript: 최신 ES6+ 문법 지원.TypeScript: 트랜스파일링을 기본적으로 지원하지만, 타입 검사는 수행하지 않음.JSX/TSX: React 문법 지원.CSS: CSS 코드를 번..
tsx와 ts-node는 각각 타입스크립트를 실행하기 위한 도구지만, 두 도구는 서로 다른 사용 사례와 강점이 있어서 공존하고 있습니다. ts-node와 tsx 모두 런타임에 TypeScript를 JavaScript로 트랜스파일링하고 실행하지만, tsx가 더 빠른 이유는 트랜스파일링 방식, 캐싱 전략, 그리고 ES 모듈 처리 최적화 때문입니다. 아래에 두 도구의 작동 방식과 성능 차이의 이유를 자세히 설명드리겠습니다.1. 트랜스파일링 방식의 차이ts-node:ts-node는 TypeScript 컴파일러(tsc) 또는 TypeScript 서비스(typescript)를 사용해 TypeScript 코드를 JavaScript로 변환합니다.이 과정은 컴파일러가 전체 코드를 읽고 변환하므로 무겁고 느릴 수 있습니다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cpfQyu/btsLrZvaLSq/v36UKDKsjBKCkdtev2Z141/img.png)
왜 알아보게 되었나?간단하게 추천시스템을 만들때 필요한 개념들에 대해서 알아보다가 코사인 유사성 메트릭스라는 개념을 알게 되었는데, 이 개념이 유사도 추천 알고리즘에 효과적이라는 것을 알게되었다.어떤 개념이길래 유사도 추천 알고리즘에 효과적일까? 의문이 들어서 알아보게 되었다.코사인 유사성 메트릭스의 개념코사인 유사성이란 쉽게 말하면, 두 데이터(벡터)가 얼마나 비슷한 방향을 가리키는지를 측정하는 방법이다.즉, 두 데이터가 동일하거나 비슷한 속성을 많이 가질수록 유사도가 높게 나타나며 서로 다른 속성을 가질수록 유사도는 낮게 측정되는 것이다. 예를들어, 책 A와 B가 있을때 과학장르와 소설장르로 구분한다고 해보자.이때, A책은 소설이고 B책은 과학책 일때 두 책은 서로 완전히 다른 장르를 포함하고 있어 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c3uO37/btsLkb8VmcO/RNeRdZSOUPJAYIHlZDerO0/img.png)
Jupyter Notebook을 사용하면 웹브라우저에서 파이썬 코드가 동작한다.적어도 겉으로 볼때는 그래보인다. 어떻게 동작하는걸까? 궁금해서 알아본 내용을 정리한다.Q. 웹브라우저는 파이썬을 실행시키는 환경이 없는데 어떻게 파이썬 코드를 실행시킬 수 있을까?A. 결론부터 말하자면, Jupyter Notebook은 웹브라우저에서 파이썬 코드가 실행되는 것이 아니라 로컬에서 실행되는 Jupyter 서버를 통해서 웹브라우저에서 작성한 파이썬 코드를 실행시키고 실행 결과를 웹브라우저에 보여주는 것이다.Jupyter Notebook의 동작 방식을 간단하게 보면,사용자가 브라우저에서 Python 코드를 작성하고 실행 버튼을 누른다.브라우저는 HTTP 또는 WebSocket을 통해서 Jupyter 서버에 전달한다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/RrseI/btsLePxZYQi/GVqK9eZc2n08o4KmkOja40/img.jpg)
최근 개정판으로 나온 세스고딘의 린치핀 도서를 읽고 마음에 와닿았던 내용을 정리해봤다. 또한, 조승연님의 유튜브에서 세스고딘과 함께한 인터뷰 내용 중 인상 깊었던 내용도 함께 정리해보았다. 일과 일정에 대한 이야기린치핀: 새로운 경제에서 살아남기 위한 필수 조건린치핀이란 무엇일까?바퀴나 수레를 고정하는 축 또는 핀을 의미하는 이 단어는, 오늘날의 경제에서 대체 불가능한 핵심 인재를 상징한다.단순히 기계의 톱니바퀴처럼 지시받고 움직이는 사람이 아니라, 조직과 시스템 안에서 없어서는 안 될 핵심적인 존재가 되는 것을 말한다.스티브 잡스: 진정한 예술가는 끝낼 줄 안다스티브 잡스는 "진정한 예술가는 끝낼 줄 안다"고 했다.예술은 현실과 비현실의 경계에서 만들어지며, 이 경계를 넘나드는 사고를 통해 탄생한다. ..
이슈기존의 쿠버네티스에 설치된 kube-prometheus-stack의 대시보드를 설정하던 도중 elasticsearch 정보를 받아오기위해서 elasticsearch exporter를 설치했다.그리고 prometheus에서 데이터를 scrape 하기 위해서 설정을 변경하고 helm 패키지 매니저를 통해서 kubernetes 환경에 upgrade를 실행했다. 그랬더니…. kube-prometheus-stack의 grafana 디플로이먼트가 실행되지 못하는 문제가 발생했다.쿠버네티스 클러스터에 노드들의 자원도 충분했음에도 불구하고 파드의 생성이 반복적으로 실패해서 자세히 확인해보게 되었다. 이슈 원인Helm Chart 버전 간 Breaking Changeskube-prometheus-stack의 버전이 5..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cLr4sH/btsKY1ftvt1/YU0tYkYGektFPabcTRpip1/img.jpg)
Q. CPU와 GPU는 뭐고 무슨 차이가 있을까?CPU (Central Processing Unit)CPU는 컴퓨터의 두뇌로 범용적이고 복잡한 작업을 처리하는데 특화된 프로세서이다.기능 및 역할일반적인 컴퓨팅 작업 (운영체제 실행, 프로그램 구동 등)을 수행순차적이고 논리적인 작업 처리에 최적화단일 혹은 적은 수의 작업을 높은 정밀도로 처리구조적 특징코어수: 일반적으로 몇 개의 고성능 코어로 구성. 고급 CPU는 더 많은 코어를 포함한다.클럭 속도: 높은 클럭 속도를 통해 작업을 빠르게 처리캐시 메모리: 데이터 접근 속도를 높이기 위해 고속 메모리를 탑재사용 사례웹 브라우징, 문서 작업, 소프트웨어 실행 등복잡한 연산이나 조건문 처리가 많이 포함된 작업GPU (Graphics Processing Unit..
Go 언어로 Pub/Sub(Publish-Subscribe) 라이브러리를 개발해보자. (심심하니까…)목차Pub/Sub의 핵심 개념 이해설계 구조 정의단계별 개발테스트 작성고급 기능 추가1. Pub/Sub의 핵심 개념 이해Pub/Sub 시스템의 기본 원리는 다음과 같다.Publisher: 메시지를 특정 Topic에 발행Subscriber: Topic을 구독하고 해당 토픽의 메시지를 수신Broker: 발행된 메시지를 관리하고 적절한 구독자에게 전달2. 설계 구조 정의Go의 구조체와 채널을 활용해 Pub/Sub 시스템을 설계할 수 있다. 아래는 기본 구성요소이다.Topic: 메시지를 그룹화하는 주체Publisher: 메시지를 발행하는 인터페이스Subscriber: 메시지를 구독하는 인터페이스Broker: 토픽..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ppztz/btsKSPtqpyj/w9CJirFoOSKTMXkEthpnak/img.jpg)
안녕하세요. 오늘은 DDNS에 대해서 간단하게 설명해보려고 합니다.집에 들어오는 Public IP 주소는 유동 IP를 보통 사용하는데요, 이 IP를 DDNS를 사용하면 특정 주소로 접속이 가능합니다. ISP에서 들어오는 유동 IP가 변경되더라도요. 그 원리에 대해서 설명해보겠습니다. DDNS란?Dynamic Domain Name System으로 인터넷 서비스 제공자(ISP)가 동적으로 변경하는 IP 주소와 도메인 이름을 자동으로 매핑해주는 시스템입니다.이는 IP 주소가 고정되지 않고 계속 변경되는 환경에서 특정 도메인을 통해 항상 동일한 디바이스나 서비스를 접속할 수 있도록 만들어줍니다. DDNS가 필요한 이유1. 동적 IP 환경일반 가정용 인터넷 사용자나 일부 기업은 ISP로부터 동적 IP를 할당받습니..