Android 16 타겟 SDK 대응은 트랙 하나만 올려선 끝나지 않는다
Google Play Console에 “8월 31일까지 API 36을 타겟팅하지 않으면 앱을 업데이트할 수 없다”는 정책 알림이 떴다. 처음엔 계정에 있는 다른 앱 얘기인 줄 알고 엉뚱한 프로젝트를 열었고, 나중엔 비공개 테스트 트랙에만 새 빌드를 올려놓고 다 됐다고 착각했다. 두 번 다…
framework애 대한 내용입니다
Google Play Console에 “8월 31일까지 API 36을 타겟팅하지 않으면 앱을 업데이트할 수 없다”는 정책 알림이 떴다. 처음엔 계정에 있는 다른 앱 얘기인 줄 알고 엉뚱한 프로젝트를 열었고, 나중엔 비공개 테스트 트랙에만 새 빌드를 올려놓고 다 됐다고 착각했다. 두 번 다…
빌드는 이미 TestFlight에 올라가 있었다. 심사 제출은 그 빌드를 고르고 버튼만 누르면 될 줄 알았다. 그런데 “심사에 추가”를 누르자 두 개의 필드가 비어 있다며 막혔고, 그 앞단에는 App Privacy 설문·연령등급·수출 규정 같은 “답을 정해야 하는” 질문들이 줄지어 있었다. 심사 제출은…
CI/CD로 TestFlight 업로드까지 자동화해두고, App Store 첫 등록도 명령어 몇 줄이면 끝날 줄 알았다. 그런데 App ID를 만드는 첫 단계부터 fastlane produce가 막혔고, 결국 웹 UI에서 하나씩 눌러 등록했다. 자동화가 어디서 멈추는지, 그리고 준비 단계에서 나를 붙잡은 사소한 오류들을 순서대로…
취미(부업…)로 만든 Flutter 앱에 fastlane + GitHub Actions로 배포 자동화를 붙였다. 결과부터 말하면, Android는 실제로 Google Play internal 트랙 업로드까지 완주해 파이프라인이 로컬 기준으로 완전히 검증됐다. iOS는 아직 Apple Developer 계정(돈…ㅠㅠ) 확인 단계에서 멈춰 있어 문법 검증까지만 마친 상태다 한쪽은…
이커머스 시스템에서 연동해야 하는 POS사가 하이픈POS, 나이스POS, 이지POS, OKPOS, 메이트POS, 드림하이테크POS, fodiPOS까지 7개였다가 KpnpPOS가 추가되면서 8개로 늘었다. 그 시점에 코드에는 POS 타입마다 if-else 분기가 controller, service, repository 곳곳에 흩어져 있었다. POS사 하나를 추가하면 건드려야 할 파일이 최소 5개였고, 그 중…
분명 값을 보냈는데 400이 떴다. 처음엔 @NotBlank 문제인 줄 알고 어노테이션을 바꿔가며 한참을 헤맸다. 원인은 필드명이었다 문제 상황 프로젝트에서 데이터 매핑 오류를 경험했다. 분명 JSON으로 값을 보냈는데, Controller에서 @Valid 검증에 걸려 400 에러가 발생했다 studentName은 정상 매핑됐다. sId만 계속 null이었다…
jOOQ를 사용하다 보면 매번 JOIN할 때마다 ON 절을 명시해야 하는 번거로움이 있다. JPA – QueryDSL에서는 Entity의 연관관계 덕분에 ON 절 없이도 간단하게 JOIN을 작성할 수 있는데, jOOQ에서도 외래키(Foreign Key) 정보를 기반으로 테이블 간 연관관계 Path를 자동 생성해서 활용하면 ON 절…
jOOQ의 ExecuteListener를 활용하면 애플리케이션 레벨에서 슬로우 쿼리를 실시간 슬로우 쿼리 감지할 수 있다 ExecuteListener ExecuteListener는 jOOQ가 제공하는 라이프사이클 훅으로, SQL 실행의 각 단계에서 커스텀 로직을 실행할 수 있게 해준다 PerformanceListener 구현 jOOQ Configuration 등록 Spring Boot 3.x에서는 DefaultConfigurationCustomizer를 통해 jOOQ…
JPA Entity 기반 DSL 생성 방식은 좋지만 멀티모듈 강제, 일부 DB 객체 지원 불가 등의 제약이 있었다. 이번에는 Testcontainers와 Flyway를 결합하여 DDL 파일로 jOOQ DSL을 생성하는 방식을 살펴보자 DDL Database 방식의 한계 순수 DSL 파일만으로 DSL을 생성하는 방식(DDL Database)를 살펴보자…
코드만 봐도 어떤 쿼리가 실행될지 예측하기 쉽다는 것이 jOOQ의 큰 장점이다. 여기서는 jOOQ의 핵심이라 할 수 있는 코드 제너레이션(Code Generation)방식과 무엇을 기준으로 DSL을 만들어야 하는지 알아본다 Code Generation jOOQ의 코드 제너레이션은 다양한 데이터 소스 중 하나를 참고하여 jOOQ DSL을 생성하는…