본문 바로가기

전체 글

(151)
애자일(Agile) 소프트웨어 개발 애자일 소프트웨어 개발 - 애자일은 민첩한, 기민한이라는 의미로 애자일 소프트웨어 개발은 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발 과정을 진행합니다. 특징 - 공정과 도구보다 개인과의 상호작용을 더 가치있게 여깁니다. - 포괄적인 문서보다는 동작하는 소프트웨어를 가치있게 여깁니다. - 계약 협상보다는 고객과의 협력을 가치있게 여깁니다. - 계획을 따르기보다 변화에 대응하기를 가치있게 여깁니다. 정보처리기사 2022년 1회 2번 출제
사용자 인터페이스(UI, User Interface) 설계 사용자 인터페이스(UI) - 사용자와 시스템 간의 상호 작용이 원활하게 이루어지도록 도와주는 장치나 소프트웨어를 의미합니다. 원칙 - 직관성 : 누구나 쉽게 이해하고 쉽게 사용할 수 있어야 합니다. - 유효성 : 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작해야 합니다. - 학습성 : 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작해야 합니다. - 유연성 : 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작해야 합니다. 설계 지침 - 사용자 중심 : 사용성이 최우선으로 고려되어야 합니다. - 일관성 : 버튼이나 조작 방법 등을 일관성 있게 제공해야 합니다. - 단순성 : 조작 방법을 단순화시켜야 합니다. - 결과 예측 가능 : 작동시킬 기능을 보고 결과를 미리 예측할 ..
마이크로프로세서의 분류 RISC vs CISC 마이크로프로세서의 분류 RISC - 처리 시간이 매우 짧고 간단한 명령만을 골라 그것들을 조합한 명령어 집합에 의해 종래의 CISC보다 고속으로 처리하는 마이크로프로세서입니다. - RISC 프로세서는 복잡한 일을 수행하는 능력을 계속 보유하면서도 내부적으로는 간단하고 적은 수의 명령어들이 프로그래밍 되어 있습니다. 특징 - 필수적인 명령어만 제공해 간단한 명령어의 집합입니다. - 고속 처리를 위해 적은 수의 어드레싱 모드를 지원합니다. - 모든 명령은 1클록으로 실행됩니다. - 모든 명령은 1워드 길이로 고정 길이 명령어 형식을 갖습니다. - 고정 길이 명령어 형식을 갖고 같은 클록 사이클을 갖고 있어 효율적인 파이프라이닝이 가능합니다. - 연산은 레지스터 사이에서만 실행합니다. - 메모리 참조는 Loa..
정보처리 시스템의 분류 정보처리 시스템 - 자료를 수집, 분석, 저장하고 유용한 형태의 정보로 가공하여 공유하는 일을 체계적이고 효율적으로 가능하도록 해 주는 시스템입니다. 정보처리 시스템 종류 다중 프로그래밍 시스템 - 하나의 컴퓨터 시스템에서 여러 개의 어플리케이션들이 함께 주기억장치 1개에 적재되어 하나의 CPU 자원을 번갈아 사용하는 형태로 동시에 여러 개의 프로그램이 실행되는 것처럼 수행되게 하는 기법입니다. - CPU 처리량 증가가 목적입니다. - I/O 작업과 CPU 작업을 중첩함으로써 시스템 효율을 향상시킵니다. 시분할 시스템 - 대화식 처리와 다중 프로그래밍 기법의 조합으로 여러 명의 사용자가 단말기를 통하여 중앙의 컴퓨터 시스템을 동시에 사용하는 방식입니다. - CPU의 시간을 잘게 분할하여 여러 사용자에게 ..
소프트웨어 생명 주기 소프트웨어 개발 생명 주기 모델 과정 - 계획 -> 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수 계획 - 목표를 세우고 달성하기 위항 체계적인 진행 상황 관리를 할 수 있도록 행동 방안을 마련합니다. 분석 - 사용자의 요구사항을 명세서로 작성하는 과정으로 프로젝트에 관계된 모든 사람이 이해하기 쉽게 작성해야 합니다. 설계 - 요구사항을 반영하여 시스템 구조, 프로그램, 인터페이스 등의 설계서를 작성하는 과정으로 변화에 쉽게 적응할 수 있고 유지보수가 용이하도록 작성해야 합니다. 구현 - 프로그램을 제작 및 구현하는 단계로 이후 시험 단계로 진행됩니다. 테스트 - 프로그램 구현 이후 요구대로 소프트웨어가 적합하게 작동하는지 확인하고 품질 보증을 위하여 제품의 오류를 발견합니다. 유지보수 - 수정,..
컴퓨팅 사고, 알고리즘 컴퓨팅 사고 - 컴퓨터를 이용하여 문제를 해결할 수 있는 논리적으로 창의적인 생각 방식입니다. 분해 - 복잡한 문제를 잘게 나누어 간단한 여러 개의 작은 문제로 분해하는 것을 의미합니다. 패턴 인식 - 문제를 해결하는데 있어 반복되는 현상을 찾아내는 것을 의미합니다. 추상화 - 발견되는 패턴에서 불필요한 부분들을 제거하고 핵심적인 요소들만을 남김으로써 문제를 단순화하는 단계입니다. 알고리즘 - 문제 해결을 위한 공식 또는 절차를 의미합니다. 알고리즘 특성 입력 - 외부에서 제공되는 자료가 있을 수 있습니다. - 0개 이상의 입력이 존재합니다. 출력 - 반드시 한 개 이상의 결과를 생성합니다. 명확성 - 각 명령들은 명확하고, 모호하지 않아야 합니다. 유한성 - 어느 한정된 수의 단계 뒤에는 반드시 종료합..
자료구조 분류 선형구조, 비선형구조 자료 구조 분류 선형 구조 - 데이터의 항목 사이의 관계가 1:1입니다. - 선후 관계가 명확한 1개의 선의 형태를 갖는 리스트 구조를 말합니다. - 각 자료 항목 사이의 관계의 표현 방법과 입출력 방법에 따라 배열, 연결 리스트, 스택, 큐, 덱 등으로 나뉘어집니다. 배열 - 인덱스를 가지며 순차적으로 데이터가 삽입, 삭제될 수 있는 형태의 자료구조입니다. 연결 리스트 - 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료구조입니다. 스택 - 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료구조입니다. 큐 - 한 쪽에서는 삽입 작업이, 다른 쪽에서는 삭제 작업이 이루어지는 자료구조입니다. 데크 - 삽입과 삭제가 리스트의 양쪽 끝에서 모두 발생할 수 있는 자료구조입..
프로그래밍 언어 특징 프로그래밍 언어 - 인간이 컴퓨터와 의사소통할 수 있도록 컴퓨터가 이해 가능한 명령으로 프로그램을 작성할 수 있도록 만든 언어입니다. 프로그래밍 언어 종류 고급언어 - 사람이 이해하기 쉬운 언어입니다. - 자바, 코볼, 포트란 등이 있습니다. - 컴파일 단계 : 원시 프로그램(소스 코드) -> 어휘분석 -> 구문분석 -> 의미분석 -> 중간 코드 생성 -> 코드 최적화 -> 목적 코드 생성 -> 목적프로그램 저급언어 - 컴퓨터가 이해하기 쉬운 언어입니다. - 기계어, 어셈블리어 등이 있습니다. 프로그램 구현 기법 컴파일러를 이용한 기법 - 목적 프로그램을 생성합니다. - 반복문이 많은 프로그래밍의 실행에서 효율적입니다. - 번역된 프로그램을 저장하기 위한 큰 기억 장소를 요구하는 단점이 있습니다. - C..