아카이브
- 11 / 07 도구를 고르는 법 — 두 번 실패하며 배운 것
- 25 / 06 한정수량 100개짜리 쿠폰이 999개 발급됐다 — 락 사다리 v1에서 v5까지
- 21 / 09 [AI Assistant #9] 두 번의 리젝을 넘어 출시 — 앱스토어가 알려준 '사용자 중심'
- 14 / 09 [AI Assistant #8] 드디어 출시 준비 — 접근성·크래시 수집부터 앱스토어 심사까지
- 31 / 08 [AI Assistant #7] 버그 하나가 부른 연쇄 수정 — Parallel Change로 모델을 안전하게 바꾸자
- 24 / 08 [AI Assistant #6] 테스트는 통과했는데 실기기에선 안 울린다?! — 가설로 검증한 알람 정책
- 17 / 08 [AI Assistant #5] 알람이 안 울린다?! — iOS Suspended 상태와 '완벽 대신 완성'
- 10 / 08 [AI Assistant #4] 정책 바뀔 때마다 코드를 고친다고? — SRP로 구조를 다시 세우자
- 03 / 08 [AI Assistant #3] AI가 짜준 코드의 한계 — 설정 책임을 어느 모델에 둘지는 내가 정하자
- 24 / 06 Spring AOP의 런타임 위빙 동작 과정
- 24 / 06 웹페이지 접속 과정
- 17 / 02 뷰(View)와 인라인뷰, 그 외 객체와 DCL
- 13 / 02 DDL: CREATE·ALTER·DROP과 제약조건
- 12 / 02 DML과 트랜잭션: INSERT·UPDATE·DELETE
- 11 / 02 서브쿼리와 ANY·ALL — 모르는 값을 쿼리 안에서 구하기
- 10 / 02 GROUP BY와 HAVING으로 집계하기
- 07 / 02 조인(JOIN) 완전 정복: 등가·비등가·셀프조인과 그룹함수
- 06 / 02 WHERE 조건절과 ORDER BY 정렬: 행을 거르고 줄 세우기
- 04 / 02 SELECT 기본기: 산술연산자·ALIAS·중복 제거
- 03 / 02 데이터베이스 기초: 트랜잭션·무결성과 SQL 개요
- 02 / 01 블로그를 시작하며