전체 글 5

HashMap vs TreeMap

HashMap- 순서없음- 평균 O(1)- null 키 허용HashMap은 해시 기반의 구현체로서 AbstractMap을 확장하고 Map을 구현한다. 해시 값으로 데이터에 접근하므로 값을 삽입하고 검색하고 삭제하는 연산 모두 O(1)의 시간 복잡도를 가진다. 하지만 최악의 경우 삽입되는 모든 데이터에 해시 충돌되면 모든 데이터가 연결 리스트로 관리되기 때문에 O(n)의 시간 복잡도를 가지게 된다. 말이 너무 어려우니 코드를 한번 살펴보자.이 녀석은 내부적으로 Node[] table이라는 배열을 가진다. Node는 연결 리스트에서 배운 Node이다. 즉, 다음 노드를 가리키는 참조가 존재한다.값을 삽입하거나 값에 접근할 때엔 hashCode % capacity로 인덱스를 정해서 그 bucket에 데이터를 ..

카테고리 없음 2025.08.26

나도 좀 알자! Redis

https://www.youtube.com/watch?v=mPB2CZiAkKM&t=1907s우아한 Redis 세미나 영상을 보면서 정리한 내용입니다. 더욱 자세한 내용을 보고 싶다면 영상을 참고하시길 바랍니다. Redis의 등장과거 모놀리틱 아키텍처에선 서버의 성능을 높이기 위해 주로 CPU, 메모리, 디스크를 늘리는 수직적 확장을 사용했다. 하지만 이 방식은 비용이 많이 들고, 일정 수준 이상으로 확장하기 어렵다는 한계가 있었다. 그래서 개발자들은 마이크로 서비스 아키텍처를 도입하여 애플리케이션을 독립적인 작은 서비스 단위로 나누고, 필요한만큼 서버를 증설하는 수평적 확장 방식을 적용하게 된다. 덕분에 트래픽이 몰리는 특정 서비스만 유연하게 확장할 수 있게된 것이다. 그러나 새로운 문제가 발생하였다...

Database 2025.08.22

진짜 문제 나갑니다!! Index... 과연 무엇일까요?

들어가며Database Indexing은 최신 데이터베이스에서 효율적인 데이터 검색을 위해 필수적이다. 기본키를 통해 레코드를 찾을 때 Index가 적용되어 결과를 빠르게 찾을 수 있다. 10만개가 넘는 데이터 중 내가 원하는 값을 가져오는데 시간이 매우 적게 든다면 더욱더 빠른 서비스를 제공할 수 있을 것이다. 이제 Index를 사용할 수 있도록 인덱스가 무엇이고, 어떻게 사용하는지 알아보자. Index는 얼마나 빠르지?설명을 위해 ID, Email, 이름, 나이, 핸드폰 번호라는 속성이 있는 간단한 전화번호부 테이블을 생각해보자. 테이블에서 데이터는 행으로 구성되며 각 행은 Record이다. 열은 레코드의 속성이나 특성을 정의한다. 100개의 데이터가 있는 테이블에서 내가 원하는 조건을 가지는 데이터..

Database 2025.08.17

[Java] Stream이 뭔지 모른다면

목 표스트림의 동작을 이해할 수 있다.스트림이 무엇인지 설명할 수 있다.스트림을 올바르게 생성할 수 있다. Stream순차적 및 병렬 처리를 지원하는 요소의 시퀀스A sequence of elements supporting sequential and parallel aggregate operations자바에서 Stream은 다양한 데이터 소스를 표준화된 방법으로 다루기 위해 사용된다. Java에서는 List, Set, Map을 통해서 데이터 소스를 다룬다. 자바가 발전하면서 java.util.Collection을 통해 다양한 자료구조들을 하나로 묶으려 하였는데 Map은 리스트와 집합과 데이터를 사용하는 방식이 달랐기에 다양한 자료구조를 완벽히 표준화할 수 없었다. 하지만 JDK 1.8 이후 Stream으..

Java 2025.07.29

FCM(Firebase Cloud Messaging)을 알고 계신가요

안녕하세요. 전 요즘 선행을 기록하는 [흔적]에 백엔드로 합류하여 앱 출시를 바라보면서 개발하고 있습니다. 최근에는 알림 탭 기능을 구현하게 되어 관련 작업을 맡고 있습니다. 이 과정에서 FCM(Firebase Cloud Messaging)을 사용한 기능을 개발하며 학습하고 정리한 내용을 공유하고자 합니다.이 글을 읽은 후엔 FCM의 개념, 아키텍처, 백엔드에서 메시지를 전송하는 방식에 대해 이해할 수 있습니다. Firebase Cloud MessagingFCM은 메시지를 안드로이드, IOS, 웹 환경에서 안정적인 메시지 교신을 돕는 크로스 플랫폼 메시징 솔루션입니다. 안드로이드, IOS, 웹에서 메시지를 수신하는 방식이 다르지만, FCM을 사용하면 하나의 통합된 인터페이스를 통해 다양한 플랫폼으로 ..

Firebase 2025.07.21