본문 바로가기

분류 전체보기

(67)
Elasticsearch 한국어 형태소 분석기의 원리 - 2 elasticsearch에 관해 학습했던 내용을 정리한 내용입니다. 혹시 잘못된 내용이 있으면 편하게 지적부탁드립니다. https://porolog.tistory.com/68 Elasticsearch 한국어 형태소 분석기의 원리 - 1elasticsearch에 관해 학습했던 내용을 정리한 내용입니다. 혹시 잘못된 내용이 있으면 편하게 지적부탁드립니다. 서론검색은 어떻게 이루어질까요? RDB에서 데이터를 조회할 때, 빠르게 검색하기porolog.tistory.com 이전편에서 elasticsearch에서 사용되는 한국어 형태소 분석기와 관련된 개략적인 내용과 배경을 살펴보았습니다. 이번에는 좀 더 나아가, mecab 엔진의 형태소 분석 과정을 좀 자세히 파헤쳐보겠습니다. Mecab의 원리와 형태소 분석의 ..
Elasticsearch 한국어 형태소 분석기의 원리 - 1 elasticsearch에 관해 학습했던 내용을 정리한 내용입니다. 혹시 잘못된 내용이 있으면 편하게 지적부탁드립니다. 서론검색은 어떻게 이루어질까요? RDB에서 데이터를 조회할 때, 빠르게 검색하기 위해 인덱스를 사용합니다. 한국어로 색인이라고도 부르는 이 개념은, 예를 들어 ‘햄버거’라는 데이터를 빠르게 찾으려면 해당 데이터가 포함된 위치를 가리키는 색인을 이용해 검색 속도를 높이는 방식으로 작동합니다. 반면, Elasticsearch는 역인덱스(inverted index)라는 방식을 사용하여 데이터를 저장합니다. 역인덱스는 특정 키워드와 관련된 문서의 위치 목록을 저장하는 구조로, 검색 시 특정 키워드와 연관된 문서들을 빠르게 찾을 수 있도록 설계되었습니다. 이 방식은 검색 엔진의 핵심적인 데이터 ..
Programming Clojure 읽기 - Introduction 본 내용은 할로웨이 스튜어트의 프로그래밍 클로저를 읽고 정리한 내용입니다. 잘못된 내용이 있다면 댓글로 편하게 지적해주시면 감사하겠습니다. 클로저의 특징 함수형 프로그래밍과 병렬처리를 위한 소프트웨어 트랜잭션 메모리(STM)는 멀티코어 하드웨어에 적합한 프로그래밍 패러다임입니다. 그 중 클로저는, Lisp에서는 오랜 프로그래밍 역사에서 오는 지혜를, 자바에서는 주류 플랫폼다운 안정성과 수많은 라이브러리를 지원합니다. 이 두 가지 강력한 조합이 바로 클로저입니다. 다음부터는 클로저의 특징에 대해서 조금 더 자세히 살펴보겠습니다. 우아하고 표현력이 좋은 코드 ‘코드와 데이터의 형태가 같다’는 Lisp의 특성 재사용성을 높이고 오류를 줄이는 함수형 프로그래밍 lock 기반이 아닌, 쉬운 병행 프로그래밍 → S..
nginx 리버스 프록시 설정 이 포스팅은 UPbrella 프로젝트의 기술 블로그에 작성한 nginx 리버스 프록시 설정 포스팅을 옮겨온 것입니다. 1. 리버스 프록시란? 업브렐라는 React로 클라이언트 사이드 렌더링을 하고 있으며, 최종적으로 아래와 같은 인프라 구조를 갖추었습니다. 기존에는, 클라이언트 사이드 렌더링을 하기 때문에, 클라이언트에서 API 요청을 보낼 때, API 서버로 클라이언트에서 직접 요청을 보내는 구조였습니다. 따라서 보안적인 취약점이 발생하였는데요, 이를 해결하기 위해 nginx를 이용한 리버스 프록시 설정을 하게 되었습니다. 리버스 프록시란, 클라이언트와 서버 사이에서 중계기로서 동작하는 서버를 말합니다. 클라이언트가 서버에 접속할 때, 클라이언트는 중계기에 접속하고 중계기가 서버에 접속하여 클라이언트와..
슬랙 봇으로 서비스 알림 받기 이 포스팅은 UPbrella 프로젝트의 기술 블로그에 작성한 슬랙 봇으로 서비스 알림 받기 포스팅을 옮겨온 것입니다. 안녕하세요, 이번 포스팅에서는 AWS 슬랙 배포 알림 파이프라인 구축하기에서 이어지는 내용으로, 슬랙 봇을 통해 서비스 알림을 받는 방법에 대해 알아보겠습니다. 1. 문제 정의 슬랙 봇을 도입하게 된 이야기에 앞서, 업브렐라 서비스에 대해서 설명해보겠습니다. 업브렐라는 공유 우산 서비스로 사용자가 우산의 QR을 촬영하여 우산을 빌릴 수 있습니다. 우산을 빌릴 때, 보증금 10,000원을 입금하며 14일 이내 반납 시 보증금을 돌려받을 수 있습니다. 업브렐라는 결제 API를 사용할 수 없었기 때문에, 반납을 관리자가 수동으로 해야하는 시스템입니다. 그러나 관리자가 반납 여부를 알림 받지 못..
AWS 슬랙 배포 알림 파이프라인 구축하기 이 포스팅은 UPbrella 프로젝트의 기술 블로그에 작성한 AWS 슬랙 배포 알림 파이프라인 구축하기 포스팅을 옮겨온 것입니다. 이번 포스팅에서는 컨테이너 관리를 더 쉽게, AWS ECR, ECS로 서비스 구축하기에서 구축한 인프라에 슬랙 알림을 도입하여 알림 파이프라인을 구축한 이야기입니다. 1. 문제 정의 인프라와 CI/CD 파이프라인을 구축하였지만 여전히 불편한 점이 있었습니다. 배포가 완료되어도 AWS에 접속하여 직접 완료 여부를 점검해야 했습니다. 배포가 완료되었음을 알리는 메시지를 팀원들에게 직접 공유해야 했습니다. ECS가 갑작스럽게 종료되는 Event가 생겼을 때, 빠르게 팀원들에게 공유되는 알림이 필요했습니다. 따라서 저희는 AWS 슬랙 배포 알림 시스템을 구축하기로 합니다. 업브렐라 ..
롤링 업데이트, AWS ECR, ECS로 쉽게 이 포스팅은 UPbrella 프로젝트의 기술 블로그에 작성한 롤링 업데이트, AWS ECR, ECS로 쉽게 포스팅을 옮겨온 것입니다. 안녕하세요, 이번 포스팅에서는 컨테이너 관리를 더 쉽게, AWS ECR, ECS로 서비스 구축하기에서 구축한 인프라를 바탕으로 CI/CD 환경을 구축한 이야기를 소개하고자 합니다. 1. 문제 정의 초기에 개발용으로 CI/CD 환경을 구축해놓았었는데요, 간단하게 정리하면 Github Actions와 AWS CodeDeploy, S3를 이용한 인플레이스 배포전략이었습니다. Github Actions에서 빌드를 진행한다. 빌드 완료된 파일을 압축하여 AWS S3에 업로드한다. AWS CodeDeploy가 트리거되어 S3에 업로드 된 파일을 EC2 인스턴스에 배포한다. 이 때, ..
컨테이너 관리를 더 쉽게, AWS ECR, ECS로 서비스 구축하기 이 포스팅은 UPbrella 프로젝트의 기술 블로그에 작성한 컨테이너 관리를 더 쉽게, AWS ECR, ECS로 서비스 구축하기 포스팅을 옮겨온 것입니다. 안녕하세요, 이번 포스팅에서는 업브렐라의 아키텍처를 소개하고자 합니다. 가장 큰 고민은 어떻게하면 낮은 비용으로 고가용성의 아키텍처를 구축할 수 있을까였습니다. 또한 지속적인 서비스 운영을 고려했을 때 비용을 절감하는 것 또한 중요한 사안이었습니다. 1. 문제 정의 팀원들과 논의하며 어떤 아키텍처가 이상적일지 고민했었는데요, 아래와 같은 요구사항을 정리했습니다. 애플리케이션이 스래싱, 데드락 등으로 응답하지 않는 상태가 되어도 인스턴스 전체에 장애를 전파하지 않아야한다. 이전의 소규모 인프라에서 서비스를 구축했을 때, 공통적으로 나타났던 문제점은 애플..