Backend

OAuth는 이전에 몇 번 사용해보았는데, 말로 꺼내어 설명하기가 어려웠다. 이번 기회에 정리를 해보려 한다. 이번 포스팅에서는 간단한 소개로 진행할 것이다.  필요 상황우선 세 명의 참여자가 있다고 생각해보자. (캠퍼가 만든 서비스, 사용자, 구글) 캠퍼가 만든 서비스가 있고, 거기서 구글에 연동하려고 한다. 구글에 접근하려면 어떻게 해야할까?가장 쉬운 방법은 구글의 사용자 id와 비번이 있으면 된다.!  문제1. 사용자 입장에서는 캠퍼의 서비스에 맡겨야 한다 (얘네들 주니어 개발자인데 맡길 수 있나? 이 서비스에서 유출되면 다 털리는데)2. 캠퍼의 서비스도 구글의 아이디 비번을 관리하는 것은 매우 큰 부담이다. (털리면 책임져야함)3. 구글도 자신 아이디 비번을 신뢰하지 않는 캠퍼의 서비스가 가지는게..
MySQL에서 B+ 트리 자료구조를 인덱스로 활용하는 이유가 무엇일까? B+ 트리를 DB 인덱스로 사용하는 이유는 크게 두 가지이다. 시간 복잡도 B+ 트리는 어떤 경우에도 O(log N)의 시간 복잡도를 가지기 때문에 빠른 검색이 가능하다. 이는 데이터가 크거나 데이터베이스가 복잡해져도 효율적인 조회 성능을 보장하는 중요한 장점이다.  예를 들어 이진 트리의 경우 최대 O(N)의 시간 복잡도를 가지게 된다.   하지만 B+ 트리는 균형 트리의 일종으로, 왼쪽과 오른쪽 노드의 밸런스를 항상 유지한다.  디스크 I/O의 효율성그럼 이런 의문이 들 수 있다.  AVL 트리, 이진 탐색 트리, 레드-블랙 트리 등의 자료구조도 균형 잡힌 트리인데, 왜 B+ 트리일까? 이 의문점을 해소하려면 우선 한 가지 개념을..
지금껏 MySQL을 쓰면서 innoDB는 무엇이고 스레드풀은 무엇인지 등, 내부에 대해 용어만 듣고 정확히 아는 것이 별로 없었다. MySQL의 내부를 살펴보며 각각을 하나씩 살펴보려고 한다.  MySQL 엔진 아키텍처MySQL 서버는 크게 MySQL 엔진과 스토리지 엔진의 두 가지로 나뉜다. MySQL 엔진은 클라이언트로부터 요청된 문장을 분석하거나, 최적화하여 처리하는 역할을 담당하는데, 그림에서 보이듯 커넥션 핸들러, 파서, SQL 인터페이스, SQL 옵티마이저, 캐시버퍼 등이 있다. 스토리지 엔진은 실제 데이터를 디스크 스토리지에 저장하거나 조회하는 역할을 담당한다. 여러 엔진을 동시에 사용할 수 있다. MyISAM 엔진, InnoDB 엔진 등이 있다. 이렇게만 말하면 확 와닿지는 않으니, 실제 ..
엘라스틱 서치의 기본 개념과 특징을 살펴보려한다. 그전에 루씬에 대해 간략히 살펴보자.  루씬검색 엔진에는 루씬이라는 시초가 있었다. 루씬이란, 자바로 만들어진 고성능 정보 검색 라이브러리이다.   엘라스틱 서치에서 왜 루씬을 언급하느냐하면, 엘라스틱 서치가 루씬을 기반으로 하기 때문이다. 엘라스틱 서치는 내부적으로 루씬을 통해 검색 기능을 수행한다.   다만, 루씬의 동작 과정이 추상화되어 있어 엘라스틱 서치를 사용하는 사용자 입장에서는 잘 드러나지 않는다. 하지만 루씬의 동작 원리를 이해하면 엘라스틱 서치의 이해에 더 큰 도움이 될 수 있다.  루씬에 대해서 간단히 살펴보겠다.  루씬 검색 어플리케이션 구조  위 그림처럼, 루씬의 검색 어플리케이션 구조는 검색 대상을 분석하는 과정과 검색 과정으로 나..
ec2 서버 상에 SpringBoot 백엔드 프로젝트와 mysql를 컨테이너로 올렸는데, 자꾸만 SpringBoot 컨테이너에서 MySQL 컨테이너를 연결하지 못하는 오류가 나타났습니다.  결론적으로 백엔드 파이프라인 구성을 잘못한 것을 파악하지 못하고, 애먼 MySQL과 SpringBoot 설정을 이리저리 삽질했습니다  혹시나 도움이 될까 기록을 정리해두고자 합니다. SpringBoot와 MySQL과의 연결은 대부분 아래 방법으로 해결이 될 것이라 생각합니다. 문제 상황 도커 백엔드 컨테이너를 실행시키면 얼마지나지 않아 자꾸 내려가는 현상이 발생했다. 분명 젠킨스에서는 빌드가 잘 되는데.. 빌드 여부와 관계 없이 백엔드 컨테이너 내부의 문제일 것 같아 로그를 출력해보았다.sudo docker logs ..
문제 상황프로젝트를 젠킨스를 통해 배포하려는데, 젠킨스에서 빌드를 시작하면 서버가 터져버리는 상황이 생겼습니다. 우주로 향하는 CPU 사용률...   ec2 프리티어의 기본 제공(t2.micro) 램 용량이 1GB 밖에 되질 않아, 젠킨스를 빌드하면 ssh도 접속하지 못하고 인스턴스를 재부팅해주어야했습니다.  해결 방법 서버를 구입해야하나 고민하다가, AWS의 친절한 게시글이 있어 SWAP 메모리를 지정해 해결하는 방법을 찾아 해결했습니다. 스왑 파일을 사용하여 Amazon EC2 인스턴스에서 메모리를 스왑 스페이스로 할당합니다.Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 스왑 파일로 사용할 메모리를 할당하고 싶습니다. 어떻게 해야 하나요?repost.aws 여기..
동구름이
'Backend' 카테고리의 글 목록 (2 Page)