목록전체 글 (227)
득이공간
해당 게시물은 김정근 교수님의 '컴퓨터 네트워크' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 1장. Computer Networks and the Internet 1-1. What is the Internet? 1-2. What is a protocol? 1-3. Network edge: hosts, access network, physical media 1-4. Network core: packet/circuit switching, internet structure 1-5. Performance: loss, delay, throughput 1-6. Protocol layers, service models 📌 1-1. What is the Internet? * Host (= ..
2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1 ≤ m ≤ 1,000)이 주어지고, 그 www.acmicpc.net #include #include #include using namespace std; int A[1001]; int B[1001]; vector ASum; vector BSum; void Init() { int N, M; cin >> N; for (int i = 0; i > A[i]; } cin >> M; for (int i = 0; i < M; ++i..
1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net #include #include using namespace std; bool Prime[4000001]; vector Sequence; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N; cin >> N; for (int i = 2; i
20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net #include using namespace std; int Root[500000]; int Find(int Node) { if (Node == Root[Node]) { return Node; } return Root[Node] = Find(Root[Node]); } bool Cycle(int NodeA, int NodeB) { int RootA = Find(NodeA); int RootB = Find(NodeB); if (RootA == RootB) { r..
해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며학습한 내용을 개인적으로 정리한 글입니다.📌 목차 - 7장. 유지보수7-1. 유지보수 7-2. 레거시 시스템, 리먼의 소프트웨어 변화 법칙 7-3. 유지보수 프로세스 모델 7-4. 유지보수 작업 과정 7-5. 소프트웨어 형상 관리 7-6. 역공학📌 7-1. 유지보수* 유지보수 - 소프트웨어가 사용자에게 인수, 설치된 이후 발생하는 모든 공학적인 작업 활동 (폐기될 때까지) - 소프트웨어를 계속 수정, 보완하는 활동 - 필요성: 소프트웨어는 환경과 비즈니스 요구에 따라 진화한다. - 소프트웨어 비용 중 유지보수 비용이 가장 큰 비용을 차지한다. - 소프트웨어는 개발 완료가 끝이 아니라 그때부터 시작이다. 만들어진 하드웨어는 새로운 기능을 추..
해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 6장. 테스트 6-1. 테스트 6-2. 테스트 단계, 방법 6-3. 블랙박스 테스트 6-4. 화이트박스 테스트 6-5. 통합 테스트 6-6. 시스템 테스트 6-7. 인수 테스트 📌 6-1. 테스트 * 테스트 - 잘 안되는 것을 발견하기 위한 작업 * 테스트 중요성 - 소프트웨어 오작동으로 인한 재산/인명 피해를 사전에 예방하기 위함 (1) 결함 예방 (2) 품질과 안정성 보장 (3) 소프트웨어 신뢰성 향상 * 검증과 확인 - 검증(verification): 각 단계의 일들을 잘하고 있는가? - 확인(validation): 만든 결과가 원했던 것인가? * 테스트 기초 - 오류: 소프트웨어..
해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 5장. 구현 5-1. 구현 5-2. 코딩 오류 5-3. 표준 코딩 규칙 5-4. 표준 코딩 규칙 종류 📌 5-1. 구현 * 구현 - 설계의 결과(설계서)를 사용자가 이용할 수 있는 모습(원시 코드)으로 변환하는 과정 - 결과물: 컴퓨터 프로그램 - 구현 후 테스트 시 오류가 발생하면? - 일반적으로 분석과 설계의 잘못에 의해 문제가 생긴다. - 설계과정이 완벽하다면 구현은 상대적으로 단순하고 기계적인 과정이다. - 코딩을 하는 개발자들은 정해진 규칙에 따라 코딩(표준 코딩 규칙)해야 한다. * 로드맵 - 코딩 표준 - 메서드 구현: 메서드 내부의 내용을 구현 - 클래스 인스펙션: 구현 ..
해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 4장. 설계 4-1. 설계 4-2. 객체 지향 모델링 (UML) 4-3. 정적 모델링 - 클래스 다이어그램 4-4. 동적 모델링 4-5. 동적 모델링 - 순서 다이어그램 4-6. 동적 모델링 - 상태 다이어그램 4-7. 동적 모델링 - 활동 다이어그램 4-8. 절차 지향 모델링 (DFD) 4-9. 설계 요령 4-10. 아키텍처 설계 4-11. UI 설계 📌 4-1. 설계 * 설계 - 개발될 제품에 대한 의미있는 공학적 표현으로, 설계자는 다양한 제약 조건을 만족시킬 수 있는 최적의 설계안을 만들고, 설계를 평가할 기준도 정량적으로 명시해야 한다. - How(어떻게) 관점에서 바라본다. ..
해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 3장. 요구분석 3-1. 요구분석 3-2. 요구사항 도출, 분석 3-3. 문서화: 요구분석명세서 3-4. 요구사항 검증 📌 3-1. 요구분석 * 소프트웨어의 요구 - 무엇(문제)을 구축할 것인가를 나타낸다. * 요구분석의 목적 - 이해: 소프트웨어가 무엇을 위해 필요한지 정확하게 이해한다. - 전달: 이해한 것을 다른 개발자에게 정확하게 전달한다. - 컨트롤: 시스템이 명세에 맞도록 제품 개발을 컨트롤한다. * 요구분석의 중요성 - 의사소통시간을 절약하고 다음 단계의 기초가 된다. * 요구분석의 어려움 - 사용자의 계속되는 요구사항 추가, 분석가의 문제 영역 이해 부족, 의사소통 문제 ..
해당 게시물은 김정욱 교수님의 '소프트웨어공학' 강의를 수강하며 학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 2장. 계획 2-1. 계획 2-2. 문제 정의 2-3. 타당성 분석 2-4. 개발 비용 산정 2-5. 개발 비용 산정 기법 2-6. 일정 계획 2-7. 위험 분석 📌 2-1. 계획 * 계획 - 누가 무엇을 어느 기간동안 어떻게 개발해야 하는지 예측하는 작업 * 체계적이고 명확한 계획을 위한 6가지 - 문제 정의 - 타당성 분석 - 개발 비용 산정 - 개발 비용 산정 기법 - 일정 계획 - 위험 분석 📌 2-2. 문제 정의 * 문제 정의 - 무엇을 개발할 것인지 명확히 정의한다. 개발하고자 하는 영역의 배경 지식이 필요하다. 기존에 존재하는 유사 시스템을 사용해보고 분석한다. 📌 2-3...