Research
논문 리뷰 및 연구 내용을 정리합니다.
2026
- [TIL] Spring Boot 빌드 도구 — Gradle(Groovy) vs Gradle(Kotlin) vs Maven
- [친구하자] 한국 스타트업이 Stripe 대신 Paddle을 고른 이유
- [친구하자] PostgreSQL 호스팅과 ORM, 함께 써야 하는 이유
- [Infra] 리버스 프록시와 Nginx — 왜 많이 쓸까?
- [TIL] Celery + Redis 태스크 큐 — 도입 배경과 동작 방식
- [TIL] Spring Security Filter Chain 구성 — addFilterBefore
- [TIL] OncePerRequestFilter — 서블릿 필터 구현 패턴
- [TIL] @ConfigurationProperties + @Validated — 설정값 검증과 fail-fast
- [TIL] Spring Boot Actuator - 운영 노출 범위 제어
- [TIL] null과 0은 다르다 — API에서 “데이터 없음”과 “값이 0”을 구분하는 법
- [친구하자] JPQL에서 매핑되지 않은 관계의 LEFT JOIN 한계
- [친구하자] JPA @Modifying(clearAutomatically = true)의 함정
- [친구하자] 백분율을 정확히 100%로 만드는 방법 — Largest Remainder Method
- [TIL] 트랜잭션 이벤트 발행 타이밍 문제 — @TransactionalEventListener vs publishEvent() (#196)
- [TIL] 트랜잭션·Redis 정합성, TOCTOU, 보상 트랜잭션 — #150에서 배운 백엔드 포인트
- [TIL] Spring Events, @Async, Redis, STOMP — #148·#149에서 배운 백엔드 포인트
- [친구하자] @Transactional 안에서 외부 네트워크를 호출하면 안 되는 이유
- [TIL] 멀티스레드 Race Condition과 AtomicBoolean (volatile의 한계)
- [TIL] ArrayDeque vs ArrayBlockingQueue — 코드리뷰로 배우는 Java Queue 정리
- [친구하자] OkHttp vs Spring WebFlux WebSocket — 우리가 starter-webflux를 선택한 이유
- [TIL] Android(Capacitor) HTTPS 전용 설정 · Manifest merger · usesCleartextTraffic과 CORS
- [친구하자] CI/CD 파이프라인 구축기: GitHub Actions + Docker + AWS ECR/EC2 배포 자동화
- [친구하자] Android 앱을 만들며 배운 CI/CD와 AWS EC2·ECS 이야기
- AWS ECS 배포 공식 문서 정리 (개발자용)
- [Algorithm] Filter vs Interceptor vs AOP - 요청이 어떻게 처리되는가
- [Algorithm] 다익스트라 알고리즘
- [Algorithm] Integer ArrayList을 int 배열로 변환하는 방법
- [Algorithm] 벨만-포드 알고리즘
- [친구하자] 트랜잭션 전파(Propagation)와 비관적 락 - 같은 트랜잭션 안에서 락이 유지되는 이유
- [친구하자] 실시간 음성 매칭 서비스의 동시성 제어 - 비관적 락 적용기
- [친구하자] WebSocket 메시지 핸들러 인증 문제 트러블슈팅 (@AuthenticationPrincipal와 SimpMessageHeaderAccessor)
- [친구하자] SSL 인증서 자동 갱신 설정하기 (Amazon Linux + Let’s Encrypt)
- [Algorithm] 코딩테스트 알고리즘 선택방법 요약
2025
- [Algorithm] 플로이드-워셜 알고리즘
- [친구하자 2025 회고] 실시간 매칭 시스템, 생각보다 어려웠던 이야기
- [친구하자 2025 회고] 실시간 음성 매칭 서비스, 왜 이 기술들을 선택했나
- [친구하자] Agora Cloud Recording과 Firebase Storage로 음성 통화 녹음 구현하기
- [친구하자] Capacitor 앱 Custom Splash Screen 구현하기
- [친구하자] SockJS Transport와 JSONP: 2025년에 만난 레거시 기술
- [친구하자] Capacitor Android 앱 X-Frame-Options 에러 해결
- [친구하자] Capacitor 앱에서 Kakao/Google 네이티브 로그인 구현 정리
- [친구하자] Capacitor Android 앱 로그인 연동 CORS 트러블 슈팅
- [친구하자] Capacitor로 웹을 앱으로 빌드해보자!
- [Algorithm] 코테에서 자주 쓰이는 Collection 모음
- [친구하자] Agora Cloud Recording 구현 시 Hibernate 에러 트러블슈팅
- [친구하자] 크로스 도메인 환경에서 Refresh Token 쿠키 소실 문제 #2
- [친구하자] 크로스 도메인 환경에서 Refresh Token 쿠키 소실 문제
- [친구하자] Redis 데이터 초기화 트러블 슈팅
- [친구하자] HTTPS/HTTP Mixed Content 에러 해결하기
- [친구하자] WebRTC란 무엇일까?
- [JAVA] Java 알고리즘 문제 풀이 시, 자주 쓰이는 Steam API 함수들
- [친구하자] 매칭 대기열 만들면서 정리한 Redis 명령어 치트시트 (SET/ZSET편)
- [친구하자] 배치 스케줄러에서 @Transactional(REQUIRES_NEW)를 선택하기까지
- [친구하자] 매칭 대기열 설계 기록 : 왜 DB + Redis 하이브리드로 갔나
- [JAVA] Queue는 왜 안되고 Queue는 왜 될까?
- [TIL] A/B 테스트
- [친구하자] Hidden Technical Debt in Machine Learning Systems
- [TIL] Hidden Technical Debt in Machine Learning Systems
- [Etc] FastAPI vs Flask: Python 백엔드 프레임워크 비교
- [TIL] Jenkins vs GitHub Actions, IaaS vs PaaS vs SaaS
- [TIL] Nginx, 리버스 프록시, 로드 밸런서
- [TIL] Grafana & Prometheus, Rolling Policy, 시계열 메트릭
- [TIL] 메테리얼 디자인 vs 쿠퍼티노 디자인, Log vs Metrics, Structure…
- [TIL] RPM, 앙상블, 비용, WSL, Windows Subsystem for Linux …
- [TIL] Ollama
- [컨퍼런스] AI Tech 2025 참석 후기
- [TIL] spring-boot-starter-validation, 테스트 코드 모니터링 툴
- [TIL] UUID와 Auto Increment PK는 언제 사용할까?
- [TIL] 순환 참조 문제 (Infinite Recursion in JSON Serializat…
- [TIL] Sequence diagram, 아키텍처 다이어그래밍
- [TIL] Spring Boot Test 코드 작성
- [TIL] Git 협업 시 PR 대기 중 다음 기능 작업은 어떻게 해야할까?, @RequestB…
- [TIL] WebFlux, WebClient
- [TIL] DTO 나누는 기준, Entity에서 DTO 생성하는 방식, @Valid
- [Spring] DTO를 나누는 기준은 어떻게 고려해야할까?
- [TIL] 정적 팩토리 메서드, 모놀로닉 아키텍쳐
- [TIL] Spring Cloud Gateway
- [버티] 버티 서비스를 위한 Spring Boot MSA 구현 방식 조사
- [TIL] Spring Boot Pageable, PageableDefault 어노테이션
- [TIL] PATCH vs PUT, 0-1 BFS (동작방식 gif 포함!)
- [Spring] PATCH vs PUT
- [TIL] Omit, Clean URL, Query String, Tuple, POJO, VO,…
- [TIL] @Controller vs @RestController, JPA reflection에…
- [TIL] JPA Query Method, Spring Security에서 Swagger doc…
- [버티] 프로젝트 개발 중 마주한 사소한 이슈들
- [Spring] JPA Query Method
- [TIL] JWT로 로그인을 구현했을 때 로그아웃 방법을 어떻게 해야할까?
- [버티] JWT로 로그인을 구현했을 때 로그아웃 방법을 어떻게 해야할까?
- [버티] Spring Security와 Swagger 통합 시 발생한 이슈 해결기
- [버티] 프로젝트 구조 설계 고민과 선택
- [TIL] JPA 더티체킹
- [TIL] Thymeleaf, UUID 버전별 특징
- [Spring] Thymeleaf
- [Spring] 논블로킹(Non-blocking) vs 비동기 (Asynchronous)
- [TIL] JPA 주요 애너테이션, CompletableFuture
- [Spring] JPA vs MyBatis
- [TIL] JPA / MyBatis, AOP가 IoC한테 다 잡아 먹혔다
- [TIL] 오버플로우, 언더플로우, 버퍼 오버플로우 위험성
- [TIL] DTO vs VO vs Entity, DTO/DAO/Repository
- [Spring] DTO vs VO vs Entity
- [TIL] HttpClient/ RestTemplate/ WebClient, 논블로킹 vs 비동…
- [Spring] HttpURLConnection, RestTemplate, WebClient
- [Etc] 💣 SQL Injection
- [TIL] Spring에서 interface와 abstract class
- [TIL] Github Gist, SQL Injection
- [TIL] REST API vs GraphQL, 멱등성
- [TIL] DBaaS, Docker
- [Algorithm] 소수 빠르게 찾는 법
- [TIL] Spring Boot 기반의 MSA에서 오류 처리 방식
- [TIL] HttpServlet VS Servlet, 실무에서 Servlet을 쓰는가?
- [Spring] Spring VS Servlet
- [Etc] 🤖 Layered Architecture & MVC pattern
- [TIL] JSP에서 정적 리소스 서빙
- [TIL] Redirect vs Forward
- [TIL] Java record, HttpClient / HttpRequest / HttpRes…
- [JAVA] record
- [JAVA] 동시성 처리 (Concurrency)
- [TIL] 정적・동적 프로퍼티, HTML, JavaScript, Java에서 프로퍼티 차이
- [TIL] immutable/final/const, Java Concurrency
- [TIL] 레이어드 아키텍쳐, MVC, 보일러 플레이트
- [Etc] immutable, final, constant
- [Etc] 🎞️ Boilerplate와 Lombok
- [TIL] 함수형 인터페이스 FunctionalInterface, Logger
- [TIL] HashMap의 초기 크기 설정
- [JAVA] 🚀 ArrayList vs 배열(int[]) 성능 비교
- [JAVA] SOLID 원칙
- [Etc] 🔑 Access Token과 Refresh Token 완벽 정리
- [Etc] OAuth란?
- [Git] 효율적인 Git commit 전략: 단위 결정, 스타일, 충돌 해결 방법
- [TIL] 효율적인 git commit 전략
- [TIL] JWT 저장방식 HttpOnly Cookies VS LocalStorage
- [TIL] Swagger, Naver Login 연동, 게시판 프론트 & 백엔드 연결
- [TIL] Supabase 연동 및 Render를 이용한 배포, Flask_CORS
- [TIL] JWT로 Kakao & Google Login, Supabase DB 연동 (Flask)
- [TIL] Kakao Login 구현
- [TIL] Express.js, nodemon, dotenv, 다단계 AI호출
- [TIL] JS Callback, Promise, Fetch, Axios
- [TIL] 시큐어 코딩, glitch, CORS
- [JavaScript] DOM & BOM
- [TIL] JS BOM, 로컬/세션 스토리지, 직렬화, ??
- [JavaScript] 로컬 스토리지 VS 세션 스토리지
- [Etc] 직렬화 (Serialization)와 역직렬화(Deserialization)
- [TIL] JS 화살표함수, 고차함수, DOM, Event
- [JavaScript] 함수
- [JAVA] Generic
- [Etc] TDD (Test-Driven Development, 테스트 주도 개발)
- [TIL] TDD, Java Generic
- [JavaScript] 단축 평가
- [TIL] JavaScript 단축 평가, Git Actions를 이용한 자동화
- [TIL] git rebase, Java int와 long 구별
- [Git] git rebase
- [JAVA] int와 long의 차이 ➡️ 범위와 오버플로우 문제 완벽 정리
- [TIL] git clone VS fork, Headless CMS, Strapi, 네이밍 컨벤션
- [Git] git clone VS git fork
- [Etc] Naming Convention
- [TIL] CSS position, flex, bootstrap, responsive/react…
- [CSS] CSS Flex
- [TIL] CSS의 정의, em, rem, float
- [Etc] Responsive VS Reactive
- [CSS] CSS Float
- [CSS] CSS 문법
- [HTML] Emmet
- [TIL] Prompt Engineering, RAG, vs code Cline
- [AI] 생성형 AI와 LLM
- [AI] RAG (Retrieval-Augmented Generation) 이란?
- [Algorithm] 인접 리스트(Adjacency List) 정리
2024
- [Algorithm] Linear Time Sorting Algorithm
- [Algorithm] 분할정복 알고리즘 (Divide and conquer)
- [JAVA] Set
- [Spring] Spring 매핑 개념과 주요 애너테이션 활용법
- [Spring] Spring Framework의 주요 개념 (IoC, DI, AOP, PSA)
- [JAVA] JAVA 메모리 모델과 변수의 종류 : static, 지역변수, 레퍼런스 변수 이해하기
- [JAVA] JAVA version 17의 주요 변화
- [CS] 컴파일 언어 VS 인터프리터 언어, 그리고 Java
- [AWS] AWS 기초
- [JAVA] StringBuilder
- [Algorithm] 서로소 집합과 유니온 파인드
- [JAVA] 키보드로 사용자 입력받는 2가지 방법 (BufferdReader, Scanner)
- [Algorithm] 동적 계획법 (DP)
- [Algorithm] 너비 우선 탐색 & 다익스트라 알고리즘
- [Algorithm] 깊이 우선 탐색
- [Algorithm] 재귀와 정렬
- [Algorithm] 문자열
- [Algorithm] 유클리드 호제법
- [Algorithm] 시간 복잡도