본문 바로가기

아키텍처

(4)
정적 분석(Static Analysis) & 동적 분석(Dynamic Analysis)에 대해 알아보기 정적 분석(Static Analysis)과 동적 분석(Dynamic Analysis)은 소프트웨어를 분석하는 두 가지 주요 방법입니다. 이들 방법은 소프트웨어의 코드 품질, 보안성, 성능 등을 평가하는 데 사용됩니다.정적 분석(Static Analysis)정적 분석은 프로그램을 실행하지 않고 코드 자체를 분석하는 방법입니다. 주로 소스 코드 또는 바이너리 코드를 대상으로 합니다. 주요 특징구분내용 코드 검사 코드의 문법, 스타일, 잠재적 버그, 보안 취약점 등을 찾기 위해 사용됩니다. 이는 코드의 동작을 이해하지 않고도 가능한 일입니다. 도구 사용 정적 분석을 수행하는 다양한 도구들이 있습니다. 예를 들어, SonarQube, Coverity, PVS-Studio 등이 있습니다. 자동화 정적 분석 도구는..
[TDD] 테스트 주도 개발이란 무엇인가? 테스트 주도 개발(Test-Driven Development, TDD)은 소프트웨어 개발 방법론 중 하나로, 기능 코드를 작성하기 전에 테스트 코드를 먼저 작성하는 방식입니다. TDD의 주된 목표는 코드의 품질을 높이고, 유지보수성을 개선하며, 버그를 줄이는 것입니다.테스트 작성 (Red 단계): 개발자는 먼저 요구사항을 기반으로 소프트웨어의 특정 기능을 테스트할 수 있는 단위 테스트(Unit Test)를 작성합니다. 이 단계에서는 아직 기능 코드가 작성되지 않았기 때문에 테스트는 실패(Red)합니다.코드 작성 (Green 단계): 테스트가 실패한 것을 확인한 후, 테스트를 통과하기 위해 최소한의 기능 코드를 작성합니다. 목표는 테스트를 성공적으로 통과시키는 것에 집중하는 것입니다. 이 단계가 끝나면 테..
[도메인 주도 설계] 도메인 주도 설계(DDD, Domain-Driven Design)란 무엇인가? 도메인 주도 설계(DDD, Domain-Driven Design)는 소프트웨어 개발 방법론의 하나로, 복잡한 소프트웨어 시스템을 개발할 때 도메인 지식을 중심으로 설계하는 접근법입니다. 이 방법론은 에릭 에반스(Eric Evans)가 그의 책 "Domain-Driven Design: Tackling Complexity in the Heart of Software"에서 소개하였으며, 소프트웨어 개발 팀과 도메인 전문가들이 긴밀하게 협력하여 도메인 모델을 구축하고 이를 코드에 반영하는 것을 목표로 합니다.도메인 주도 설계의 주요 개념도메인(Domain): 소프트웨어가 해결하고자 하는 문제 영역입니다. 예를 들어, 은행 시스템의 경우 은행 업무 자체가 도메인이 됩니다.도메인 모델(Domain Model): 도..
[소프트웨어 공학] 영향도 분석과 연관도 분석의 차이 알아보기! 영향도 분석(Impact Analysis)과 연관도 분석(Relationship Analysis)은 소프트웨어 공학에서 중요한 역할을 하는 두 가지 분석 방법입니다. 이 둘은 서로 다른 목적과 방법을 가지고 있습니다.영향도 분석 (Impact Analysis)구분내용목적영향도 분석은 소프트웨어 시스템에서 특정 변경 사항이 다른 부분에 미치는 영향을 평가하는 것을 목적으로 합니다. 주로 소프트웨어 변경 관리와 관련이 있으며, 변경이 시스템의 다른 구성 요소에 어떤 영향을 미칠지 예측하고 이해하는 데 사용됩니다.방법변경 식별: 변경될 요소를 식별합니다. 이는 코드, 요구 사항, 설계 문서 등일 수 있습니다.영향 범위 파악: 변경 사항이 다른 구성 요소에 미치는 영향을 분석합니다. 직접적으로 영향을 받는 모듈..