카테고리 없음

실기 - 요구사항 설계 / 아키텍처 설계 / UML / UI 설계 / 프로그래밍 기초 개념

공부하고 기록하고 다시보는 블로그 2025. 2. 14. 22:31
  • 소프트웨어 설계 : 설계시 고려해야되는 부분
    • 분석된 요구사항대로 그림 그리는 단계(요구사항 분석서 바탕으로 설계 작성)
    • 전문용어로 모델링 : 그림 그리는 것
    • 소프트웨어 설계의 종류
      • 상위 설계 : 설계, 분석 단계에서 진행
        • 아키텍처 설계
        • 데이터 설계
        • 인터페이스 설계 : 데이터 상호작용
        • 사용자 인터페이스 설계 : 사용자 화면 설계
      • 하위 설계 : 구현단에서 진행
        • 모듈 설계
        • 자료구조 설계
        • 알고리즘 설계
    • 소프트웨어 설계의 원칙 : 지켜야할 것들..
      • 분할과 정복 : 작은 서브 시스템으로 나누기
        • 쇼핑몰 시스템이라면, 회원, 물건 등.. 나누어 설계
      • 추상화 : 공통된 속성과 메소드를 묶은 것
        • 과정 추상화
        • 데이터 추상화
        • 제어 추상화
      • 단계적 분해
      • 모듈화 : 재사용
      • 정보은닉 : 내부 정보를 외부에 노출하지 않도록 하는 것
        • 캡슐화 : 인터페이스를 통해서 접근가능함
      • 응집도와 결합도
    • 설계 모델링 : 분석해서 사람에 머리속에서 나온 것들을 그림그린다.
      • 설계 모델링의 종류
        • 정적(구조) 모델링 : 구조는 데이터의 덩어리로 : 회원(ID, PW), 상품(ID, NAME)
        • 행위 모델링
    • 협약에 의한 설계
      • 선행 조건, 결과 조건, 불변 조건
  • 소프트웨어 아키텍처 
    • 전반적인 구조이다.(어떻게 작동하는지?)
    • 소프트웨어 아키텍처 4+1 뷰
      • 논리뷰(분석가, 설계사), 프로세스 뷰(통합하는사람), 구현 뷰(개발자), 배치 뷰(시스템 엔지니어) 
      • +1은 유스케이스로 고객의 관점에서 본 뷰이다.
  • 소프트웨어 아키텍처 패턴의 종류
    • 계층화 패턴 : 여러 계층으로 구분
    • 클라이언트-서버 패턴 : 중앙 집중식, 독립적이다.
    • 마스터-슬레이브 패턴 : 슬레이브에 데이터를 모아 마스터로 전달 그리고 다시 슬레이브로 반환, 분산
    • 파이퍼-필터 패턴 : 컨베이어 밸트 시스템, 처리(필터)하고 이동(파이프)하는 식으로 작동함
    • 브로커 패턴 : 분산 시스템, 브로커(수신 후 가장 적합한 요청에 맞는게 전달해줌)
    • 피어 투 피어 패턴 : 모든 컴포넌트(피어)가 서버와 클라이언트 역할을함
    • 이벤트-버스 패턴 : 유투브(버스)에 구독하고 알람 내가함(리스너) 그럼 추후 동영상 업데이트 되면, 구독한 사람에게 리스너로 이벤트가 발생한다.(이벤트는 새로운 영상이 업데이트 되었다고 알려줌)
    • 모델-뷰-컨트롤러 패턴(MVC) 패턴
    • 블랙보드 패턴 : 안보이는 해결책이 없는 해결에 사용됨
    • 인터프리터 패턴 : 고급언어(원시코드)를 번역 및 실행
      • 컴파일러 : 번역
      • 인터프리터 : 한줄로 통역
      • 어셈블리
  • UML : 공통된 언어를 가지고 그림을 그리는 것, 객체 지향 언어에서 그림 그리는 것으로 사용
    • UML의 특징 
      • 가시화언어 : 보여지는 것이니, 명세화 언어: 그렸으니깐, 개발할꺼니깐, 구축언어이다. 산출물로 활용된다. 문서화 언어
    • UML구성요소
      • 사물
      • 관계
        • 일반화 관계 : 상속 ->
        • 연관 관계 : 밀접한 연관 ->
        • 의존 관계 : 필요할 때만 사용(일시적) / 오퍼레이션의 매개변수로 활용함 --->
        • 실체화 관계 : 추상 메서드를 오버라이딩 / 역할과 구현 / 인터페이스
        • 집약 관계 : has a관계 / 표현 ㅁ
          • 불고기와 미원이라는 객체를 만들고 불고기가 없어진다고 해서 미원이 없어지는 것은 아니다.
        • 합성 관례 : 함께 없어지는 것 / 표현 ㅁ에 색칠한 것
      • 다이어그램 : 설명위주로보기
        • 구조(정적)
          • 클래스 다이어그램
          • 컴포넌트 다이어그램
          • 배치 다이어그램
        • 행위
          • 유스케이스 다이어그램 : 기능과 사용자 간에 상호작용
            • 액터 : 사람 또는 시스템
            • 유스케이스 : 기능
              • 관계
                • 연관 관계
                • 포함 관계 : 사전 작업, <<include>>
                • 확장 관계 : 파일첨부, <<extends>>
                  • * 길러멧 기호 <<>>
                • 일반화 관계 : 상속
            • 시스템
          • 순차(시퀀스) 다이어그램 : 객체 간의 상호작용 시간 순서
          • 커뮤니케이션 다이어그램 : 객체 간의 관계와 통신
          • 상태 다이어그램 : 상태 변화를 표현
          • 활동 : 프로세스나 워크플로우 표현
    • UI 설계
      • UX : 사용자 경험을 통한 개선된 인터페이스 제작
      • UI 유형
        • CLI(CUI) : 도스, 리눅스와 같이 커맨드 라인
        • GUI
        • NUI : 인간의 자연스러운 움직임
        • OUI : 현실세계의 모둔 입력과 출력
        • VUI : 음성인식 - 시리
      • UI 요구사항 구분
        • 비기능
        • 기능
      • UI 설계 절차
        • UI 개발목표 및 범위 수립 -> UI 전략 수립 -> 사용자 요구사항 분석 -> 상세 설계 -> 구현 -> 태스트
      • UI 설계 원칙
        • 직관성 : 이 기능을 무엇을 하는지?  | (예) 알아야함 예를 들어 "웹툰" 버튼을 보았을때.. 웹툰을 볼 수 있는 곳으로 가는구나!!
        • 유효성 : 목적을 달성 하는것! | (예) "웹툰" 버튼을 누르면, 웹툰 화면으로 가는것
        • 학습성 : 쉽게 배우는 것
        • 유연성 : 사용자의 요구사항을 받아 개선가능한것
      • UI 설계 도구
        • 와이어프레임 : 디자이너와 기획자 협업시 사용
        • 스토리보드(SB)
        • 유스케이스
        • 프로트타입
        • 목업 
  • 프로그래밍 기초 개념
    • 알고리즘 표현 방법 : 문제가 있으니, 이것을 해결하는 방법
      • 자연어 : 일상적인 언어로 알고리즘 표현
      • 순서도
      • 나씨 슈나이더만 차트 : 사각형으로 도식화
      • 의사 코드
      • UML
    • 변수 표기법
      • 카멜 표기법
      • 파스칼 : 클래스나 메소드명에서 사용
      • 스네이크 표기법 : _사용
      • 헝가리안 표기법 : intCount
    • 언어 유형 분류
      • 저급언어
      • 고급언어
    • 빌드 방식에 따른 분류
      • 컴파일 : 번역
      • 인터프리터 언어 : 한줄씩 통역
      • 바이트 코드 언어 : 자바 가상 머신(JVM)이 컴파일함
      • 어셈블리 언어 

 

 

[문제]

 

[UML]

1. 아래는 UML클래스의 관계에 관한 문제이다. 보기를 보고 알맞는 관계를 선택하여 작성하시오.

 

 

보기

ㄱ. 의존         ㄴ. 연관         ㄷ. 일반화