이 글에서는 기존에 하나의 트랜잭션 안에서 동작하던 주문 생성 로직을 Spring Application Event 기반으로 분리하며, 트랜잭션 안정성과 코드 구조 개선을 동시에 달성한 과정을 정리합니다.Spring Application Event는 JVM 내부 메모리에

PG 시뮬레이터를 로컬 PC(M1 Air)에서 실행하며, 실제 운영 환경에서 적용할 Failure Ready System을 어떻게 설계할지 수치 기반으로 정리했습니다.서버와 TCP 연결을 맺는 데 걸리는 시간PG 요청 지연 max = 500ms→ 600ms로 설정서버가
인덱스 생성 브랜드 + 좋아요 인덱스 확인 좋아요수는 변경이 많은데 인덱스를 생성해도될까 최신순, 좋아요수 정렬은 전처리된 데이터가 아닌 기본 데이터를 쓸까? 조회 목록 기능에서 고려해야할 검색 조건 브랜드id 별 목록 최신순/가격별/좋아요수 별 정렬 수정이 빈번
TL;DR 주문 시스템의 재고와 포인트 차감 로직에 동시성 제어를 적용하는 과정에서, JPA 1차 캐시와 @OneToOne 양방향 관계가 비관적 락의 동작을 방해하는 예상치 못한 문제를 발견하고 해결한 과정을 정리했습니다. 배경: 주문 시스템의 동시성 문제 전자상거
주문 생성 트랜잭션을 깔끔하고 유지보수하기 쉬운 코드로 만들기 위해, 기능과 책임을 쪼개고 합치는 여정의 기록입니다. 이 과정에서 응용 서비스(Facade)와 도메인 서비스의 경계를 명확히 했습니다.현재 만들어야 하는 기능을 우선 상세하게 문장으로 적어보자"주문자가 /
간단하게 그려진 초기 클래스 다이어그램을 점검하고, 핵심 요소를 반영하며 최종 문서를 완성하는 과정을 정리합니다. 1. 🔑 접근 범위(Visibility) 및 메서드 추가 Mermaid 문법을 활용하여 클래스 멤버(필드, 메서드)의 접근 범위를 명확히 표현했습니다. | 기호 | 의미 | 설명 ...
테스트 주도 개발(Test Driven Development, TDD)은 기능 구현에 앞서 테스트 코드를 먼저 작성하는 소프트웨어 개발 방법론입니다. 테스트 케이스를 먼저 작성하고 이를 통과시킬 최소한의 코드를 작성하는 과정을 반복하며 개발을 진행합니다. 🙋♀️
이전에 Android로 구현한 React Native 앱에서 외부 앱(사진, 카메라, 갤러리 등)에서 공유되는 이미지를 받아서 처리하는 기능을 iOS으로 개발하는 작업이었습니다. 처음에는 Swift로 개발을 시작했습니다. 최신 언어이고 문법이 깔끔하며, iOS 개
React Native 0.68부터 도입된 New Architecture는 기존의 Bridge 방식에서 TurboModule과 Fabric으로 전환하면서 성능상의 많은 이점을 가져다주었습니다. 하지만 기존 Legacy 모듈들과의 호환성 문제로 인해 많은 개발자들이 마이

Jenkins(Kubernetes 방식) 으로 변경 설정 초기 비밀번호 확인 secret 생성 [GitHub Push] ↓ (Webhook) [Jenkins Git Pull] ↓ [Docker Build (Minikube Docker)]

openssl 1. OpenSSL 설정파일 생성 nano ~/openssl-san.cnf 2. 인증서 및 키 생성 3. nginx 설정 수정 4. nginx 재시작 외부포트 설정 1. 도메인구매 및 cloudflare 설정 www.namecheap.com ht
ChatGPT 사용을 위한 114버전 다운로드 아래 사이트 맨 마지막 > 다른 플랫폼 선택 https://www.google.co.kr/chrome/next-steps.html?platform=mac129&statcb=0&installdataindex=empty&def
reactotron-recoil-plugin 설치후 다음과 같은 에러가 발생해, --force 구문으로 해결하고 진행했었다. (이미 설치된 recoil의 버전과 reactotron-recoil-plugin 에 필요한 recoil 버전이 달라 발생한 오류이다.) mai

디버그 라이브러리로 reactotron-recoil-plugin를 추가하고 npm install 시, 다음과 같은 오류가 발생했다.라이브러리의 마지막 업데이트가 3년전이라, 버전이 맞지 않았다.React 를 개발한 Facebook에서 개발한 React 상태관리 라이브러

Device > ShakeCmd ⌘ DCmd ⌘ MCtrl M설치 https://fbflipper.com/ 다운로드 또는 brew install — cask flipperFlipper 설정android/gradle.properties.FLIPPER_VERS
react native 의 크래시 도구에 대해 알아보자리액트 네이티브의 크래시 도구에 대해 한글로 검색 했을때, 다양한 도구들이 소개되어 있는 글보다, 한국회사가 개발한 도구에 대한 광고성 글과 Crashlytics 적용 글이 우선적으로 검색되었다. Firebase
단일 브랜치에서 개발자 협업main 브랜치에 코드가 머지되면, CI 시스템이 테스트/통합 과정 확인main 브랜치 코드가 즉시 운영에 반영된다.빈번한 머지와 배치로, 배치당 수정되는 코드가 적어진다. PR당 확인해야하는 코드가 적어져 리뷰가 쉬워지고, 배치당 해결해야하
Git, Github, GitLab 브랜치 전략에 대해 정리한다.개인 Github를 관리하면서 master에 커밋하는 정도록 git을 사용하기 시작했다. 그리고 취업후 처음으로 진행했던 웹 사이드 프로젝트에서 Git flow/Pull Request 를 사용하게 되었고

앱개발 중 선택된 권한 뿐만아니라, 권한의 설명까지 아래 보여주는 picker 라이브러리를 찾아 개발해야 됬다.나와 비슷한 질문에 react-native-dropdown-picker 라이브러리를 추천한 글을 보았다. 라이브러리를 더 알아보니 renderItem를 사용해
인생퍼즐 앱에서 사용하고 있는 Styled View, Container의 용도에 대해 정리한다.react-native 에서 자주 쓰이는 View 에 대한 질문에 chatGPT의 대답중 몇가지를 정리했다.가장 기본적인 컨테이너 컴포넌트다른 컴포넌트들을 포함하고 레이아웃을