인덱스란?데이터베이스에서 데이터를 조회할 때 빠른 조회를 위한 것이다.왜 인덱스를 사용하면 조회가 빨라질까?인덱스는 트리 구조로 데이터를 저장한다. 테이블을 풀 스캔하는 경우 (테이블 스캔) 와 달리 인덱스를 사용하면 정렬된 데이터를 기준으로 루트 노드에서 리프 노드까지 빠르게 데이터를 탐색 (인덱스 스캔) 할 수 있다.기존 테이블 풀 스캔이 O(N)의 시간 복잡도라면 트리 구조를 사용한 이진 탐색은 O(logN)의 시간복잡도를 가진다.정확히 어떤 자료구조를 사용하는가?InnoDB를 기준으로 균형 잡힌 트리 (B-Tree, Balanced Tree)를 사용한다.단순 이진 트리를 사용할 경우 한 쪽에 치우친 트리가 생길 수 있어, 최악의 경우 선형 탐색과 다르지 않을 수 있다. 따라서 모든 노드에 대해 높..
로드 밸런싱의 목적CPU나 메모리와 네트워크가 부하가 될 수 있다. 특히 커넥션의 개수가 많아지면서 애플리케이션 단에서 OutOfMemoryError가 생길 수 있다. 스레드 풀 역시 고갈될 위험이 있다.스케일 아웃으로 이를 해결한다고 가정하자. 그렇다면 클라이언트의 요청을 잘 처리할 가능성이 높은 서버에게 요청을 전달하는 과정이 필요하다. 이런 역할을 하는 서버가 로드 밸런서이다. 가용성이란?서비스가 정상적으로 작동하는 시간가용성을 어떻게 측정할 수 있는가? 헬스 체크를 사용하여 전체 헬스 체크 시도 중 성공한 비율을 가용성이라고 볼 수 있다. AWS에서 사용하는 로드밸런스 기능을 사용하는 이유가 뭐야? 다른 로드 밸런서와 비교했을 때 장점이 있는가? ELB (Elastic Load Balancer)..
8월 4일을 마지막으로 회고를 작성하고 한 달 넘게 회고를 작성하지 않았다. 여러 가지 이유가 있지만, 레벨 3 를 지내오면서 기술적으로 아쉬운 부분들에 대해서 돌아보고 개인적으로 성장하고 싶은 부분들을 위해 전력 질주하느라 기존에 작성하던 블로그 회고를 계속 미뤘다. 여러 방면에서 찍먹하면서 기술을 사용만 해보는 것보다는,하나의 기술 (혹은 분야, 혹은 기능)에 대해 깊게 들어가보는 경험이 중요하다. 이 점을 간과하고 레벨 3 동안 기술에 주도적으로 관심을 가지고 파고드는 것보다, 서비스를 운영하며 주어진 피쳐들을 쳐내면서 시간을 보냈다. 이 프로젝트에서 어떤 경험을 하고 싶은지, 내가 어떻게 해야 주도적으로 서비스의 발전에 의미있는 영향을 줄 수 있을지 충분히 고민하지 않았기 때문에 방황했다. ..
2024년 7월 29일 - 8월 2일 시간이 너무나 빠르게 흘러 벌써 5주차이다. 이번 주 ✨모우다 ✨팀은 무엇을 했을까?🧗♀️ 빠른 기능 개발이번 주는 3차 스프린트의 첫 주차를 보냈다. 지난 주차 스프린트를 마무리하며, 3차 스프린트에서는 최대한 빠르게 기능 개발을 하고 사용자 피드백을 받는 것을 목적으로 삼았다. 2차 스프린트에서는 MVP를 아주 작게 잡아서 구현하는 것이 너무 쉬웠었다. 이번 스프린트에서는 5배는 많은 기능을 구현하기로 가닥을 잡았고 돌아가는 쓰레기를 만들어보자고 다같이 협의하였다. 새로 도입한 여러 가지 기능 중 나는 채팅 기능을 호기, 소파와 맡았고 제일 간단한 구현 방식으로 구현에 완료하였다.채팅 기능을 맡게 되면 도전적인 개발을 할 수 있을거라는 생각이 들었기 때문..
2024년 7월 22일 - 7월 26일 가족 여행 이슈로 회고를 늦게 올린다 🥺한 주가 지나서 올리면 그 때 생각들이 흐려지기 때문에 미리미리 작성하는 것이 좋겠다. 🤔 2차 스프린트 회고 이번 주차는 2차 스프린트를 마무리하는 주였다.지난 주차와 마찬가지로 기능을 작게 잡은 우리 조는 정말 할 일이 없었다. 😓 특히 백엔드는 더더욱 ... 나도 딱히 할 일이 없어서 팀 블로그를 유지보수하는 작업만을 맡았고, 화요일이 되었을 때 블로그 작업만 하고 있는 것이 회의감이 들었다. 며칠 간 지루함을 느끼는 상태였고 아침에 일어나서 등교하기 싫을 때도 있었다. 이 고민을 내뱉으니 수야가 도파민이 부족해서 그렇다고 말했다. 도파민은 크루들과 재밌는 장난 칠 때나 나오는 것 아니었나 🤔 했지만 돌이켜보니 ..
2024년 7월 15일 - 7월 19일 👩💻 해커톤으로 시작하는 MVP 개발기획 단계가 마무리 되고 2차 스프린트에서 MVP를 개발하는 단계가 시작되었다. 👩💻 2차 스프린트의 시작은 해커톤으로 맞이하였다. 해커톤 이라는 명목이 주어지니 가장 중요한 핵심 기능을 개발하는 것으로 가닥이 잡혔다. 지난 주부터 데모데이 때 그래서 당장 다음 주에 개발할 핵심 중의 핵심 기능이 무엇인가요? 라는 질문을 통해 기능 명세서와 플로우 차트, UI 를 짜 놓은 상태여서 기획 회의 없이 바로 개발에 들어갈 수 있었다. 👍 전 주에 미리 준비한 모우다 팀 칭찬해 👏 상돌과 테니는 CI/CD 파이프라인을 구축하는 업무를 맡았고 호기와 테바, 나는 API 개발 업무를 맡았다. 확실히 기획 회의만 하다가 코딩을..
2024년 7월 8일 - 12일 이번 주는 이유 모를 무기력함으로 인해 많이 흐물흐물해졌던 한 주이다. 😇 월요일부터 목요일까지 이 현상이 내내 지속되었던 것 같다. 이 이유를 파악해보며 나의 스트레스 요인을 알아가고, 앞으로 는 나의 컨디션 관리를 위해 어떻게 하면 좋을 지 고민해보자. 🙄 '그럴 듯한', '있어보이는' 을 경계하기그 전에 이번 주에는 반성할 점이 있었다. 나는 여전히 무의식적으로 다른 사람들의 시선과 평가를 의식하며 더 근사한 결과를 내려고 한다는 것을 느꼈다. ✅ 사건 발단 월요일에는 개발 컨벤션과 기술 스택에 대한 문서를 작성하는 회의를 진행하였다. 기술에 대한 논의는 다같이 진행하였고 문서를 만드는 작업은 기술마다 인원을 분담하여 진행하였다. 나는 CI/CD 에 대한 기술과..
2024년 7월 1일 ~ 7월 5일 👋 새로운 팀 맞이하기6월 30일 두근두근 팀 매칭이 나오고 나는 😎선릉 캠퍼스😎 로 배정되었다. 이제 정든 잠실 캠퍼스를 보내주고 선릉 캠퍼스에서 새로운 삶을 이어나가야 한다. 두둥항상 옆에 같이 있었던 브라운조도 대부분이 잠실 캠퍼스로 배정되어 적응하는 단계가 많이 필요할 것으로 예상된다. 나 빼고 너무 재밌게 놀지 마 구라운조 ... 😥 선릉 캠퍼스로 첫 등교를 하니 매우 낯설었다. 잠깐 출장 온 느낌 ? 하지만 백엔드 크루들이 많이 보여서 마음이 놓였다. 왼손이 주도하는 레벨 3 오리엔테이션을 듣고 나니 프로젝트를 시작한다는 것이 와닿았다. OT가 끝나자마자 팀원들끼리 점심을 먹으러 나갔다. 나의 프로젝트 팀은 테바, 상돌, 호기, 테니, 소파, 치코..
2024.06.29 - [우아한테크코스/레벨2] - [Spring] Authentication 와 Authorization 을 Spring Security 없이 구현해보기 (1) - HTTP 편 [Spring] Authentication 와 Authorization 을 Spring Security 없이 구현해보기 (1) - HTTP 편🤔 인증 (Authentication) 과 인가 (Authorization) 란 ?인증은 자원에 접근하려는 사용자가 누구인지 웹 사이트가 확인하기 위한 과정이다. 웹 사이트 혹은 어플리케이션은 현재 웹 요청을 전송하는 사mingyum119.tistory.com 이전 포스팅에서 HTTP Basic 방식으로 인증을 구현해보았다. HTTP Basic 방식은 구현이 간편하지만 헤..