본문 바로가기

Dev Log/Computer Science3

MSA, Microservice Architecture 장단점 Microservice Architecture pattern 하나의 프로젝트가 너무 커지면 (monolith) 내부 복잡도가 증가하여 유지보수 생산성이 떨어지고 상호 종속성이 높기 때문에 테스팅을 해야하는 양이 증가하거나 버그가 증가하고 따라서 continuous deployment가 거의 불가능에 가깝다 한 곳의 버그나 메모리 누수가 서비스 전체에 영향을 미칠 가능성이 있다. 애자일 개발 방법론에 적용되지 않는다. Microservice Architecture로 하게 되면 복잡도의 문제를 해결할 수 있다. 각 팀이 좀 더 독립적으로 해당 기능에 집중해서 개발할 수 있다. 모듈 단위로 배포가 가능하다. A/B testing이 가능하고 UI 변화에 빠르게 대응할 수 있다. CI/CD가 가능해진다. 여러 개.. 2019. 4. 30.
객체 지향 설계 원칙 SOLID 로버트 마틴이 정리한 객체 지향 설계 원칙 SRP(The Single Responsibility Principle): 단일 책임 원칙 모든 클래스는 하나의 책임만을 가지며 클래스는 그 책임을 완전히 캡슐화 해야 한다. 어떤 클래스나 모듈은 변경하려는 단 하나의 이유만을 가져야 한다. 도메인 객체와 웹 객체를 함께 쓰거나, 영속성 객체와 함께 쓰게되면 애플리케이션이 단순할 때는 상관이 없지만, 다른 객체의 변화에 따라 도메인 객체가 함께 변화될 수 있다. OCP(The Open Closed Principle): 개방 폐쇄 원칙 객체는 확장에는 열려 있어야 하고 변경에는 닫혀 있어야 한다. '확장'은 기능 확장을 말하는 것. 의존성 주입을 통해서 기능을 확장. '변경'은 기존 로직의 변경을 말함. 불변객체를.. 2019. 4. 30.
화이트박스 vs 블랙박스 White Box는 사실 투명 박스에 가까운 것 같다. Black Box는 말그대로 안이 보이지 않는 박스. 두 단어는 테스트 방법론에서 자주 거론되는데, 컴포넌트를 지칭할 때도 쓰이는 것 같다. Black Box Test는 1. 내부 구조가 어떻게 되어있는지 확인할 수 없다. 2. 결과물 상태를 보고 요구사항이 충족하는지 확인한다. 3. 테스트 비용이 많이 든다. 왜냐면 어떠한 결과가 나올지 예측할 수 없기 때문에 test case를 많이 시도해보아야 하기 때문이다. White Box Test는 1. 소스코드 형태로 소프트웨어를 테스트한다. 2. 테스트 코드는 White Box Test에 해당하는 것 같다. Unit Testing, Integration Testing, System Testing이 해당.. 2019. 4. 17.