수달이네 기술 블로그

1. 소프트웨어 설계(에자일, UI, 모델링)(정보처리기사 1일차) 본문

공부/정보처리기사

1. 소프트웨어 설계(에자일, UI, 모델링)(정보처리기사 1일차)

슬픈 수달이 2026. 4. 30. 20:38

에자일

개발과 동시에 피드백을 수렴 > 개발자, 의뢰인이 함께 개발

특징

  • 유동적.(변화에 유연)
  • 빠른 속도.
  • 절차X

애자일 방법론 유형

XP: 의사소통, 즉각적 피드백

  • 5가지 가치: 용기. 단순성, 의사소통, 피드백, 존중
  • 12가지 원리: 짝 프로그래밍(2인 1조), 공동 코드 소유(객체화), 지속적인 통합, 계획 세우기, 작은 릴리즈(모듈이 완성될때마다 릴리즈), 메타포어, 간단한 디자인, 테스트 기반 개발(개발중 테스트 반복), 리팩토링, 40시간 작업, 고객 상주, 코드 표준

스크럼: 정해진 시간, 장소, 짧은 시간 개발

  • 주요 용어: 제품 책임자, 제품 백로그, 스프린트, 스크럼 미팅, 스크럼 마스터, 스프린트 회고, 번 다운 차트, 속도 등

린: JIT(Just In Time), 칸반보드 사용

분석 모델 확인

모델링 기법

모델: 객체/시스템/ 개념의 구조/작업을 시각적으로 표현한 패턴

  • SW및 문제상황의 이해도향상
  • 의사소통 향상
  • 문제 도메인의 엔터티들과 관계/ 종속성을 가짐

모델링: 실세계 현상을 형식(그림)으로 표현

  • 엔지니어들간의 공통된 개념 공유
  • 모델링의 결과가 다른 모델링에 영향을 미침
  • 유지보수, 분석, 설계, 구현 등 전반적으로 활용함
  • 프로세스: 자료 흐름도, 구조적 방법론 > DFD/DD, 객체지향 방법론 > UML

CASE (분석 자동화 도구)

요구사항을 자동 분석함

  • 품질 향상, 변경 관리, 유지보수, 기술적 기반

상위 CASE: 요구사항 분석, 설계, 계획 분석

하위 CASE: 코드레벨, 시스템 명세

기능

  • 그래픽 지원
  • SW생명주기 전 단계 연결
  • 다양한 SW 개발 모형 지원
  • 표준화된 개발환경 구축/문서 자동화
  • 작업자 커뮤니케이션 증대

요구사항 관리 도구

  • 필요성: 요구사항 변경에 따른 비용 편익, 변경 추적, 영향 평가

화면 설계(UI)

UI 요구사항 확인

사용자 ← UI → 시스템

UI 종류

  • CLI(Commend Line Interface): CMD, Dos, Unix등 텍스트로 명령어를 입력하여 조작
  • GUI(Graphic User Interface): 마우스, 전자펜등 이용
  • NUI(Natural User Interface): 테블릿 등 터치반응
  • OUI(Organic User Interface): 유기적 상호작용 기반

UI 특징

  • 오류 최소화
  • 작업기능 구체화
  • 상호 작용
  • 작업시간 감소(편의성)
  • 피드백 제공

UI 설계 지침

  • 사용자 중심
  • 효율성
  • 단순성
  • 결과 예측 가능
  • 가시성(주요기능 메인에)
  • 표준화(일관적)
  • 접근성
  • 명확성
  • 오류 발생 해결(사용자가 쉽게 오류를 인지)

UI 화면 설계

구성요소: 그리드, 버튼/ 컨트롤 요소, Page 요소, 팝업요소, Alert요소 등

제스처: 탭, 더블 탭, 프레스, 플릭, 스와이프, 팬, 드래그, 핀치, 로테이트 등

UI화면 설계 도구

  • 와이어프레임: 화면단위의 레이아웃 설계
  • 스토리보드: 정책, 프로세스, 콘텐츠 구성, 와이어프레임, 기능정의 데이터베이스 연동 등 서비스 구축에 필요한 정보가 담김
  • 프로토타입: 와이어 프레임, 스토리 보드 등에 동적효과 적용
  • 목업: 실제 화면과 유사하게 만든 정적 모형

어플리케이션 설계

공통 모듈 설계

재사용: 기존 SW를 활용하여 새로운 SW를 구축

  • 함수와 객체(클래스 or 메서드 등)
  • 컴포넌트
  • 어플리케이션

공통 모듈

  • 모듈: 독립된 SW/HW(서브 프로그램, 서브 루틴, 단위 프로그램, 작업 단위)
  • 특징: 독립성(각 모델의 다른 기능), 다양한 조합, 재사용,(모듈간) 영향 최소화 등
  • 원칙:정확성(실제 구현시 필요한지), 명확성(일관), 완전성(요구되는 것), 일관성(모듈간 영향 X), 추적성(공통 기능에 대한 관계)
  • 모듈화: 시스템 분해, 추상화 = 모듈화 → 성능 향상, 재사용, 유지관리 용이
    • 모듈크기↓ = 모듈개수↑ = 통합비용↑ = 모듈당 개발비용↓
    • 모듈크기↑ = 모듈개수↓ = 통합비용↓ = 모듈당 개발비용↑
    • 좋은 모듈 > 결합도 ↓ 응집도 ↑
      • 결합도: 모듈간 상호 의존성
      • 응집도: 모듈 내부 요소들의 관계성

🌟모듈화 유형

  • 응집도(아래로 갈수록 응집도가 큼)
  • 우연적 응집도: 관계 없음/예기치 않은 응집 논리적 응집도: 유사한 성격 형태 시간적 응집도: 특정 시간에 함께 처리해야할 활동을 하나로 모음 절차적 응집도: 모듈내 기능을 순차적으로 수행(가격계산 > 영수증 출력등 순서) 통신적 응집도: 동일한 입출력을 사용하여 다른 기능을 수행하는 활동이 모임 순차적 응집도: 모듈 내 한 활동에서 나온 출력값을 다른 활동이 사용 기능적 응집도: 모듈내 기능이 모두 단일한 목적으로 사용
  • 결합도(아래로 갈수록 결합도가 작음)
  • 내용 결합도: 모듈 내부의 기능, 변수를 다른 모듈에서 사용 공통 결합도: 전역변수 참조 외부 결합도 외부 데이터 포멧, 통신 등을 연결 제어 결합도: 다른 모듈이 제어신호를 보냄 스탬프 결합도: 배열, 객체, 구조가 전달 자료 결합도: 파라미터 등으로만 상호작용이 일어남.

팬인 - 상위모듈 / 팬아웃 - 하위모듈 즉,

해당 그림에서 C의 팬인은 1, 팬아웃은 2이다.