전체 글 89

[CS] Rate Limit 이란?

API Rate Limit 에 대해 정리하고자 한다. 1. 개념- 클라이언트가 일정 시간 동안 서버에 보낼 수 있는 요청 수를 제한하는 정책- Rate: 일정 시간 동안 허용되는 요청 수 - Limit: 클라이언트에게 부여된 최대 요청 횟수- Window: 제한이 적용되는 시간 간격 2. 필요 이유 - 과도한 요청 방지 (DDoS, 무한 루프, 크롤러 등)- 자원 보호 및 안정적인 서비스 제공- 공정한 자원 배분 (모든 유저가 일정량의 요청만 가능)- 비용 관리 3. 주요 알고리즘1) Fixed Window- 고정된 시간 창 기준으로 요청 수 카운트- 단순하지만 경계 시점에 요청이 몰릴 수 있음2) Sliding Window- 시간 창을 계속 이동하면서 계산- 좀 더 정밀한 제어 가능3) Token Bu..

IT/CS 2025.07.01

[CS] gRPC(Google Remote Procedure Call) 란?

말로만 듣던 gRPC 에 대해 이해 및 정리를 하고 싶어서 글을 쓰게 되었다. 1. 개념- 네트워크를 통한 함수 호출을 마치 로컬 함수처럼 수행할 수 있도록 해주는 RPC 프레임워크- HTTP/2 프로토콜을 기반으로 통신- 데이터 직렬화에는 Protocol Buffers (protobuf) 사용 2. 사용 목적- 마이크로서비스 아키텍처에서 서비스 간 통신- 다양한 언어 간 통신 지원 (ex. Java Python Go 등)- 빠르고 경량화된 통신이 필요한 시스템- 모바일, IoT, 클라우드 네이티브 환경에서의 고성능 API 구현- 프로토콜 정의 파일 (.proto) 을 기반으로 자동으로 타입 안전한 코드 생성- 클라이언트 서버 간 실시간 양방향 통신 가능 3. 단점- 브라우저에서 직접 호출하기 어렵..

IT/CS 2025.06.19

[MCP] MCP 구축기

아는분 회사에서 스터디 겸 사이드 프로젝트를 진행하는데 MCP 서버를 작게나마 구축하는 역할을 맡게 되었다. 그때 경험했던 일련의 과정들을 정리하고자 한다. 1. 정의- AI 모델과 외부 데이터 소스 간의 원활한 통신을 가능하게 만드는 프로토콜 (AI 를 위한 USB 포트에 비유) 2. 역할- AI 모델이 파일, 데이터베이스, API, 시스템 정보 등에 접근 가능- 사용자 허가를 통해 안전한 데이터 연동- 다양한 AI 모델 에서 공통적으로 사용할 수 있는 표준 인터페이스 제공 3. 구조1) MCP Client - Claude Desktop - Cursor - 커스텀 Client 2) MCP Server - FastMCP - 다양한 언어 기반의 SDK 존재 - Python 으로 샘플 생성..

IT/AI 2025.06.10

[CS] SOAP(Simple Object Access Protocol) 이란?

새로 이직한 회사에서 REST 방식이 아닌 SOAP 방식으로 통신을 하는 경우에 직면하게 되었다. 그래서 SOAP 통신의 사용 목적, 장점이 무엇이기에 이를 도입했을까? 라는 생각이 들어 이에 대한 정리를 하게 되었다. 1. 개요- 정의: XML 을 기반으로 요청과 응답을 포장하는 프로토콜- 목적: 플랫폼, 언어, 시스템에 독립적인 원격 호출을 가능하게 함- 전송 방식: 주로 HTTP 을 사용하지만 SMTP, FTP 등도 가능 2. 특징- 표준화: W3C 표준이며 엄격한 스펙을 가짐- 확장: 보안(WS-Security), 트랜잭션 등 다양한 확장 기능 존재- 언어/플랫폼 독립: Java, .NET, Python 등 다양한 언어에서 구현 가능- 복잡성: XML 파싱 및 스키마 검증 등으로 REST 보다 무..

IT/CS 2025.06.08

[호주] 시드니 7박 9일 여행기

기존에 다니던 회사를 그만두고 새로운 회사로의 이직 전에 길게 텀이 생겨서 호주 시드니에 7박 9일 동안 여행을 하게 되었다.도시와 자연을 모두 느낄 수 있을 것이라고 생각이 들기도 했고, 시간이 여유가 있을 때 거리가 먼 곳에 다녀오고 싶은 마음이 있었다. 그리고 한국과 시차가 얼마 안 나는 곳이라 원격으로 일을 잠깐씩 할 수 있을 것으로 생각되어 더 좋겠다는 생각이 들었다. 처음으로 혼자 떠나는 해외여행이라 걱정이 되기도 했지만 생각보다 재밌게 잘 즐겼던 여행이었다. 이제 본격적으로 글을 쓰고자 한다. 새로운 나라에 가면 처음엔 무조건 그 나라의 분위기를 즐기는 것을 좋아해서 거리를 막 걷는다. 시드니에 도착한 시간이 아침이었어서 바로 걸어다녔다. 비행기에서 잠을 잘 못 자서 피곤했음에도 일단 걷고..

