반응형 전체 글346 아키텍처 설계와 클래스 설계 아키텍처 설계 아키텍처란 건물의 뼈대뿐 아니라 특성을 결정짓는 기본 구조를 일컫는 말 아키텍처는 모든 기술 분야에 적용할 수 있고 종류도 다양하다. 아키텍처의 필요성 복합성의 문제 대형 프로젝트는 전체 시스템의 구조를 생각하며 균형과 조화를 이루도록 설계 대형 프로젝트가 복합성의 문제를 해결하는 법은 아래와 같다. 개발할 소프트웨어의 전체적 구조를 가장 먼저 생각한다. 소프트웨어의 구조를 이루는 각 구성 요소를 찾는다. 각 구성 요소 간의 명확한 관계를 설정한다. 일정한 규칙을 따른다. 아키텍처의 필요성 복잡하고 규모가 큰 소프트웨어를 개발하려면 전체적인 구조가 유기적으로 잘 구성되어야 한다. 잘 정의된 구조의 품질 좋은 소프트웨어를 만드려면 소프트웨어 아키텍처가 필요하다. 아키텍처 설계로 소프트웨어가 .. 소프트웨어공학 2022. 4. 15. 설계 요구분석과 설계의 차이 구분 요구분석 설계 산출물 요구분석명세서 설계서 관점 무엇 what 어떻게 how 특성 개념적, 추상적 사용환경을 반용해 구체적 비고 미고려 대상 : OS, DBMS, 프레임워크 고려 대상 : 비기능 요구사항, 제약사항 플랫폼(OS, 미들웨어, 프레임워크) 좋은 설계가 되기 위한 조건 설계서는 요구분석 명세서의 내용을 모두 포함 유지보수가 용이하도록 추적이 가능해야 한다. 변화에 쉽게 적응할 수 있어야 한다. 시스템 변경으로 인한 영향이 최소화되도록 국지적이어야 한다. 설계서는 읽기 쉽고 이해하기 쉽게 작성되어야 한다. 설계의 원리 분할과 정복 분할 : 큰 소프트웨어 하나를 개발할 때 여러 개의 서브시스템으로 세분화해 나누는 작업 정복 : 어느 정도 수준까지 분할했다면 말단에 있는.. 소프트웨어공학 2022. 4. 10. 요구분석 요구사항 소프트웨어 개발에서의 정의는 '사용자와 개발자가 합의한 범위 내에서 사용자가 필요로 하는 기능' 시스템이 제공하는 기능 요구와 품질과 같은 비기능 요구로 나뉜다. 요구사항이 정확히 무엇인지 파악하는 작업은 요구분석 단계에서 이루어진다. 요구분석 정의는 시스템이나 소프트웨어의 요구사항을 정의하기 위해 사용자 요구사항을 조사하고 확인하는 과정 목적은 사용자에게서 필요한 요구사항을 추출해 목표하는 시스템의 모델을 만들고 요구분석명세서를 작성하기 위함이다. 요구분석명세서는 요구 분석 단게에서 생성되는 최종 산출물로 시스템의 기능이 무엇인지에만 초첨을 두고 정리한다. 요구분석 단계 후 설계 단계에서는 설계서가 만들어지는데 이 문서는 어떻게 구현할지 기술한다. 요구분석의 어려움 사용자와 분석가의 의사소통 .. 소프트웨어공학 2022. 4. 6. 계획 계획 계획을 제대로 세우지 않고 수행하는 소프트웨어 개발은 일정 지연, 비용 초과, 품질 저하라는 결과를 낳게 된다. 소프트웨어 개발의 성패는 비용, 기간, 인력과 같은 자원을 토대로 초기에 얼마나 계획을 잘 세우느냐에 달려있다. 문제정의 문제를 정의하려면 개발하고자 하는 영역의 배경 지식이 필요하다. 유사한 프로젝트를 개발한 경험이 있는 분석가가 참여하는 것이 도움이 된다. 문제를 파악하기 위해 현재 운영중인 시스템을 사용해보고, 실무 면담자와 면담해 자료를 수집한 후 면밀히 분석해보는 것이 필요하다. 타당성 분석 경제적 타당성 경영자 입장에서 의사결정을 하는 데 매우 중요한 요소다. 시장 분석을 통해 시장성을 확인 경제적 타당성 분석으로 투자 효율성과 시장성을 검증한 후 개발 여부를 판단한다. 기술적.. 소프트웨어공학 2022. 4. 6. 리니어 레이아웃(LinearLayout)과 상대 레이아웃(RelativeLayout) 이번시간에는 리니어 레이아웃과 상대 레이아웃에 대해 알아보겠습니다. 먼저 레이아웃의 전체적인 개요와 제약 레이아웃에 대해 알아보고 싶다면 아래 링크로 접속하시면 되겠습니다! https://devdebin.tistory.com/138 제약 레이아웃(Constraint Layout) 레이아웃은 화면을 구성하는 뷰들을 배치하는 컨테이너로서 다양한 유형의 레이아웃을 제공한다. 아래와 같은 레이아웃들을 확인할 수 있다. 레이아웃 이름 설명 제약 레이아웃 (ConstraintLayout) devdebin.tistory.com 1. 리니어 레이아웃 리니어 레이아웃은 뷰를 가로(Horizontal) 또는 세로(Vertical) 방향으로 일렬로 배치하는 레이아웃이다. 이에 대한 속성에 대해 알아보자. 채우기 : fill.. 개발/Android 2022. 4. 5. 제약 레이아웃(Constraint Layout) 레이아웃은 화면을 구성하는 뷰들을 배치하는 컨테이너로서 다양한 유형의 레이아웃을 제공한다. 아래와 같은 레이아웃들을 확인할 수 있다. 레이아웃 이름 설명 제약 레이아웃 (ConstraintLayout) 제약 조건 (Constraint) 기반 모델 제약 조건을 사용해 화면을 구성하는 방법 안드로이드 스튜디오에서 자동으로 설정하는 기본 레이아웃 리니어 레이아웃 (LinearLayout) 일정한 방향으로 위젯들을 배치 - 박스 모델 여러 개의 위젯을 순차적으로 배열 표준 자바의 BoxLayout과 유사 - UI를 일렬로 배치하는 레이아웃 상대 레이아웃 (RelativeLayout) 규칙 기반 모델 부모 컨테이너(레이아웃)나 다른 뷰와의 상대적 위치를 이용해 화면을 구성하는 방법 프레임 레이아웃 (FrameLa.. 개발/Android 2022. 4. 5. 뷰(View)와 뷰그룹(ViewGroup, Layout) 이번학기 모바일 프로그래밍(안드로이드) 강의를 들으면서 배운 부분을 남기고자 합니다. View View는 사용자와 상호작용하는 요소로서 안드로이드에서 화면을 구성하는 Button, TextView 등 어떤 기능을 수행하는 Component다. 모든 View는 class로 제공되며, View 클래스를 상속한다. Button, TextView, CheckBox, RadioButton 등과 같이 사용자와 상호작용을 하는 View 객체를 통칭해서 위젯이라고 부른다. View 객체는 다양한 속성을 가질 수 있으며, 속성 값에 따라 UI가 변경된다. ViewGroup(Layout) ViewGroup은 하위에 여러 ViewGroup과 View를 포함하고 있으며 ViewGroup, View 객체들의 배치를 위한 컨테이.. 개발/Android 2022. 4. 4. UML 이번 시간은 UML에 대해서 정리해보겠습니다. UML이란? Unified Modeling Language의 약어다. 소프트웨어의 전체를 판단할 수 있도록 12개의 다이어그램을 제시한다. UML의 역할은 시스템이 상호작용하는 측면, 시스템 전체 구조 측면, 컴포넌트 간의 관계 등을 시각적으로 볼 수 있게 나타낸 도면이다. UML의 12개 다이어그램은 아래와 같다. 12개 다이어그램에서도 유스케이스, 클래스, 순차. 통신, 활동, 상태, 컴포넌트, 배치 다이어그램에 대해 살펴보겠다. 유스케이스 다이어그램 객체지향 방법에서는 UML의 유스케이스 다이어그램으로 사용자 요구 사항을 표현한다. 유스케이스 다이어그램은 시스템이 제공하는 기능을 나타내는 유스케이스와 이 기능을 사용하는 사용자인 액터, 그리고 이 둘의 .. 소프트웨어공학 2022. 4. 4. 백준 1946 자바 신입 사원 아래는 문제 링크입니다. https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 문제 설명은 아래와 같다. 문제 해결 과정 처음에 3중 for문으로 해결하려고 했다가 시간 초과... 이후 한동안 바로 해결책이 떠오르지 않아 방치해두었다. 그러다가 Comparable를 이용한 객체의 정렬을 배웠다. 아래 포스팅에서 학습한 내용을 확인할 수 있다. https://devdebin.tistory.com/79?category=1004568.. 코딩테스트/백준 2022. 4. 4. 4주차 챌린지 과제 : AWS EC2와 RDS 연동하기 이번 4주차 챌린지 과제는 RDS를 생성하고, 우리가 생성한 EC2 인스턴스와 RDS를 연동하는 것입니다. 본격적으로 시작하겠습니다!!!! 그럼 먼저 RDS란 무엇인가?? 먼저 RDS는 아래 AWS 공식 페이지를 통해 알아볼 수 있었다. https://aws.amazon.com/ko/rds/ 데이터베이스 관리 시스템 | 관계형 RDS | Amazon Web Services aws.amazon.com 공식 페이지 정의는 아래와 같다. RDS는 "Amazon Relational Database Service(RDS)는 클라우드에서 간편하게 데이터베이스를 설치, 운영 및 확장할 수 있는 관리형 서비스 모음"이다. 쉽게 말해 클라우드에서 데이터베이스를 운영하는 것이라고 생각할 수 있겠다. 그럼 RDS는 어떤 상.. 대외활동/UMC SERVER 2022. 4. 2. 소프트웨어 공학과 개발 프로세스 이번 학기에 배우는 소프트웨어 공학 과목(줄여서 소웨공)에 대한 공부 내용을 늦게나마 정리해보려고 합니다 중간고사 전까지 전부 정리하기... 나 자신 파이팅!!!! 소프트웨어의 정의 프로그램 : 프로그래밍한 원시 코드를 의미 소프트웨어 : 프로그램(코드)을 비롯해 개발 과정에서 생성되는 모든 산출물(자료 구조, DB 구조, 테스트 결과 등)과 각 단계에서 만들어지는 문서와 사용자 매뉴얼 등 소프트웨어의 특징 제조가 아닌 개발 소모가 아닌 품질 저하 대형 빌딩 짓기와 대규모 소프트웨어 개발은 비슷하다. 개발 과정이 복잡하다 - > 개발의 복잡함을 줄이기 위한 방법과 기술 필요 참여 인력이 많다 -> 개발에 참여하는 팀을 구성하고 관리하는 효율적인 방법이 필요 개발 기간이 길다 -> 프로젝트를 효율적으로 관.. 소프트웨어공학 2022. 4. 1. SSL VS SSH 이번 UMC Sever 파트 AWS EC2 인스턴스 실습을 하면서 유독 자주 보인 이 두 단어에 대해 정리해보겠습니다. 만약 안보셨다면 이 게시글 부터 쭈욱 정주행하시는 것을 추천..!!ㅎㅎ https://devdebin.tistory.com/129?category=1010886 2주차 실습 : AWS EC2 인스턴스 생성 솔직히 고해하자면 저번주에 여자친구와 1주년, 고등학교 친구들과 MT로 인해 너무나도 바쁜 나머지....(핑계) AWS EC2 인스턴스 생성에 대해 그냥 넘어가버렸다. 3주차 실습은 ec2 인스턴스 생성을 devdebin.tistory.com 무튼 ...생긴 것도 매우 비슷하게 생겼네.... 먼저 SSH에 대해 정리해보겠습니다. 1. SSH SSH란? SSH는 Secure Shell의.. Network 2022. 3. 31. 이전 1 ··· 16 17 18 19 20 21 22 ··· 29 다음 반응형