본문 바로가기
반응형

탑기공18

[탑기공] 리팩토링(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.
[탑기공] 역공학 역공학 소프트웨어 공학의 한 분야로 이미 만들어진 시스템을 역으로 추적하여 처음의 문서나 설계기법 등의 자료를 얻어 내는 일 시스템을 이해하여 수정하는 소프트웨어 유지보수 단계에 수행하는 일련의 활동 즉, 소프트웨어 생명주기의 마지막 단계에서 얻어지는 프로그램 또는 문서 등을 이용하여 생명주기 초기 단계의 산출물에 해당하는 정보 또는 문서를 만들어 내는 일로서 설계부터 순차적으로 수행하는 순공학에 상대되는 개념 출처: 탑싯 에센스 소프트웨어 3R 개념도 역공학의 Input / Output Input Output 원시코드, 목적코드, 작업절차, 라이브러리 등 입출력 형태의 자료, 문서 구조도, 자료 흐름도, 제어 흐름 그래프, 개체 관계도 역공학의 종류 종류 설명 논리 역공학 원시코드로부터 정보를 추출하여.. 2022. 12. 14.
[탑기공] 소프트웨어 재사용 소프트웨어 3R - 역공학, 재공학, 재사용 소프트웨어 재사용 정의 사용 소프트웨어 개발 관련 지식(기능, 모듈, 구성 등)을 표준화하여 개발 생산성을 높이기 위하여 반복적으로 사용하기에 적합하도록 구성하는 방법 기존 개발 기능, 성능 및 품질을 인정받았던 소프트웨어의 전체 또는 일부분을 다시 사용하여 신규 개발되는 소프트웨어의 품질과 생산성 및 신뢰성을 높이고 개발 일정 및 비용을 감소시켜주는 대응 방안 기존 개발 모듈이나 프로그램, 산출물 등을 동일한 응용 분야, 서로 다른 응용업무, 혹은 서로 다른 기업 간에 다시 사용하거나 일부 수정 후 재사용할 수 있는 개념 소프트웨어 3R 개념도 소프트웨어 재사용의 목적 신뢰성, 확장성, 생산성, 사용성, 유지보수성, 적응성 재사용(Reuse) 활용 기법 Co.. 2022. 12. 13.
[탑기공] 04. 애자일 개발 방법론 04 애자일 개발 방법론 애자일 개발 방법론 개념 절차나 문서보다 사람과 업무 자체를 중요시하여 유연하고 신속한 개발을 추구하는 방법론 애자일 소프트웨어 개발 선언 [두음] 개작고변 우리는 소프트웨어를 개발하고, 또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다. 이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다: 공정과 도구보다 개인과 상호작용을 포괄적인 문서보다 작동하는 소프트웨어를 계약 협상보다 고객과의 협력을 계획을 따르기보다 변화에 대응하기를 가치있게 여긴다. 이 말은, 왼쪽에 있는 것들도 가치가 있지만, 우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다. 주요 애자일 방법론 스크럼(Scrum), 익스트림 프로그래밍(eXtreme Programmi.. 2022. 12. 12.
728x90
반응형