본문 바로가기

소프트웨어공학46

[정보처리기사 필기] 소프트웨어 설계 - 요구사항 요구사항 이중화 기술 CPU 메모리 여러개 - 장애 발생 대비 하드디스크 여러개 최소 비용으로 가용성 현행시스템 이중화 - 목표 시스템에도 이중화 소프트웨어 구성도 구축 비용, 라이선스, 서버, 사용자 수 스토리지 시스템 DAS : 저장 장치, 호스트 기기 직접 연결 NAS : 별도 운영체제 가진 서버 SAN : DAS + NAS 가상화 기계 하이퍼바이저 호스트 하이퍼바이저 컨테이너 전자 정부 프레임워크 화면 - 업무 - 연계, 데이터처리 장점 무상제공- 비용 경쟁력 유지보수 용이 표준화된 개발 기반으로 종속성 해소 상호 운용성 향상 요구사항 요구사항 도출 소프트웨어가 해결해야 할 문제 이해 도출기법 인터뷰 조사 스토리텔링 프로토타이핑 분석과 중재 기술 관찰과 모델 작성 요구사항 분석 최적화하여 정확히 .. 2022. 3. 24.
[정보처리기사 필기] 소프트웨어 설계 - 소프트웨어의 종류 및 개발 방법론 소프트웨어의 종류 및 개발 방법론 주요 내용 정리 시스템 소프트웨어 IO, P, C, F 하드웨어 구조 특성 알지 못해도 됨 플랫폼 성능 분석 응답 시간, 가용성, 사용률 프레임 워크 기대 효과 품질 보증, 개발 용이성, 변경 용이성, 상호 운용성 향상 기업용 소프트웨어 오피스웨어, ERP(신속한 의사결정), SCM(부품), BI(구성원 적시 의사결정), CRM(고객) 컴포넌트 설계 - 협약(Contract) CBD : 재사용 가능 컴포넌트 기반 개발 방법론 소프트웨어 공학 기본 원칙 품질 높은 소프트웨어 지속적 검증 시행 결과에 대한 명확한 기록 운영체제 고려사항 신뢰도 성능 구축비용 기술지원 주변기기 미들웨어 솔루션 유형 WAS : 동적 RPC : 원격 ORB : 객체지향 미들웨어 MOM : 메시지 .. 2022. 3. 24.
정보처리기사 필기 합격 정리 (후기) 2022년 3월 23일 정보처리기사 필기합격 발표 필기 합격을 해서 공부법과 필기내용 정리&공유 국가자격 종목별 상세정보 | Q-net www.q-net.or.kr 전체 필기 스케줄 약 1달 1월 24일~1월27일 필기 접수완료 개정 후의 기출문제 보면서 문제에 대한 감 잡기, 정답외의 개념들 공부하기 ~1.29 정처기 전체 내용 1회독 (전체적인 흐름 개념 용어 파악 정도) 1.30~2.11 2회독 : 주요부분 외우기 / 문제풀기 2.12~3.1 기출풀기 (이기적 별책) 3.2 ~ 3.3 오답내용 암기 3.4 ~ 3.5 책은 이기적 정보처리기사 필기 기본서 중간중간 문제도 풀어보고, 별책으로 기출문제도 풀어 볼 수 있어서 좋았다. 이기적 정보처리기사 필기 기본서 - 기초부터 탄탄히 잡아주는 영진닷컴의 .. 2022. 3. 24.
Command Pattern 커맨드(명령) 패턴 - 행동, 메소드 호출의 캡슐화 | [Design pattern] 디자인 패턴 Command Pattern 메소드 호출을 캡슐화(encapsulation) 한다. 여러 기능을 실행할 수 있도록 재사용성이 높은 클래스를 설계하는 패턴 서비스를 호출할 때 융통성을 높이려고 사용 매개 변수를 사용하여 여러가지 다른 요구사항을 처리 문제점) GUI toolkit GUI 컴포넌트(버튼, 텍스트필드) 들이 Client 가 설정한 임의의 작업을 수행하도록 하려면 어떻게 해야할까 Universal remote controller 각 버튼이 임의의 가전제품을 제어하게 하려면 어떻게 해야 할까 Unknown consumer electronic devices 객체간 상호작용 Receiver : 서비스 제공자 Invoker : Client의 일부가 될 수 있다. invoker 와 receiver 사이에.. 2021. 12. 31.
MVC 패턴 , Model - View - Controller | [Design pattern] 디자인 패턴 MVC Pattern 사용자 인터페이스를 구현하기 위한 구조 패턴 Model로 부터 UI를 분리 동시 개발 가능, Loose coupling, 용이한 변경 high cohesion: grouping related actions on A controller, grouping views for A model. 구성요소) Model : 어플리케이션 객체 View : 모델을 스크린에 표현 갱신된 model의 상태를 즉각 반영 one model multiple different views composite view Controller : 입력에 따라 반응 방식 바꿈 1. View --> Controller : 유저 행동 2. Controller --> Model : 상태 변경 3. Controller --> Vi.. 2021. 12. 29.
Abstract Factory Pattern - 생성, 팩토리 추상화와 제품군 생성 추상화 | 추상 팩토리 패턴 [Design pattern] 디자인 패턴 Abstract Factory 다양한 구성 요소 별로 객체의 집합 생성 같은 종류의 여러 개의 객체를 생성할 수 있는 클래스를 생성 생성 군들을 하나에 모아놓고 팩토리(Factory) 중에서 선택하게 하는 패턴 관련있는 서브 클래스를 묶어서 팩토리 클래스를 만들고, 이들 조건에 따라 객체를 생성하는 패턴 여러 개의 클래스를 하나의 추상 클래스로 묶어 한번에 교체할 수 있는 패턴 ex) 제품군 (A family of products) GUI widgets : window, scroll bar, button, text field .. Pizza ingredients : dough, sauce, cheese ... - 제품, 운영체제, 회사별로 유사한 제품이지만 지원하는 기능에 차이가 있을 경우, 기능별로 통.. 2021. 12. 26.
Factory Method Pattern 팩토리 메소드 패턴 - 생성, 다양한 유형의 객체 생성, 변경, 추가가 빈번히 일어나는 경우 | [Design pattern] 디자인 패턴 Factory Method 패턴 서브 클래스가 인스턴스를 결정하도록 하고 책임을 위임하는 패턴 객체의 생성을 서브 클래스에 위임하는 패턴 조건에 맞게 객체를 다르게 생성 결합도 줄이고 유지보수 용이 템플릿 메소드 패턴 사용 (Virtual - Constructor) 객체 생성 방법) 생성자 (new 연산자)를 사용하여 직접 생성 객체 생성 클래스 / 메소드 (factory class / method) 사용 -> 객체 생성을 추상화 문제점1) 다양한 종류의 피자 (객체)를 생성 변경 추가 제거 가능 생성자를 사용하여 객체 생성 Pizza orderPizza(String type) { Pizza pizza; if (type.equals(“cheese”)) { pizza = new CheesePizza(); .. 2021. 12. 21.
State Pattern 상태 패턴 - 행위, 내부 상태를 가져서 특정 상태에서의 행동들을 하나의 class에 캡슐화 | Design pattern 디자인 패턴 State pattern The State Pattern allows an object to alter its behavior when its internal state changes. The object will appear to change its class. 규칙에 따라 객체의 상태를 변화시키면서 객체가 할 수 있는 행위를 바꾸는 패턴 특정 메소드가 객체의 상태에 따라 다른 기능을 수행 객체의 상태에 따라 동일한 루틴에서 다른 행동을 할 수 있다. 용어 내부 상태 프로그램의 실행 과정에서 현재 유지하고 있는 변수 및 실행 상황. 내부 상태를 가지는 머신 자판기, 엘레배이터, ATM 기기 내부 상태를 가지는 머신은 현재 상태에 따라 같은 행동(사건) 이 다른 결과를 낳을 수 있다. ex) 자판기내 음.. 2021. 12. 16.
Decorator Pattern - 구조, 구성과 위임을 통해 특정 개체에 행동을 동적으로 추가 | [Design pattern] 디자인 패턴 Decorator Pattern 같은 class의 다른 객체들에는 영향을 주지 않고, 구성과 위임을 통해 특정 객체에 행동을 동적으로 추가 소스를 변경하지 않고 기능을 확장 기존 객체의 메소드에 새로운 행동을 추가하거나 오버라이딩 가능 객체에 독립적인 기능을 계속해서 추가, 확장할 때 유용 객체에 부가적인 기능을 동적으로 추가할 때 사용 문제점) 상속을 사용한 객체의 기능 확장은 subclass를 양산한다. Subclassing을 사용한 정적 확장의 문제점: ① 너무 많은 subclass가 필요함 ② 새로운 유형의 음료수가 개발될 때마다 subclass를 계속 추가되어야 함. 패턴 아이디어) DataInputStream dis; // primitive value dis = new DataInputStre.. 2021. 12. 11.
Proxy Pattern 프록시 패턴 - 구조, Heavy object를 대리할 light object를 생성 | Design pattern 디자인 패턴 Proxy Pattern 프록시 패턴은 surrogate 와 다른 객체의 접근에 대한 통제를 할 수 있는 placeholder를 제공한다. 객체의 대리자를 이용하여 다른 객체로의 접근을 통제하는 패턴 대리 객체를 통해 원래 객체의 작업을 대신 수행 복잡한 작업과 단순한 작업을 나누어서 처리 원래의 기능을 수행하면서 부가적인 기능을 수행할 때 유용 문제점) 객체 생성에 비용(시간, 자원)이 많이 드는 Heavy object 가 있다. 프로그램이 종료될 때까지 한 번도 사용되지 않으면 시간, 자원의 낭비가 있다. Key Idea) Heavy object를 대리할 light object를 생성 - Heavy object와 동일한 인터페이스를 가지는 proxy (대리 객체) Heavy object 대신 prox.. 2021. 12. 4.
Template Method Pattern 템플릿 패턴 - 행동, 메소드 내에 알고리즘 골격을 정의한다. | Design Pattern 디자인 패턴 Template Method Pattern 작업의 일부분을 캡슐화하여 전체 일을 수행하는 구조는 그대로 유지하면서 특정 부분을 바꾸는 패턴 메소드내에 알고리즘 골격을 정의한다. variant step의 구현을 subclass들에게 미룬다.(defer) 하위 클래스는 알고리즘 구조를 변경하지 않는다. variant step을 자신의 방법으로 구현한다. The AbstarctClass 는 템플릿 메소드를 포함한다. templateMethod() templateMethod() 에서 primitiveOperation 들이 사용된다. concrete invariant operations abstract variant operations hook (default or null operation) primitiveO.. 2021. 11. 27.
Observer Pattern 옵저버 패턴 code , java built-in package | Design pattern 디자인 패턴 Java에는 기본 지원 기능이 있습니다. 여러 API에 포함되어 있다. 일반적으로 java.until package에 The Observer interface and The Observable class 가 있다. Subject and Observer interface 와 비슷하다. The Observable class keeps track of all yours observers and notifies them for you This should look familiar. In fact, it's exactly the same as our previous class diagram. How Java’s built-in Observer Pattern works For an Object to become a.. 2021. 11. 20.