![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/EJUIm/btsMh2Rtt2s/s4VMNnAGaYgCdq7JpysM11/img.png)
브랜치를 푸시하거나, 라벨을 붙이거나, 태그를 추가할 경우 GitHub Action을 이용하여 Azure API Container에 자동으로 배포하는 방법을 공유합니다. 저희 팀에서는 변형된 Git flow 전략으로 버전 관리를 하고 있습니다그중 QA 브랜치만 다루도록 하겠습니다. 🌠 목차✅ CI/CD에서 원하는 동작✅ GitHub Action workflow 생성✅ Azure 배포 프로세스의 이해 ⭐️⭐️⭐️✅ 만약 안되는 부분이 있다면✅ 회고 CI/CD에서 원하는 동작QA 브랜치에 PR을 만들고 "QA"라벨을 추가하면 자동 CI/CD가 되도록 구현하려고 한다. GitHub Action workflow 생성workflow 파일 코드name: Trigger auto deployment for..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/k778O/btsMeSO3LGK/5vXW542fbcePF0X3pYEo61/img.png)
Nestjs Exception filters 첫 문장Nest에는 애플레킹션 전체에서 처리되지 않은 모든 예외를 처리하는 예외 계층이 내장 되어 있습니다.애플리케이션 코드에서 처리되지 않은 예외가 발생하면 이 계층에서 이를 포착하여 적절한 사용자 친화적인 응답을 자동 전송합니다. 관련된 링크: https://docs.nestjs.com/exception-filters 🌠 목차✅ NestJS 요청 라이프 사이클✅ Exception filters의 주요목적✅ Exception filters가 에러를 잡을 수 있는 이유✅ 예외 처리 방법들 ✅ Exception filters를 활용한 커스텀 ✅ 필터와 파이프 차이NestJS 요청 라이프 사이클클라이언트의 요청이 컨트롤러에 도달하기까지의 플로우1. 클라이..
Unit Testing 책 리뷰와 실무 적용기들어가며"Unit Testing: Principles, Practices, and Patterns"(Vladimir Khorikov 저) 책을 읽고 실무에 적용하면서 느낀 점을 정리해보았습니다. 테스트 코드를 작성하는 여러 방법론과 실제 현장에서의 적용 과정에서 배운 점들을 공유하고자 합니다.(실은 읽다가 어려워서 누락된 내용도 꽤 많아요 ㅎㅎ이해하고 넘어가주세요)책의 핵심 내용테스트의 기본 원칙테스트는 비즈니스 시나리오를 반영해야 함테스트 가독성이 중요테스트가 구현이 아닌 동작을 검증해야 함단위 테스트의 정의작은 코드조각을 검증하고빠르게 수행하고격리된 방식으로 처리하는 자동화된 테스트고전파 vs 런던파격리 문제로 인한 두 학파의 차이고전파: 실제 의존성을 사..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bwBgdO/btsLDmB8YaW/nick8ZSsZvoAakGqZo1eOk/img.png)
자잘자잘하게 따져보면 flutter, JSP, 노코드 등등도 있다 완벽히 NestJS + TS 개발자가 되었다.올해는 특히 TyepsScript 핸드북 Doc을 모두 정독하고, 사내 시험을 보면서 TS와 TS 모듈에 대한 더 깊은 이해를 가지게 되었다. 외부 시스템 연동 오퍼월과 기프티콘 시스템을 적용하기 위해 외부 업체와 협업한 일이 많았다.소통 단계에서 요구해야할 사항들(ex: 개발계/운영계/테스트계 화이트리스트 IP등록)과외부 업체와 메일 소통의 방법에 대해 많이 배우게 되었다.또한 기프티콘 시스템을 도입하게 되면서 도메인에 대한 이해와 예외적으로 발생할 수 있는 상황들을 경험하게 되었다.(ex: 업체의 문제로 상품 구매가 안될 경우가 존재 : 임시발급 단계 -> 발급과정을 거치고, try-c..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/VDKS5/btsI1nKAYKQ/AlqrQKEn8EYB0CwAjxfc00/img.jpg)
'딸깍' 약 200GB 데이터가 84KB가 되었던 순간.대략 99.99996%를 날려버린 나는, 타노스보다 더 한 악당이 되었다. 사건의 시작 - 부제: 앱 접속 시 회원가입이 되는데요?2024 07.29 11시 30분 아침 회의 이후 화장실 가신 CTO님이 급하게 들어오시면서 '다들 앱 실행해 보세요!'라고 외치셨다나는 "응? 무슨 일이지" 하는 마음으로 앱을 열었는데, 회원가입이 되는 걸 보았고, 뭔가 단단히 잘못되었다고 느꼈다.그 순간 운영 업무 하는 분이 '갑자기 고객문의가 계속 들어오고 있어요!' 말을 전해주면서 등에 식은땀이 나기 시작했다. 11시 31분 - select * from users limit 10; result = 0;DB 유저 정보를 조회하는데 하나도 뜨지 않았다."응?","로..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/sobYA/btsIHHXqYIE/3z3JImjrK2Lj3s6d6lifK1/img.png)
안녕하세요,이번 포스팅에서는 NestJS 개발 중 알게 된 스냅샷과 히스토리 개념에 대해 이야기해보려고 합니다.NestJS 개발 커뮤니티에서 유명한 '삼촌님'의 깃허브 레포지토리를 참고하면서 스냅샷 방식을 도입하게 되었습니다.이전에는 히스토리성 로그 방식의 테이블을 사용했는데요,이번 글에서는 두 방식의 차이점과 각각의 특징, 그리고 도입 예제에 대해 알아보겠습니다. 스냅샷과 히스토리성 테이블의 차이점데이터 저장 방식히스토리 테이블: 변경된 내용만 순차적으로 기록합니다. "어제 뭐 했더라..." (매일매일 일기 쓰는 느낌)스냅샷: 특정 시점의 전체 상태를 저장합니다. "자, 여기 내 전재산!" (인생 통장 사진 찍기)조회 성능히스토리 테이블: 최신 상태를 얻기 위해 여..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cRXANx/btsHZKPbgbI/VItwvtcK3DC950wDYuDfmK/img.png)
회사에서 Azure 크래딧을 받게 되어 openAI를 이용해서 댓글 생성해주는 서비스가 있는데플랫폼을 chatGPT -> Azure openAI로 변경하게 되었다.Azure openAI를 적용한 과정과 404 resource not found 에러를 마주하게 되었는데,해외에서도 비슷한 에러로 질문 글을 작성한 것들을 알게 되었다.하지만 해외 공문 QnA를 봐도 마땅히 도움이 되지 않아서 해결하게 된 포스팅을 작성하게 되었다. 🌠 목차✅ Azure openAI 사용을 위한 권한 신청하기✅ openAI 적용을 위한 Studio 예제 소스코드 보기✅ 404 resource not found 해결하기(feat. 공식문서 보고 하다 개삽질한 경험) Azure openAI 사용을 위한 권한 신청하기1. ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/C8NuQ/btsHQm7H1U2/uT4mpuOiWKt2NZ2omgukm0/img.png)
안녕하세요, 백엔드 개발자입니다.'QA 관련 포스팅이 웬일?' 이라고 생각하실 수 있지만,대부분의 스타트업에서는 전담 QA 인력을 채용하기 어려운 현실입니다.그래서 개발자들이 QA를 겸하는 경우가 많은데요,이번 포스팅에서는 제가 QA를 진행하면서 얻은 인사이트와 경험을 공유하고자 합니다. 전문 QA 시트는 보통 depth 1,2,3,4,5로 세분화되어 있지만,개발자가 겸하는 QA에서는 이를 그대로 적용하기엔 현실적인 어려움이 있었습니다.그래서 제가 채택한 방식은 다음과 같습니다:진입점: 화면 진입 경로영역: 테스트 대상 UI 영역케이스: 일반/특수/예외 상황 통합체크리스트: 검증 항목반영사항체크: 구현사항 검증비고: 특이사항UI-발생상황: 현재 상태(AS-IS)UI-기대효과: 개선 방향(TO-BE) ..
- Total
- Today
- Yesterday