카테고리 없음
실기 - 요구사항 설계 / 아키텍처 설계 / 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의 특징
- 프로그래밍 기초 개념
- 알고리즘 표현 방법 : 문제가 있으니, 이것을 해결하는 방법
- 자연어 : 일상적인 언어로 알고리즘 표현
- 순서도
- 나씨 슈나이더만 차트 : 사각형으로 도식화
- 의사 코드
- UML
- 변수 표기법
- 카멜 표기법
- 파스칼 : 클래스나 메소드명에서 사용
- 스네이크 표기법 : _사용
- 헝가리안 표기법 : intCount
- 언어 유형 분류
- 저급언어
- 고급언어
- 빌드 방식에 따른 분류
- 컴파일 : 번역
- 인터프리터 언어 : 한줄씩 통역
- 바이트 코드 언어 : 자바 가상 머신(JVM)이 컴파일함
- 어셈블리 언어
- 알고리즘 표현 방법 : 문제가 있으니, 이것을 해결하는 방법
[문제]
[UML]
1. 아래는 UML클래스의 관계에 관한 문제이다. 보기를 보고 알맞는 관계를 선택하여 작성하시오.
보기
ㄱ. 의존 ㄴ. 연관 ㄷ. 일반화