Travel 2025.05.31

[국내] 제주도 2박3일 여행기

회사 휴가 기간 동안 2박 3일로 제주도를 가기로 결정했다. 그 기간에 구경했던 곳들을 살짝 정리하려고 한다. ㅎㅎ평일 화-목으로 정했더니 비행기, 숙소 값이 매우 저렴해서 좋았다. 그리고 렌트카로 7인승 싼타페로 정했는데 큰 차 운전 연습이 필요해서였고 이 결정은 너무 잘했다고 생각한다.예전에 친구들과 서쪽 애월 지역에 갔었기 때문에 이번엔 동쪽 함덕 지역에 숙소를 잡고 동쪽 위주로 쭉 돌았다.첫째날은 숙소에 도착하고 시간이 애매해서 저녁 먹고 바로 숙소에서 쉬기만 했다.둘째날부터 본격적으로 움직였는데 숙소 바로 앞에 "함덕 해수욕장" 이 있어서 바로 들렸다. 그리고 근처에 서우봉이 올레길 19코스로 있어서 정상까지 올라보기로 했다. 그리고 어딜 가지 고민하다가 성산 일출봉이 동선상 괜찮을거 같길래 가..

Travel 2025.04.26

[DesignPattern] GoF 23가지 디자인 패턴

GoF(Gang of Four) 디자인 패턴은 소프트웨어 설계에서 자주 발생하는 문제들을 해결하기 위해 제시된 23가지의 디자인 패턴이다. 1. 생성(Creational) 패턴 - 객체 생성 관련객체 생성 로직을 캡슐화하여 유연하고 재사용 가능하게 만드는 패턴 1) Singleton- 오직 하나의 인스턴스만 존재하도록 보장2) Factory Method- 객체 생성을 서브 클래스에 위임하여, 상위 클래스에서는 어떤 객체가 생성될지 모르게 함- ex. 인터페이스 기반 객체 생성3) Abstract Factory- 관련 있는 객체들을 하나의 팩토리에서 생성4) Builder- 복잡한 객체를 단계별로 생성5) Prototype- 기존 객체를 복제하여 새 갳체 생성 2. 구조(Structural) 패턴 - 클래..

IT/DesignPattern 2025.04.21

[기타] SEO(Search Engine Optimization, 검색 엔진 최적화)란?

출시한 플랫폼의 사용성을 높이기 위한 방법 중 하나로 SEO(Search Engine Optimization) 이라는 것이 있다.이 SEO 의 정의, 목적, 주요 요소 등에 대한 정리 글을 쓰고자 한다. 1. 개념- 웹사이트나 웹페이지가 검색 엔진에서 더 높은 순위에 노출되도록 최적화하는 작업 2. 목적- 검색 엔진에서 자연스러운 트래픽을 늘리는 것- 검색 결과 상위 노출을 통해 브랜드 인지도, 방문자 수, 전환율 증가 3. 주요 요소1) On-page SEO (내부 최적화) - 웹사이트 내부의 콘텐츠와 구조를 최적화하는 작업 > 키워드 최적화 : 제목, 본문, 메타태그에 적절한 키워드 사용 > 메타 태그 작성 : , 등 검색엔진에 노출되는 내용 > 헤더 태그 구조화 : , 등으로 ..

IT/CS 2025.04.20

[CS] 쓰레싱(Thrashing) 이란?

쓰레싱에 대한 개념, 발생 원인, 이를 방지하기 위한 메모리 관리 전략에 대해 정리하고자 한다. 1. 개념- 운영체제에서 과도한 페이지 교체가 발생하면서, 실제 작업은 거의 수행되지 않고 대부분의 시간과 자원이 페이지 교체에 소비되는 현상으로, 주로 가상 메모리를 사용하는 시스템에서 발생한다. 2. 발생 원인- 과도한 다중 프로그래밍 > 너무 많은 프로세스를 동시에 실행시키면 각 프로세스가 필요한 만큼의 메모리 확보를 하지 못한다. > 그 결과 페이지 결함이 빈번하게 발생하고, 디스크 I/O 가 증가하면서 성능이 저하된다.- Working Set 크기보다 적은 프레임 할당 > 각 프로세스는 일정 시간 동안 자주 참조하는 Working Set 이 있는데, 이 크기보다 적은 메모리를 할당 받으면 계속..

IT/CS 2025.04.19

[MSA] MSA(Micro Service Architecture) 전환기

회사 서비스를 Monolithic 에서 MSA 형태로 아키텍처 변경 과정에 있다. 이때 추가 및 변경된 개념에 대해 정리하고자 한다. 1. eureka-server- 환경 설정implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server' 2. api-gateway- 환경 설정implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'implementation 'org.springframewo..