Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 자바
- 캐시의 작동 원리
- N+1문제
- JPA
- 자동화워크플로우
- 티스토리챌린지
- 오블완
- Java
- 메소드
- XSS
- 하이브리드접근법
- nplus1
- STOMP
- 프로세스와스레드의차이
- 한화시스템부트캠프
- QA
- Kafka
- 테스트케이스
- 헥사고날아키텍처
- 엘라스틱서치
- jwt토큰
- 스프링시큐리티
- springboot
- 자료구조
- kafka배포
- 부트캠프
- 프로토콜역할
- selenium
- 오버로딩
- n8n
Archives
- Today
- Total
아쿠의 개발 일지
애플리케이션 설계란? (아키텍처 설계 ~ 설계 원칙) 본문
1. 애플리케이션 설계란?
- 애플리케이션 설계는 소프트웨어 개발에서 요구사항을 분석하고 이를 기반으로 기능, 구조, 인터페이스 등을 정의하는 단계입니다.
- 개발자와 디자이너가 협업하여 시스템의 논리적, 물리적 구조를 설계하는 과정으로, 효율적인 구현과 유지보수를 목표로 합니다.
2. 주요 설계 요소
2.1 아키텍처 설계
- 정의: 소프트웨어의 전체 구조와 구성 요소 간 관계를 정의하는 작업.
- 핵심 개념:
- MVC(Model-View-Controller): 데이터를 모델(Model), 사용자 인터페이스(View), 제어 로직(Controller)으로 분리하여 설계.
- Layered Architecture: 프레젠테이션, 애플리케이션, 데이터 등 계층으로 나누어 설계.
2.2 모듈화 설계
- 정의: 시스템을 작은 모듈로 나누어 독립성과 재사용성을 높이는 설계 기법.
- 장점:
- 코드 가독성 향상.
- 유지보수와 테스트 용이.
- 기법:
- High Cohesion (높은 응집도): 모듈 내부의 구성 요소들이 긴밀히 연관됨.
- Low Coupling (낮은 결합도): 모듈 간 의존성을 최소화.
2.3 인터페이스 설계
- 정의: 시스템 간, 모듈 간 데이터 교환 방법을 정의하는 작업.
- 중점 사항:
- API 설계: 명확한 입력/출력 정의.
- UI/UX 설계: 사용자 친화적인 화면 설계.
3. 설계의 원칙
3.1 SOLID 원칙
- 객체 지향 설계에서 지켜야 할 5가지 원칙.
- Single Responsibility Principle (단일 책임 원칙): 클래스는 하나의 책임만 가져야 함.
- Open/Closed Principle (개방-폐쇄 원칙): 확장에는 열려 있고, 수정에는 닫혀 있어야 함.
- Liskov Substitution Principle (리스코프 치환 원칙): 서브클래스는 부모 클래스와 호환되어야 함.
- Interface Segregation Principle (인터페이스 분리 원칙): 하나의 일반적인 인터페이스보다 구체적인 여러 인터페이스를 사용.
- Dependency Inversion Principle (의존 역전 원칙): 고수준 모듈은 저수준 모듈에 의존하지 말아야 함.
3.2 DRY 원칙
- Don’t Repeat Yourself: 중복을 최소화하여 코드의 유지보수성과 가독성을 높임.
3.3 KISS 원칙
- Keep It Simple, Stupid: 설계를 단순화하여 이해와 구현을 쉽게 함.
4. 설계 도구와 표현 방법
4.1 UML (Unified Modeling Language)
- 소프트웨어 설계를 시각적으로 표현하기 위한 표준 언어.
- 주요 다이어그램:
- 클래스 다이어그램: 시스템의 구조 표현.
- 시퀀스 다이어그램: 객체 간 상호작용 표현.
- 유스케이스 다이어그램: 사용자와 시스템 간 상호작용 정의.
4.2 ERD (Entity-Relationship Diagram)
- 데이터베이스 설계를 위해 개체(Entity), 속성(Attribute), 관계(Relationship)를 시각적으로 표현.
5. 애플리케이션 설계 과정
- 요구사항 분석:
- 고객의 요구사항을 수집 및 분석.
- 기능적 요구사항(FR)과 비기능적 요구사항(NFR) 구분.
- 기본 설계:
- 시스템의 전체 구조와 흐름을 설계.
- 예: 아키텍처 설계, 인터페이스 정의.
- 상세 설계:
- 각 모듈과 컴포넌트의 세부 동작 정의.
- 예: 데이터베이스 스키마 설계, 알고리즘 설계.
애플리케이션 설계는 소프트웨어 개발의 핵심 기초로, 실무에서 정말 중요합니다 ! 설계 원칙과 UML 등 실무와 연결 된 개념을 잘 살펴보고, 유의하시길 바랍니다.
728x90
'Programming > CS' 카테고리의 다른 글
CPU 캐시의 작동 원리와 성능 최적화 (0) | 2025.01.17 |
---|---|
로드 밸런서의(Load Balancer) 원리와 구현: 트래픽 분산의 핵심 기술 (0) | 2025.01.16 |
운영체제(Operating System)의 핵심 개념 (0) | 2025.01.14 |
[Network] SSL 인증서 적용 & K8S 클러스터 Ingress-nginx 활용 (1) | 2025.01.08 |
[Network] HTTP/HTTPS 차이점, SSL 인증서 다운로드 받기 (4) | 2025.01.07 |