본문 바로가기

전체 글161

MSA MSA 개념 Micro Service Architecture 애플리케이션 단위를 기능별로 컴포넌트를 나누어 조합하여 개발하는 방식 배경 기존 Monolithic 방식은 모든 기능을 하나의 애플리케이션에서 비즈니스 로직을 구현한다. 실행 파일이 하나라서 배포가 쉽고 하나의 코드 베이스를 사용하여 개발이 용이하며 하나의 API로 MSA의 여러 API가 작업하는 효과를 낼 수 있으며 테스트를 간소화할 수 있고 디버깅이 쉽다. 작은 사이즈의 프로젝트에서는 기존 방식이 유리하지만 큰 프로젝트에서 문제점들이 존재 기존 방식의 문제점 빌드/테스트 시간 증가 하나의 기능을 수정할 때도 전체 시스템을 빌드해야 해서 유지 보수가 어려워진다. 작은 문제가 시스템 전체에 영향을 줄 수 있다. 하나의 서비스가 트래픽 문제로 서.. 2023. 4. 15.
DevOps DevOps 개념 DevOps Development + Operations 합성어 소프트웨어 개발자가 인프라 관리를 함께하는 방식 목적 서비스를 보다 빠르게 개발하고 배포하는 목적 개발과 운영이 의존적으로 대응하여 빠르고 유기적으로 개발을 하고 운영하기 위해 사용하는 방식 관련 개념 애자일 기법 일정 주기동안 프로토타입을 구성하고 요구 사항을 파악하여 즉시 수정 사항을 적용하여 큰 프로젝트를 수행하는 기법 지속적 통합(CI) 통합 작업을 지속적으로 수행하여 서비스 품질을 높이는 방식 DevOps와 연관성 DevOps는 개발과 운영을 함께 담당하여 애자일 기법을 통하여 수정 사항을 적용하거나 지속적 통합을 통해 서비스 개선을 위해 통합 작업을 할 때 보다 유기적이고 효율적으로 수정 사항을 적용하고 운영할 .. 2023. 4. 14.
Load Balancing Load Balancing 개념 Scale out & Scale up 웹 사이트 접근 인원이 증가하면서 모든 트래픽을 1대의 서버로 감당하기가 어려워짐 Scale up을 통해 서버의 성능을 향상하거나 Scale out을 통해 여러 대의 서버로 분산시켜 작업하는 방법으로 대용량 트래픽 해소 scale up을 통한 하드웨어 향상 비용이 크고 한계가 있으며 서버에 문제가 생기면 서비스가 중단될 수 있다. scale out을 통한 여러 대의 서버로 트래픽을 분산시키면 무중단 서비스를 제공 가능 Load Balancing 일종의 scale out으로 여러 대의 서버에 트래픽을 분산시켜 주는 기술 load balancer를 서버와 클라이언트 사이에 두고 부하를 분산시켜준다. 서버를 추가로 증설하면서 load bal.. 2023. 4. 13.
Anomaly Anomaly 개념 Anomaly 정규화를 해야 하는 이유는 anomaly라는 이상 현상을 방지하기 위해서 이다. 종류 삽입 이상(Insertion Anomaly) 기본키가 {MemberId, ClassId}라고 할 경우 클래스를 수강하지 않은 멤버는 ClassId를 null로 해야 하는데 기본키는 null이 될 수 없어 table에 추가가 불가능하다. 삽입하기 위해서는 수강하지 않는다는 값을 만들어 넣어야한다. 갱신 이상(Update Anomaly) 어떤 멤버가 듣는 수업을 체육에서 미술로 변경한다고 하면, 모든 ClassId를 변경해주어야 하지만 일부에서는 변경이 일어나지 않아 데이터가 불일치하는 경우 발생 삭제 이상(Deletion Anomaly) 어떤 멤버가 수업을 철회하였을 경우 해당 튜플을 삭.. 2023. 4. 12.