모든 블로그
spoqa

spoqa

주요 카테고리 백엔드 · 프론트엔드

활동 요약

대표 인기 포스트단지 권한 기능을 추가해달라고 했을 뿐인데(feat. 인증 기능 개선)140 조회
최근 30일
0개
평균 조회
48
누적 조회
1,154
전체 글
24개
마지막 발행
2026. 3. 12.
블로그 방문

spoqa 기술 블로그 글 (24)

프론트엔드

KMP/CMP 마이그레이션, 정말 프로덕션에서 가능할까? - 키친보드 앱 마이그레이션 도전기

KMP/CMP 마이그레이션에서 Compose Navigation의 WebView 상태 유실 문제를 커스텀 네비게이션으로 해결했습니다. FragmentManager와 UINavigationController로 상태 유지와 결과 전달을 구현하며 프로덕션 적용 가능성을 확보했습니다.

#Kotlin#Android#iOS
11400

프론트엔드

피그마 플러그인 만들어줘

피그마 플러그인 ‘커틀러리’를 직접 만들어 더미 데이터 주입과 레이어 매핑 작업을 자동화한 경험을 공유했습니다. CORS, 이미지 요청 한도, 협업 문서화 과정에서의 시행착오와 해결 과정을 정리했습니다.

#Figma#GCP#AWS
9400

기타

보법이 다른 B2B 디자인

B2B SaaS 디자인에서는 고객 업무 맥락과 특수한 운영 환경을 깊이 이해하는 과정이 중요했습니다. 인터뷰, VOC, 쉐도잉, 페르소나 설정이 문제 본질을 찾는 핵심으로 소개되었습니다.

#B2B#제품 디자인#유저 인터뷰
8600

백엔드

단지 권한 기능을 추가해달라고 했을 뿐인데(feat. 인증 기능 개선)

권한 기능 추가를 계기로 JWT 인증 방식을 개선하고 Refresh Token Rotation과 하위 호환 인증을 도입했습니다. 또한 Spring Security 권한 체크를 유연하게 바꾸며 기술 부채도 함께 정리했습니다.

#Spring Security#JWT#Refresh Token
14000

백엔드

식자재 품목 검색을 더 쉽게! 검색 엔진 도입과 개선

식자재 품목 검색 품질을 높이기 위해 Elasticsearch를 도입하고 분석기, N-gram, Wildcard를 조정한 과정을 정리했습니다. 초성 검색은 ICU 확장을 선택해 유지보수성과 확장성을 함께 고려했습니다.

#Elasticsearch#검색#Nori
4600

백엔드

스포카의 백엔드팀에서 코딩 컨벤션을 관리하는 방법

코딩 컨벤션을 문서, Lint, 코드 리뷰, SonarQube, Konsist로 나눠 관리한 사례를 소개했습니다. 자동화와 리뷰를 조합해 스타일과 구조 규칙을 함께 지키는 방법을 설명했습니다.

#Kotlin#Gradle#CI/CD
5200

AI

AI를 활용한 주문서 생성 자동화: 카카오톡 주문을 키친보드 주문으로

카카오톡 비정형 주문을 AI로 해석해 주문서 초안을 자동 생성한 사례를 소개했습니다. Spring AI와 병렬 처리로 속도와 편의성을 높이고, 최종 품목 선택은 사용자 확인으로 보완했습니다.

#Spring AI#ChatGPT#RAG
11400

백엔드

Querydsl에서 Kotlin JDSL 으로

Querydsl의 kapt 의존성과 유지보수 한계를 이유로 Kotlin JDSL로 전환한 과정을 정리했습니다. 후보 라이브러리 비교와 팀 단위 전환 방법까지 함께 소개했습니다.

#Querydsl#Kotlin#JPA
6100

아키텍처

발전하는 iOS와 Clean Swift Architecture

iOS 앱에서 기존 Clean Swift가 최신 Swift 환경과 맞지 않는 문제를 짚고, CIS 패턴으로 재구성한 사례를 소개했습니다. View, Controller, Interactor, Store, Worker로 역할을 나누어 상태 관리와 테스트 가능성을 높였습니다.

#iOS#Clean Architecture#SwiftUI
3200

프론트엔드

키친보드 안드로이드 앱 Jetpack Compose 도입기

키친보드 안드로이드 앱에 Jetpack Compose를 도입한 배경과 장단점을 정리했습니다. 실무 적용 팁으로 MVI, Modifier 확장, 테스트 자동화 방법도 함께 공유했습니다.

#Android#Jetpack Compose#Kotlin
2400

백엔드

기능 테스트 전환 이야기

기능 테스트로 전환한 배경과 통합 테스트의 한계를 설명한 글입니다. Hibernate와 Spring 이벤트 처리로 인한 실제 버그 사례를 통해 전환 이유를 정리했습니다.

#Hibernate#Spring Framework#JPA
1800

백엔드

이벤트 로그 체계 구축 여정

기존 Firebase 이벤트 로그의 부족한 데이터, 분리된 문서, 디버깅 어려움을 해결하기 위해 새 로그 체계를 설계했습니다. 구글 시트와 Redash를 활용해 문서화, 검증, 운영을 한 흐름으로 묶었습니다.

#Firebase#BigQuery#Redash
2700

백엔드

청구/수납 서비스 개발기

키친보드는 식자재 시장의 현실에 맞게 청구/수납 서비스를 설계했습니다. 미납금, 청구 없이 수납되는 상황, 대량 알림 전송 제약을 고려해 관계를 느슨하게 풀어냈습니다.

#Spring Boot#Kafka#채팅
3200

기타

1년차 개발자의 훈수 두기

신입 개발자가 1년 동안 회사에서 느낀 차이와 배운 점을 정리했습니다. 재택근무, 문서화, 질문, 리뷰, 협업 태도의 중요성을 중심으로 설명했습니다.

#문서화#재택근무#페어 프로그래밍
3600

백엔드

스포카에서 Kotlin으로 JPA Entity를 정의하는 방법

Kotlin에서 JPA Entity를 정의할 때 자주 보이는 안티 패턴을 정리했습니다. mutable property, data class, lateinit 사용 시 주의할 점을 설명했습니다.

#Kotlin#JPA#Entity
3600

백엔드

우당탕탕 주문서 개발기

주문서 다중 수정에서 변경 덮어쓰기를 막기 위해 revision 검증과 비관적 잠금을 함께 적용했습니다. 품목 스냅숏과 JSONB 이력으로 과거 주문 내용과 변경 기록을 보존했습니다.

#Kotlin#동시성#PostgreSQL
3000

기타

스포카에서 Jira를 활용하여 프로젝트를 수행하는 방법

스크럼과 칸반을 혼합한 Jira 프로젝트·운영 이슈 관리 방식을 설명했습니다. 이슈 계층, 상태 관리, 추정치와 리포트 활용 기준을 안내합니다.

#Jira#agile#스크럼
3600

프론트엔드

테스트 자동화 구축 이야기

모바일 리그레션 테스트의 병목을 줄이기 위해 Appium 기반 자동화 구축 전략을 정리했습니다. Positive 케이스를 선별하고 Python·Unittest로 Android 테스트 구조와 리포팅을 구성했습니다.

#Appium#mobile#test
3000