개발 일지/디자인패턴 & 아키텍쳐20 클래스와 메서드는 원래 작다 테스트 주도 설계를 학습한 후, 막상 테스트를 진행하려 하니, 기존에 작성한 클래스는 여러 기능이 섞여있고 서로 강한 의존성을 가져, 테스트는 물론 문제가 발생했을 때 파악과 수정이 쉽지 않았습니다 때문에, 클래스 설계에 대한 깊은 고민과 학습이 필요하다는 생각을 하였고, 클래스는 어떻게 설계해야 하는지? 내가 무엇을 놓치고 있었는지? 정리해 보려고 합니다 *클래스와 메서드를 간단하게 클래스로 칭하겠습니다 잘 설계된 클래스는? 클래스 설계에 가장 중요한 원칙들은, 첫째도 작게, 둘째도 작게이다 작게 쪼개어진 클래스는 극도로 단순하여 순식간에 역할을 이해할 수 있게 하고, 체계적인 관리와 추상화 그리고 유연성과 재 사용성을 보장한다 여기서 작은 클래스란 SRP를 준수하는 클래스를 의미한다 작명은 클래스 설.. 2022. 11. 8. SOLID 재정립하기 객체 지향 개발론의 SOLID는 프로그래머가 시간이 지나도 유지 보수와 확장이 쉬운 소프트웨어를 만드는 것을 보장하고자 고안되었습니다 SRP(단일 책임 원칙) 단일 책임 원칙이란? 단일 책임 원칙은 "클래스는 단 한 개의 책임을 가져야 한다." 다른 말로 "클래스를 변경하는 이유는 단 한 개여야 한다." 를 의미하는 간단한 규칙이지만 간과하기 쉬움으로 주의가 필요한 원칙입니다 단일 책임 원칙은 깨끗하고 체계적인 소프트웨어에 시작임으로, 자신이 설계한 클래스가 정말 하나의 책임만 가지고 있는지? 항상 검토해야 합니다 단일 책임 원칙을 지켰는지 검사하는 간단한 방법 클린코드 저서에 따르면, 단일 책임 원칙을 지켰는지 검사하는 간단한 방법은 클래스 명이 만일, 그리고, 하며, 하지만 등을 사용하지 않고 25자.. 2022. 11. 8. Monolithic vs SOA & Microservice Monolithic 모놀리스는 하나의 단위로 개발되는 일체 식 애플리케이션이다. 모든 서비스가 같은 DB를 바라보고 있다. 장점 비교적 간단한 구성으로 간편한 운용이 가능하고 CI/CD 파이프라인 구성이 쉽다. 단점 수정이 발생하면 단점이 극대화 된다. 모놀리스 아키텍처의 서비스들은 서비스간에 서로 의존성이 존재하기 때문에 시스템의 일부만 수정하더라도 전체 애플리케이션의 Build, Test, Packaging 과정을 거쳐야 한다. 그래서 간단한 수정에 오랜 down time이 존재하기 때문에 쉬운 수정이 불가능하다는 단점이 있다. 하나에 문제가 전체에 영향을 끼친다. SOA & Microservice 사실 SOA와 MSA는 한 뿌리에 속한다. 서비스 지향 , 즉, 서비스 단위의 유연성을 확보하자는 점에.. 2022. 5. 24. [아키텍쳐]SOA vs MSA SOA vs MSA 소프트웨어는 코드라는 형체가 있지만 보이지 않기 때문에 더 정확하고 명확한 아키택쳐 설계가 필요하다. 개요 모듈을 구현할때 서로 다른 서비스들이 존재하고 이런 서비스들의 조합으로 모듈을 동작시킨다. SOA와 MSA는 모듈 재사용성 보다 서비스 수준의 재사용성에 초점이 맞춰져있다. 단위의 차이가 존재한다. SOA( Service Oriented Architecture) 서비스 지향 아키텍쳐 비즈니스 단위를 서비스라는 단위로 조합, 서비스 단위들을 조합하여 하나의 에플리케이션을 개발하는 소프트웨어 아키택쳐 느슨한 결합이 특징이며 이에 따라 다음과 같은 장점이 있다. 유연성: 각 단위 요소의 느슨한 결합때문에 유연성을 가진다. 확장성: 각 단위 요소를 쉽게 추가 및 수정 할수있다. 안정성:.. 2021. 12. 31. 이전 1 2 3 4 5 다음