본문 바로가기
반응형

(Pilot) 탑기공/소프트웨어 개발23

[탑기공] 디자인 패턴(Design Pattern) 가) 디자인 패턴 개념 소프트웨어 설계의 특정한 맥락에서(in a context) 반복해서 해결해야 할 문제(recurring problem)에 대해서 일반적이고 재사용이 가능한 해결 방법 디자인패턴 분류 [두음] 생구행 클객 목적에 따라 '생성 패턴', '구조 패턴', '행위 패턴'으로 나눌 수 있다. ① 생성 패턴: 객체의 생성과정에 관여하는 패턴 ② 구조 패턴: 클래스나 객체의 합성에 관한 패턴 ③ 행위 패턴: 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의하는 패턴 범위에 따라 패턴을 주로 클래스에 적용하는지 아니면 객체에 적용하는 지를 구분할 수 있다. ④ 클래스 패턴: 클래스와 서브 클래스 간의 관련성을 다루는 패턴. 관련성은 주로 상속이며, 컴파일 타임에 정적으로 결정한다... 2023. 3. 6.
[탑기공] 리팩토링(Refactoring), 코드스멜(Code Smell) 멘토링 블로그를 통해서 여러 번 강조한 것 같은데, 기술사 공부에 있어서 탑싯(TOPCIT)은 필독서라고 생각합니다. 꼭 시간내서서 정독 해보시길 권해 드립니다. 가) 리팩토링 개념 ① 리팩토링 개요 외부에서 보는 프로그램 동작은 변경하지 않고 프로그램 내부 구조를 개선하는 것 즉, 소프트웨어의 외부적 기능은 수정하지 않고 내부적 구조 및 관계를 단순화하여 소프트웨어의 유지보수성을 향상해 품질을 높이는 활동 리팩토링 수행 이유 오류발견과 디버깅 용이 소프트웨어 요구사항 변경에 효과적 대응 가능 복잡한 코드의 단순화 및 소스코드 가독성 향상 프로그램 생산성 및 품질 향상 ② 리팩토링 수행 절차 나) 코드스멜(Code Smell) 개념 ① 코드스멜의 개념 읽기 어렵거나 중복된 로직을 가진 프로그램처럼 개발자.. 2023. 3. 5.
[탑기공] 객체 지향 설계와 원리 2022.06.30 - [정보관리기술사/SW 공학] - 객체지향 기법의 원리 - "캡추상다연정" 2023. 1. 12.
[탑기공] 객체 지향 분석과 모델링 개념 객체지향, 객체지향 분석 기법, 모델링, 모델링의 3 관점 유스케이스, 정보 모델링 - 클래스 다이어그램, 동적 모델링 - 시퀀스 다이어그램, 기능 모델링 - 액티비티 다이어그램 모델링 3 관점 - "정동기" 정보, 동적, 기능 모델링 객체 지향 주어진 문제영역을 실세계 안에 존재하는 객체의 집합으로 보고 객체들 사이의 상호작용을 나타낸 것 객체 지향 분석 기법 3가지 관점(정보, 동적, 기능 관점)을 단계적으로 적용하여 소프트웨어에 요구되는 객체(또는 클래스)를 찾아내고, 객체의 속성과 동작을 밝히는 작업 모델링 대상 시스템의 성능 또는 동작과정 분석을 위하여 이를 간단히 도식화하거나 그 시스템의 특징을 수학적으로 표현하는 과정 모델링의 세 가지 관점 유스케이스 (Use Case) 유스케이스 기법은 이.. 2023. 1. 11.
[탑기공] 객체 지향 설계 5원칙 - SOLID SOLID에 대해 모르시는 분이 없으실 듯한데. 2022.07.01 - [정보관리기술사/SW 공학] - 객체지향 설계 원칙 - "SOLID" 객체지향 설계 원칙 - "SOLID" 두음 및 연상 스토리 설명 SW 공학 도메인의 국민 토픽인 객체지향 설계 원칙 SOLID 해당 문제 나오면 대다수가 선택해서 풀이하기 때문에 3단표의 차별화가 중요하다 생각합니다. 설계 원칙별 정 peimsam.tistory.com 다양한 자료를 보다 보면 같은 토픽에 대해서도 생각하지 못한 관점을 보게 되거나 또는 보충 설명을 통해 더 확실하게 개념을 잡을 수 있게 되곤 합니다. 지금은 시험이 한 달도 남지 않은 상황이어서 서브노트 / 키노드 열심히 돌리고 계실 텐데.. 나중에 시간 될 때 공부했던 토픽에 대해서도 다양한 자료.. 2023. 1. 10.
[탑기공] 소프트웨어 아키텍처 설계 표현 방법 소프트웨어 분야가 전공이 아니다 보니, 책을 볼 때 개념만 서술되어 있으면 저 역시 이해하는데 많은 어려움을 느낍니다. 실제 시험볼때 UML, 다이어그램 등 나오면 대부분 Skip 했던 경험이 떠 오르는데, 해당 분야는 소프트웨어 공학 도메인 필수 토픽입니다. 확실하게 정리하시길 권고드립니다. 저도 꾸준히 보게 되면 언젠가는 전문가가 되겠죠.. 컨텍스트(Context) 모델 요구사항 분석 초기, 시스템과 외부 환경의 경계를 정해야 한다. 컨텍스트 다이어그램은 분할되기 이전의 시스템을 하나의 큰 프로세스로 이해한 것이다. 이 모델은 개발해야 할 시스템의 영역을 기술하고, 시스템과 외부 환경과의 경계를 결정하며, 외부와의 인터페이스를 제시하여 시스템의 입출력 데이터를 보여준다. 다이어그램(Diagram) 사.. 2023. 1. 6.
[탑기공] 소프트웨어 아키텍처 스타일 멘토링 탑싯 에센스에서는 4개의 소프트웨어 아키텍처 스타일을 소개하고 있습니다. 저장소 구조, MVC(Model - View - Controller) 구조, 클라이언트-서버 모델, 계층구조 공부하실 때 아키텍처 스타일 종류, 개념도, 개념의 3 단락 표를 작성할 수 있도록 공부하시길 권고하며, 참고 자료의 IT위키 내용 보시길 바랍니다. 제가 기술사 시험 공부할 때는 아래와 같이 두음 만들어서 외웠는데, 클라이언트-서버 모델 포함하여 6개의 개념을 정리하면 좋을 듯합니다. 추가적으로 MVC 경우 1교시형 작성 가능하도록 따로 준비하셔야 합니다. 저장소 구조 한 서브시스템에서 데이터를 생성하고 다른 서브시스템들이 데이터를 사용하는 경우 시스템에서 사용되는 모든 공유 데이터를 한 곳에 보관하여 모든 서브시스.. 2023. 1. 5.
[탑기공] 소프트웨어 아키텍처 설계 예전에 공부할 때 작성했던 키노트에 ISO/IEC/IEEE 42010 (IEEE 1471)에 대한 두음도 있었네요. 미시 주포 아기 뷰모 환관근 되돌아보면 정말 절실하게 토픽마다 두음을 만들어서 워웠던것 같습니다. 129회 시험 한달밖에 남지 않았는데, 마무리 잘하셔서 좋은 결과들 있기를 기원합니다. 소프트웨어 아키텍처 개요 소프트웨어 개발에 직간접적으로 영향을 미치고 복잡도를 높이는 다양한 요소들을 체계적으로 다루기 위한 개발 대상 소프트웨어의 청사진 소프트웨어 아키텍처 설계 절차 요구사항 분석, 아키텍처 분석 및 설계, 아키텍처 검증 및 승인 절차로 진행된다. 요구사항은 제안요청서, 인터뷰, 회의 등을 통해 구체적으로 파악되며 기능 및 비기능 요구사항을 분류하고 명세하게 된다. 아키텍처 분석은 품질요.. 2023. 1. 4.
[탑기공] 구조적 설계 방법 [두음] 소프트웨어 개발 방법론 - 구정객CPA - 구정에 온 손님(객)은 공인회계사(CPA) 구조적, 정보공학, 객체지향, CBD, PL/SSPL, Agile 2022.06.27 - [정보관리기술사/SW 공학] - SW 개발 방법론 발전 과정 - "구정객CPA" SW 개발 방법론 발전 과정 - "구정객CPA" 두음 및 연상 스토리 설명 구정에 온 손님(객)이 CPA(공인회계사) 였습니다. SW 개발 방법론 발전 과정 구정객CPA 구 : 구조적 방법론 정 : 정보공학 방법론 객 : 객체지향 방법론 C : CBD (컴포넌트 기 peimsam.tistory.com 구조적 방법론 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 체계적인 방법으로 비즈니스 프로세스 자동화를 목표로 하고 있으며, .. 2023. 1. 3.
소프트웨어 설계 원리 - "추정단모" 근래 개인적으로 강의를 듣는 게 있어서 블로그를 잘 못하고 있습니다. 양해 부탁 드리며... 예전에 공부할 때, 추정단모 추상화, 정보은닉, 단계적 분해, 모듈화로 암기를 했었는데, 탑싯 에센스를 보다보니 추상화, 정보은닉, 단계적 정제, 모듈화, 구조화 5개를 설명하고 있네요. 함께 개념을 정리해서 알고 있으면 좋을 듯합니다. 추상화 큰 흐름을 잃지 않으면서 점차적으로 문제영역에 접근하기 위해 상세한 수준의 구현을 고민하기보다 상위 수준에서 제품의 구현을 먼저 생각하는 것 컴포넌트의 구현 방법을 과감히 생략하고 외부 인터페이스에 초점을 맞추는 것 추상화 유형: 자료 추상화, 제어 추상화, 과정 추상화 정보은닉 각 모듈의 내부 내용을 감추고 인터페이스를 통해서만 메시지를 전달할 수 있도록 하는 개념으로 .. 2022. 12. 29.
[탑기공] 정렬, 검색, 그래프 탐색 알고리즘 멘토링 ⓛ 정렬 알고리즘은 종류별 동작방식 중심으로 학습을 권고합니다. - 선택 정렬, 삽입 정렬, 버블 정렬, 퀵 정렬 등 ② 검색 알고리즘은 분류 및 제어 검색에서 피보나치 탐색과 이진트리 탐색 중심으로 학습을 권고합니다. ③ 그래프 탐색 알고리즘은 DFS, BFS의 동작 방식 및 Psuedo Code를 작성하는 수준까지 학습하길 권고합니다. 정렬 알고리즘 개념 원소들을 번호순이나 사전 순서와 같이 일정한 순서대로 열거하는 알고리즘 정렬의 분류 정렬 장소에 따라 내부정렬(Internal Sort)과 외부정렬(External Sort)로 분류 내부정렬 소량의 데이터에 대해 주기억 장치에 올려서 정렬하는 방식으로 정렬 속도는 빠르나 주기억 장치의 용량에 의해 정렬할 수 있는 데이터의 양이 제한됨 외부정렬.. 2022. 12. 23.
[탑기공] 알고리즘(Algorithm) 멘토링 기출 문제를 분석하다 보니 생각 외로 알고리즘 관련 문제들이 많네요. 출제된 기출 문제 토픽에 대해서 최소한 개념 정도는 꼭 한 번쯤은 정리하고 넘어가시길 권고합니다. 알고리즘 관련 주요 키워드 백트래킹(Backtracking), 분할정복, 탐욕법, 동적계획법 선택 정렬, 삽입 정렬, 퀵 정렬, 버블 정렬 시간 복잡도, 공간 복잡도 최소 신장 트리, 크루스컬 알고리즘, 프림 알고리즘 최단 경로 알고리즘(다익스트라, 벨만-포드, 플로이드 와샬, A* 알고리즘) 그리디(Greedy) 알고리즘 재귀 호출, B 트리 / B+ 트리 알고리즘의 개념 주어진 문제를 해결하기 위한 일련의 처리 절차를 단계적으로 기술한 것으로 문제 해결 방법을 추상화하여 단계적 절차를 논리적으로 기술해 놓은 명세서 알고리즘의 목.. 2022. 12. 21.
[탑기공] 자료구조(Data Structure) 멘토링 자료구조에 대한 개념과 분류에 따른 종류를 아는게 중요합니다. 힙(Heap) 자료구조를 포함하여, 모두 충분히 학습하시길 권고 드립니다. - 자료 구조별 특징, 문제점, 알고리즘 연계성, 동작 방식, Psuedo Code 등 자료구조의 개념 다양한 자료를 효율적으로 표현하고 활용할 수 있도록 자료의 특성과 사용 용도를 고려하여 조직적, 체계적으로 정의하고 자료를 컴퓨터의 기억장치 내에 저장하는 방법 자료구조의 분류 자료구조는 크게 선형 구조와 비선형 구조로 나눌 수 있습니다. [두음] 배리스큐 트그 배열, 리스트, 스택, 큐, 트리, 그래프 정말 중요합니다. 필수 암기!!! 선형 구조 물리적 설계자료들이 직선 형태로 나열되어 자료들 간의 순서를 고려한 구조로 전후/인접/선후 자료들간의 1:1 관계.. 2022. 12. 20.
그래프(Graph) 자료구조 멘토링 그래프의 개념과 구성 요소에 대한 개별적인 이해도 중요하지만, 최단 경로 및 최소 신장 트리 알고리즘과 연계하여 그래프와 트리를 학습하시길 권고드립니다. 최단 경로 알고리즘 다익스트라(Dijkstra), 벨만-포드(Bellman-Ford), 플로이드 와샬(Floyd Warshall), A* 알고리즘 최소 신장 트리 알고리즘 크루스컬(Kruskal), 프림(Prim) 알고리즘 그래프(Graph)의 개념 객체를 나타내는 정점(vertex)과 객체를 연결하는 간선(edge)의 집합으로, 연결되어 있는 원소 사이의 다:다 관계를 표현하는 자료구조 [두음] 그정간다 그래프, 정점, 간선, 다:다 관계 표현 그래프의 종류 무방향 그래프, 방향 그래프, 완전 그래프, 가중 그래프, 유향 비순환 그래프(DAG,.. 2022. 12. 19.
트리(Tree) 자료구조 트리의 개념 트리(Tree)는 원소들 간에 계층 관계를 가지는 계층형, 비선형 자료 구조 일반적으로 원소들 간에 1:다 관계를 가진다. 트리 구성 요소 구분 설명 루트노드(root node) 트리의 시작 노드 간선(edge) 노드를 연결하는 선 형제노드(sibling node) 같은 부모 노드를 가진 자식 노드들 서브트리(subtree) 부모노드와 연결된 간선을 끊었을 때 생성되는 트리 트리 개념도 기출 문제 예전에 한창 코딩 공부할 때 트리 및 그래프 관련 웬만한 알고리즘은 다 코딩할 수 있었는데, 인간은 망각의 동물이라서, 3년 가까이 하지 않다 보니 거의 잊어버렸네요. 쉽지 않겠지만, 나중에 기회가 된다면 기초 Pseudo Code 까지는 업데이트 해 보겠습니다. 자료구조 및 알고리즘 관련 고득점을.. 2022. 12. 18.
728x90
반응형