일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- Intellij
- Buffered channel
- 티스토리챌린지
- Infra
- UnBuffered channel
- body size
- go
- elasticsearch
- GoF
- cosine similarity metric
- 오블완
- 코사인 유사성 메트릭스
- m4 pro
- 디자인패턴
- javascript
- http 413
- AWS
- golang
- gitops
- intellij ide
- goland
- 사설 ip
- esbuild
- 배포 프로세스
- kube-prometheus-stack
- 배포 파이프라인
- Kubernetes
- Logrus
- typescript
- apollo router
- Today
- Total
목록기타 (89)
Fall in IT.
왜 알아보게 되었나?간단하게 추천시스템을 만들때 필요한 개념들에 대해서 알아보다가 코사인 유사성 메트릭스라는 개념을 알게 되었는데, 이 개념이 유사도 추천 알고리즘에 효과적이라는 것을 알게되었다.어떤 개념이길래 유사도 추천 알고리즘에 효과적일까? 의문이 들어서 알아보게 되었다.코사인 유사성 메트릭스의 개념코사인 유사성이란 쉽게 말하면, 두 데이터(벡터)가 얼마나 비슷한 방향을 가리키는지를 측정하는 방법이다.즉, 두 데이터가 동일하거나 비슷한 속성을 많이 가질수록 유사도가 높게 나타나며 서로 다른 속성을 가질수록 유사도는 낮게 측정되는 것이다. 예를들어, 책 A와 B가 있을때 과학장르와 소설장르로 구분한다고 해보자.이때, A책은 소설이고 B책은 과학책 일때 두 책은 서로 완전히 다른 장르를 포함하고 있어 ..
Jupyter Notebook을 사용하면 웹브라우저에서 파이썬 코드가 동작한다.적어도 겉으로 볼때는 그래보인다. 어떻게 동작하는걸까? 궁금해서 알아본 내용을 정리한다.Q. 웹브라우저는 파이썬을 실행시키는 환경이 없는데 어떻게 파이썬 코드를 실행시킬 수 있을까?A. 결론부터 말하자면, Jupyter Notebook은 웹브라우저에서 파이썬 코드가 실행되는 것이 아니라 로컬에서 실행되는 Jupyter 서버를 통해서 웹브라우저에서 작성한 파이썬 코드를 실행시키고 실행 결과를 웹브라우저에 보여주는 것이다.Jupyter Notebook의 동작 방식을 간단하게 보면,사용자가 브라우저에서 Python 코드를 작성하고 실행 버튼을 누른다.브라우저는 HTTP 또는 WebSocket을 통해서 Jupyter 서버에 전달한다...
프론트엔드에서 발생한 HTTP 413 상태 코드 이슈 해결하기회사에서 일을 하던 중, 프론트엔드 개발자로부터 데이터를 생성하는 API를 호출할 때 HTTP 상태 코드 413 에러가 응답으로 반환된다는 이야기를 들었습니다. 이 상태 코드는 클라이언트가 서버에 보낸 요청의 body 크기가 서버가 허용하는 최대 크기를 초과했을 때 나타나는 HTTP 413 Payload Too Large 에러입니다.개발자로부터 받은 요청을 확인해 보니, 설정된 body size 제한보다 적은 크기의 요청이었고 서버 로그에도 해당 요청이 남아있지 않았습니다. 로컬 환경에서 같은 입력으로 테스트했을 때는 정상적으로 동작하는 것이 확인되었습니다. 그렇다면 문제는 서버가 아니라 클라이언트와 서버 사이의 다른 요소일 가능성이 있었습니다..
이 문서는 필자의 프로젝트에서 사용 중인 배포 파이프라인에 대해 설명합니다.배포 파이프라인은 Kubernetes, ArgoCD, AWS ECR 등의 클라우드 및 컨테이너 기술을 활용하여 애플리케이션을 효율적으로 배포하고 관리하기 위해 구성되었습니다.사전 지식ArgoCD란?ArgoCD는 Kubernetes 애플리케이션을 GitOps 방식으로 배포하고 관리하는 도구입니다. 애플리케이션의 선언적 설정 파일을 Git 리포지토리(혹은 OCI 레지스트리)에서 가져와서 Kubernetes 클러스터에 동기화하며, Git 상태와 클러스터 상태 간의 차이를 모니터링하여 자동화된 배포를 수행합니다.GitOps란?GitOps는 애플리케이션 배포 및 인프라 관리를 Git을 중심으로 수행하는 방법론입니다. 즉, 애플리케이션의 선..
안녕하세요.오늘은 맥 터미널에서(=키보드를 사용해서) Goland IDE를 실행하는 방법을 알아보겠습니다. 설정 방법1. 터미널에서 아래 경로로 이동 (/usr/local/bin)$ cd /usr/local/bin 2. goland 파일 생성$ touch goland 3. goland 파일에 아래 내용 입력#!/bin/shopen -na "GoLand.app" --args "$@" 4. goland 파일 권한 변경$ chmod +x /usr/local/bin/goland 결과goland 명령어를 사용하여 특정 경로의 프로젝트를 실행할 수 있다. 참조https://www.jetbrains.com/help/go/2024.1/working-with-the-ide-features-from-command-line..
안녕하세요. 오늘은 윈도우 PC용 키보드를 MAC에서 사용할때 편하게 사용하도록 설정하는 방법에 대해서 알아보겠습니다. 일반 키보드와 애플키보드의 차이점 애플키보드 - 컨트롤 / option(alt) / command 순으로 키보드가 배열되어 있습니다. (좌측하단에 키보드배열) 윈도우키보드 - 컨트롤 / 윈도우 / alt 순으로 키보드가 배열되어 있습니다. (여기서, 윈도우 키는 command키로 사용됩니다.) 키보드 배열을 동일하게 설정하는 방법 환경설정 > 키보드로 들어갑니다. 우측에 키보드 단축키를 클릭합니다. 좌측 하단에 보조키를 선택합니다. 해당 키보드를 선택합니다. option키는 command키로, command키는 option키로 서로 반대로 설정합니다. 완료! 모두 즐거운 코딩하세요~
Go에서 의존성 역전 원칙(DIP) 활용하기현대 소프트웨어 개발 환경에서는 유연하고 유지 관리가 가능한 애플리케이션을 설계하는 것이 그 어느 때보다 중요합니다. 이를 달성하기 위한 한 가지 핵심은 객체 지향 설계를 안내하는 SOLID 원칙의 초석인 종속성 역전 원칙(DIP)을 이용하는 것입니다. 이 게시물에서는 DIP에 대해서 알아보겠습니다. 종속성 역전 원리란 무엇입니까?DIP의 핵심은 소프트웨어 모듈을 분리하는 것을 목표로 합니다. 이 원칙은 두 가지 주요 아이디어를 주장합니다.상위 모듈은 하위 모듈에 의존해서는 안 됩니다. 대신, 둘 다 추상화(인터페이스 또는 추상 클래스)에 의존해야 합니다.추상화는 세부사항에 의존해서는 안 됩니다. 오히려 세부 사항은 추상화를 따라야 합니다.DIP를 준수함으로써 ..
도커 컴포즈 도대체 왜 필요한데? 안녕하세요. 오늘은 도커와 도커 컴포즈에 대해서 알아보겠습니다. 최근에 도커 컨테이너 간의 연결에 대한 간단한 질문(?)을 받았는데 잘 생각이 나지 않아서 GPT의 도움을 받아서 답했던 일이 있었습니다. 그래서 다시한번 도커에 대한 개념과 도커 컴포즈에 대해 정리하고자 글을 적게 되었습니다. 도커란? 도커란 가상화 기술을 사용하여 애플리케이션과 그에 필요한 실행 환경을 컨테이너로 패키징하는 오픈 소스 플랫폼이다. 도커는 그럼 왜 필요한가? 도커는 개발 환경을 표준화하고, 애플리케이션의 배포와 관리를 단순화하는데 도움을 준다. 여러 환경에서 일관된 실행을 보장하며 가상화를 통해 시스템 자원을 효율적으로 사용할 수 있다. 또한 확장성이 뛰어나며 빠른 배포를 가능케 하므로 개..
안녕하세요. 오늘은 UML, 클래스간의 관계에 대해서 알아보겠습니다. UML(Unified Modeling Language)이란? 1997년 OMG(Object Management Group)에서 표준으로 채택한 소프트웨어를 모델링 할때 사용하는 언어이다. 개념을 설명하기 위해 사용되기도 하고 구현된 시스템의 구조를 설명하기위해 사용되기도 한다. 소프트웨어 모델링이란? - 다른 사람들과의 의사소통 또는 설계 논의 - 전체 시스템의 구조 및 클래스의 의존성 파악 - 유지보수를 위한 설계 문서 UML의 종류 UML은 크게 두 종류의 다이어그램이 존재한다. 1. 구조 다이어그램 (Structure Diagram) 2. 행위 다이어그램 (Behavior Diagram) 구조 다이어그램 시스템의 개념, 관계 등의..
Composite Pattern 컴포짓 패턴 그룹 전체와 개별 객체를 동일하게 처리할 수 있는 패턴 클라이언트 입장에서 ‘전체’나 ‘부분’이나 모두 동일한 컴포넌트로 인식할 수 있는 계층을 만든다. (Part-Whole Hierarchy) 예를들어, 가방에 물건(아이템)이 5가지 존재한다고 생각해보자. 물 립밤 향수 노트북 안경 물건들은 각각 쓰임새는 다르지만, 그에 해당하는 이름과 가격이 정해져있다. 이때 우리는 물건의 각각의 가격과 가방안에 든 모든 물건들의 가격을 알고 싶다고 할 경우에 컴포짓 패턴을 유용하게 사용할 수 있다. 가방 → 컴포지트를 나타내고 컴포지트는 안에 컴포넌트들을 갖고 있다. 컴포넌트 → 물, 향수 등이 해당되고 컴포지트에 기능 실행을 요청하면 컴포지트는 포함하고 있는 컴포넌트들..