ProgramminGucci
ProgramminGucci
프로그래밍/Database
💻 [데이터페이스] 대용량 데이터, 페이징 때문에 느려진다면? 커서 페이징으로 속도 UP!
2025.11.27
개요대용량 데이터베이스에서 페이지 단위로 데이터를 조회할 때, 흔히 사용하는 OFFSET/LIMIT 기반 페이징은 성능 저하와 순서 불안정 문제를 야기할 수 있습니다.이를 해결하는 방법으로 커서(Cursor) 페이징이 있습니다. 커서 페이징은 마지막 조회 항목을 기준으로 다음 데이터를 가져오는 방식으로, 무한 스크롤이나 실시간 데이터 조회에 최적화되어 있습니다.기존 페이징 방식방식: OFFSET + LIMIT예시 쿼리:SELECT *FROM event_historyORDER BY ins_time DESCLIMIT 10 OFFSET 20; 장점특정 페이지 바로 접근 가능구현이 단순함단점OFFSET이 커질수록 DB 성능 저하대량 데이터 조회 시 느려짐삽입/삭제 등 데이터 변경 발생 시 페이지 순서 흔들림커서..
프로그래밍/Kotlin
💻 [Kotlin] 컬렉션과 시퀀스(Sequence)로 성능 체감하기
2025.11.25
개요코틀린의 map, filter, forEach는 굉장히 깔끔하지만,내부적으로 즉시 실행(Eager Evaluation) 이기 때문에체이닝이 많을수록 중간 리스트를 계속 생성하게 됩니다.이번 편에서는 Sequence를 사용해 중간 리스트 없이 지연 실행(Lazy Evaluation) 하는 방법을 실습 중심으로 살펴봅니다.포인트 요약map, filter는 즉시 실행 (리스트를 계속 새로 만듦)asSequence()를 사용하면 지연 실행 (필요할 때만 계산)데이터가 많거나, 체이닝이 깊을수록 Sequence가 효율적Sequence는 “Stream API”와 비슷하지만 Kotlin스럽게 단순화된 버전실무에서는 “대용량 필터링, 로그 처리, ETL 작업”에서 효과적기본 비교: 즉시 실행 vs 지연 실행즉시 실..
프로그래밍/Kotlin
💻 [Kotlin] 람다와 고차함수, inline 함수로 리팩토링하기
2025.11.14
개요자바에서 익숙한 for문, if문, filter문을 코틀린식으로 바꿔보면 처음엔 낯설지만,“로직의 흐름”이 명확해집니다.이번 글은 람다, 고차함수, inline 함수를 실무 코드에 적용해보면서 느낀 차이점을 중심으로 정리했습니다.주요 포인트 요약람다는 함수를 변수처럼 전달할 수 있는 문법고차함수(Higher-Order Function)는 함수를 인자로 받는 함수inline 함수는 람다 호출의 오버헤드를 없애는 실무 최적화용 문법map, filter, forEach, let 같은 표준 함수들이 전부 고차함수 기반실무에서는 중복 제거 + 공통 로직 추출에 특히 유용함Java에서 흔히 보던 코드for (User user : users) { if (user.isActive()) { send..
카테고리 없음
💻 [Kotlin] Null-Safety 완전 정복 (NPE에서 해방되기)
2025.11.10
개요자바 개발을 하다 보면 NullPointerException은 너무 익숙한 단골 손님입니다.“이건 null이 안 들어오겠지”라는 믿음이 한 줄의 에러 로그로 깨지는 순간,코틀린의 Null-Safety 개념이 왜 혁신적인지 실감하게 됩니다.이번 편은 “NPE를 예방하는 언어”로서의 코틀린을 실무 관점에서 직접 체감한 내용을 정리했습니다.주요 포인트 요약String? → nullable, String → non-null?., ?:, !!, let, also, run의 쓰임새 차이null-safe 설계는 타입 수준의 약속“null은 데이터가 없는 상태”가 아니라 “존재하지 않을 수 있는 값”NPE를 컴파일러가 대신 잡아주는 구조자바에서 흔히 보던 코드 String username = request.getU..
프로그래밍/Kotlin
💻 [Kotlin] 기본 문법 훑기 (Java 개발자 입장에서 느낀 차이)
2025.11.10
개요 코틀린을 처음 만지면 “문법이 깔끔하다”는 느낌보다, “이거 왜 이렇게 선언하지?”가 먼저 옵니다.이번 글은 변수, 타입, 함수 선언, if/when, for/while, nullable 같은 기본 문법을 실무 감각으로 정리하면서“자바에서 익숙한 감각과 뭐가 다르고, 어떻게 쓰면 좋은지”를 중심으로 다뤄봤습니다.주요 포인트 요약var vs val: 진짜로 불변성 개념을 체감함타입 추론은 편하지만, 타입 명시가 더 명확할 때도 많음if가 ‘식(expression)’이라 return 문이 필요 없음when은 단순 switch가 아니라 “조건 분기 DSL”처럼 쓸 수 있음널 처리(?, ?:, !!)는 문법이 아니라 사고방식의 차이변수 선언과 타입 추론val name = "Mingu" // 불변var ag..