전체 글190 파이브 라인즈 오브 코드 정리 클린코드는 어떻게 보면 기본이기도 하지만어떤 상황과 환경에서는 당장에 지켜야 할 수 없는 원칙이기도 합니다. 이는 대부분의 회사에서는 당장의 좋은 코드보다는 당장의 제품 출시 - 특히 경쟁사가 어떤 기능을 배포한다면 더더욱가 훨씬 중요한 일이고 일정이 가장 중요한 일 중 하나이기 때문입니다. 그럼에도 코드의 퀄리티가 낮아지고 제품, 소프트웨어의 퀄리티가 낮아지는 것은 결국 복잡도가 증가함에 따라 유지보수나 개발의 속도를 저해시키는 주요 요소 중 하나입니다. 이런 클린 코드의 법칙을 기술한 책 중 파이브 라인즈 오브 코드라는 책이 있는데 관련 영상이 있어 조금 정리 해보았습니다. 파이브라인스 오브 코드 의 주요 목표단일 책임 (SRP)추상화(인터페이스 + 구현 구조)캡슐화이를 달성하기 위한 규칙 소개 .. 2024. 1. 11. MySQL CDC 및 디비지움 정리 MySQL CDC with 디비지움 마이크로서비스에서 B 서비스에서 A 서비스가 소유한 데이터베이스의 데이터가 필요하다. - API 호출로 A서비스로의 데이터 조회가 가능하지만, B서비스는 전체적으로 이러한 조회가 굉장히 빈번하기 때문에 대량의 API 호출을 유발한다.B 서비스에서는 A 서비스가 소유한 데이터베이스에서 데이터를 가져와야 하지만 A서비스의 데이터베이스가 소유한 데이터를 제외하고 가져와야 한다. - 하나의 물리적 데이터베이스라면 LEFT 조인을 하면 되는 상황이지만, 불가능하다. - 이러한 연산을 API에서 처리하기에는 너무 느리다.A 서비스가 어느정도의 호출을 감당할 수 있는지 장담할 수 없다. 결론을 애기하자면, 마이크로 서비스 아키텍처에서 각자의 도메인이 소유한 데이터외 타 도메인의.. 2024. 1. 11. 외부 api 의존성 처리 (비동기) 정리 프로모션 참여하고 포인트 받기 기능 포인트를 받기 위해 외부 api 연동 수행 연동 오류로 인한 대응 최소화하기 오류 최소화 범위 포인트 API 직접 호출 제거 API 호출 대신 DB에 적립 요청 저장 -요청 데이터가 사라지지 않음 (트랜젝션 적용) - 처리기/포인트 API에 일시적으로 문제가 있어도 언젠가 지급함 포인트 API 연동 제거 - 실패 처리 복잡도 감소 적립 처리기 요청 테이블 Api 호출에 필요한 데이터를 포함 처리 상태 칼럼 포함 프로모션 서비스에 점진적 적용 프로모션 서비스, 캐시 서비스(인터페이스로 변경) DbCashService(개발에 적용) , ApiCashService(운영에 적용) 향후에 DbCashService를 개발과 운영에 적용하고 ApiCashService를 삭제 예정 .. 2024. 1. 11. 대용량 트래픽 접근 방법 정리 대용량 트래픽에 대한 대응 방법 간단간단하게는 Apache benchmark, jmeter로 혼자 서비스를 만들면서 트래픽 부어보기 제대로 하라면 nGrinder 세팅해서 해보기 어떤 정도가 대용량 트래픽인가? 대용량 트래픽의 무섭고 재밌는 점은 계속 커진다는 것 5만TPS -> 내일은 7만 TPS-> 10TPS ‘적절함’을 어떻게 키울 수 있냐 큰큰회사 다니면서 대용량 트래픽 경험했던 사람이 작고작은 스타트업 이벤트를 해야하는데 캐시 스토리지나 분산처리, 돈으로 때우면 되지 않냐 돈으로 때워서 해결할 수 있다면 행복한 문제겠지만… 이런 애기만 하고 있다면 아니 우리 그런거 없고 시간도 없고 관리할 사람도 없고 일단 이거 어떻게 매꿔야 한다. 했을때 도움이 안되는 경우도 있음 TPS가 5천이 나오는데 이.. 2024. 1. 10. 이전 1 ··· 9 10 11 12 13 14 15 ··· 48 다음