TIL

소프트웨어 설계 - 2024 3회

ds3hfj 2025. 5. 10. 19:19

1. 사용자 인터페이스(UI) 중 명령과 출력이 텍스트 형태로만 이루어지는 인터페이스를 무엇이라 하는가

  1. NUI
  2. GUI
  3. CLI
  4. OUI

✅ 보기별 설명

약어명칭설명정오
CLI Command Line Interface 명령어 기반 텍스트 입력/출력 인터페이스 (예: 터미널, CMD) 정답
GUI Graphical User Interface 버튼, 아이콘, 창 등 시각적 요소로 조작 (예: 윈도우, 안드로이드)
NUI Natural User Interface 터치, 음성, 제스처 등 자연스러운 동작 기반
OUI Organic User Interface 유연한 디스플레이 등 형태가 변하는 인터페이스

 

2. XP(eXtream Programming)에 대한 설명으로 옳지 않은 것은?

  1. 릴리즈 기간을 짧게 반복하여 고객의 요구 변화에 빠르게 대응
  2. 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합
  3. 테스트가 지속적으로 진행될 수 있도록 테스트 자동화 도구를 사용
  4. 개발 책임자가 모든 책임을 가지므로 팀원들은 책임 없이 자유로운 개발 가능

✅ XP (Extreme Programming)란?

XP애자일 방법론의 한 종류로,
변화에 유연하게 대응하고 고객의 요구사항을 빠르게 반영하기 위한 경량 소프트웨어 개발 방법론입니다.


🔍 보기별 설명

보기설명정오
① 릴리즈 기간을 짧게 반복하여 고객 요구 변화에 빠르게 대응 ✔ 짧은 주기의 릴리즈는 XP의 핵심
② 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합 지속적 통합 (Continuous Integration) 원칙
③ 테스트가 지속적으로 진행될 수 있도록 테스트 자동화 도구 사용 ✔ XP는 **TDD(테스트 주도 개발)**를 강조
개발 책임자가 모든 책임을 지고 팀원들은 책임 없이 개발 가능 XP는 팀 전체가 책임을 공유하고 협력하는 문화를 중시 정답
 

🧠 XP의 주요 가치

  • 의사소통
  • 단순성(Simple Design)
  • 피드백(TDD, 지속적 테스트)
  • 용기 (변화 수용)
  • 존중 (팀원 간 책임 공유)

✅ 최종 정답: ④ 개발 책임자가 모든 책임을 진다XP의 원칙에 위배됨


✅ 대표적인 애자일 방법론 비교표

방법론설명주요 특징
XP (Extreme Programming) 소규모 팀이 빠르게 변화하는 요구에 대응하기 위해 만든 개발 방식 테스트 주도 개발(TDD), 지속적 통합(CI), 페어 프로그래밍, 짧은 릴리즈 주기
Scrum 가장 널리 쓰이는 애자일 프레임워크. 반복 주기 단위는 스프린트 역할(PO, SM, 팀원), 스프린트, 백로그, 데일리 스크럼
Kanban 시각적 작업 흐름 관리 방식, 작업의 흐름(Flow)에 집중 작업 보드, WIP 제한, 지속적 개선
Lean Software Development 낭비 제거가치 중심 개발에 초점 최소 낭비, 빠른 전달, 품질 내재화
FDD (Feature-Driven Development) 기능 중심으로 소프트웨어를 개발하는 방식 기능 목록 기반 설계 및 반복 개발
DSDM (Dynamic Systems Development Method) 고정된 시간과 자원 내에서 기능 우선순위에 따라 개발 MoSCoW 기법(Must, Should, Could, Won’t), 프로토타이핑
Crystal 팀 규모와 중요도에 따라 경량화된 프로세스 적용 유연한 구조, 팀 맞춤형 적용 가능
 

🧠 요약 키워드로 정리

방법론키워드
XP 테스트 주도, 페어프로그래밍
Scrum 스프린트, PO/SM 역할
Kanban 흐름, WIP 제한
Lean 낭비 제거, 가치 전달
FDD 기능 단위 반복
DSDM 시간고정, 기능유동
Crystal 맞춤형 프로세스

 

3. 자료 흐름도(Data Flow Diagram)의 구성요소

 

✅ 자료 흐름도(DFD)의 4대 구성요소

구성요소기호설명예시
프로세스(Process) ● 또는 ○, 혹은 사각형 안 번호/이름 데이터를 처리하는 작업 또는 기능 "주문 처리", "회원 인증"
데이터 흐름(Data Flow) → (화살표) 데이터가 이동하는 경로를 나타냄 "주문 정보", "승인 결과"
데이터 저장소(Data Store) ▭▭ (양쪽 열린 사각형) 또는   기호
외부 개체(External Entity) 사각형 □ 시스템 외부와 데이터를 주고받는 사람 또는 시스템 고객, 관리자, 결제 시스템 등
 
4. 분산 시스템에서 미들웨어(Middleware)와 관련한 설명으로 틀린 것은?
  1. 분산 시스템에서 다양한 부분을 관리하고 통신하며 데이터를 교환하게 해주는 소프트웨어로 볼 수 있다
  2. 위치 투명성(Location Transparency)을 제공한다
  3. 분산 시스템의 여러 컴포넌트가 요구하는 재사용 가능한 서비스의 구현을 제공
  4. 애플리케이션과 사용자 사이에서만 분산 서비스를 제공한다