분류 전체보기(116)
-
장바구니 기능명세서 수정 : 상황을 통한 통한 효율성 증진
최근 작업한 배달의 민족 '장바구니 추가' 기능에 대한 업데이트와 그 배경에 대해 공유하고자 합니다. 설계상의 오류: 불필요한 유효성 검사 초기 설계에서는 메뉴 ID의 유효성, 재고 상태 확인, 가게 ID의 유효성 등 여러 단계의 검증을 포함했습니다. 작성을 할 때부터 처리해야 하는 유효성 검사도 많은 데다가, MSA 환경이라 분리가 되어 있어 네트워크를 타고 해야 하는 유효성 검사면,, 성능이 무자비하게 안 좋을 거라 생각했습니다. 그래서 이에 대해 팀원들과 주간 회의에서 얘기하다 받은 피드백은 프론트엔드가 어차피 해당 가게의 메뉴를 이미 가져오는 상황에서 요청을 보내는 거라 메뉴 ID의 유효성 검증은 중복되고 불필요한 과정이라는 겁니다. 또한, 재고 상태를 DB에서 관리하는 것이 실제로는 의미가 없다..
2023.11.20 -
결제 취소 기능명세서 수정 : 서비스 분리의 중요성
오늘은 '결제 취소 기능'의 개발 과정에 대한 글을 쓰러 왔습니다. 초기 설계의 오류 : 결제 서비스의 역할 혼동 초기에 결제 취소 기능을 설계할 때, 사용자가 직접 결제를 취소할 수 있는 시나리오를 고려했습니다. 기존의 모놀리식 방식에서는 이러한 방식이 틀리지 않다고 할 수 있습니다. 왜냐하면 모든 서비스에 대한 코드가 다 하나의 시스템 안에 같이 있기 때문이죠. 그러나 이는 결제 서비스의 본질적인 역할에 대한 오해에서 비롯된 것이었습니다. 결제 서비스는 말 그대로 '결제'라는 행위를 관리하는 것이지, 사용자가 직접 취소를 요청하는 것은 아닙니다. 수정된 프로세스 팀원들과의 논의를 통해 실제 배달의 민족에서 결제 취소를 하기 위해서는 고객센터가 이를 수작업으로 고객한테서 취소 요청을 받고 전달하거나, ..
2023.11.20 -
CD(Continuous Deployment) 기본 개념, CD 도구 선택의 이유
지금까지의 이야기 2023.11.17 - [해축갤 프로젝트/CI CD] - 원큐에 끝내는 GitHub Actions 를 이용한 CI 구축 : 기본 실습 가이드 원큐에 끝내는 GitHub Actions 를 이용한 CI 구축 : 기본 실습 가이드 안녕하세요! 지난 번에는 CI(Continuous Integration) 프로세스와 도구 선택에 대해 알아보았습니다. 2023.11.14 - [해축갤 프로젝트/CI CD] - CI(Continous Integration) 도구 선택 고민 원큐에 끝내기 CI(Continous Integr xpmxf4.tistory.com 저번까지는 CI(Continuous Integration) 를 도입한 과정을 공유했습니다. 테스트 코드를 작성후 GitHub Actions를 활용..
2023.11.20 -
아ㅏㅏㅏ 지속적 제공 vs 지속적 배포 의 차이가 뭔데
혼란의 시작 : 지속적 제공(Continuous Delivery)과 지속적 배포(Continuous Deployment) 구분이 안된다 https://www.redhat.com/ko/topics/devops/what-is-ci-cd?cicd=32h281b CI/CD(CI CD, 지속적 통합/지속적 배포): 개념, 툴, 구축, 차이 CI/CD는 애플리케이션의 통합 및 테스트 단계부터 제공 및 배포까지 애플리케이션 라이프사이클 전체에서 지속적인 자동화와 지속적인 모니터링을 제공하는 것을 뜻합니다. www.redhat.com RedHat의 글을 읽다가 혼란이 왔습니다. 지속적인 제공이란 개발자들이 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 리포지토리(예: GitHub 또는 컨테이너 레지스트리)에 자..
2023.11.20 -
PasswordEncoder 클래스 개선 : e.printStackTrace 는 실제 서비스에서 별로
개요 public class PasswordEncoder { public static String encode(String password) { String result = ""; try { MessageDigest digest = MessageDigest.getInstance("SHA-256"); byte[] encodedHash = digest.digest(password.getBytes(StandardCharsets.UTF_8)); result = Base64.getEncoder().encodeToString(encodedHash); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); // 여기가 문제! } return result; } } P..
2023.11.20 -
원큐에 끝내는 GitHub Actions 를 이용한 CI 구축 : 기본 실습 가이드
안녕하세요! 지난 번에는 CI(Continuous Integration) 프로세스와 도구 선택에 대해 알아보았습니다. 2023.11.14 - [해축갤 프로젝트/CI CD] - CI(Continous Integration) 도구 선택 고민 원큐에 끝내기 CI(Continous Integration) 도구 선택 고민 원큐에 끝내기 2023.11.14 - [해축갤 프로젝트/CI CD] - CI(Continuous Integration) 개념, 개인 CI vs 팀 CI CI(Continuous Integration) 개념, 개인 CI vs 팀 CI 2023.10.31 - [해축갤 프로젝트/테스트 코드] - postman 띡띡딸깍 귀찮아서 테스트 xpmxf4.tistory.com 1. 저장소 설정 2. 빌드 스크..
2023.11.17