[소프트웨어 공학] - 프로세스와 방법론 (Process & Methodology)
·
💻 Computer Science/소프트웨어 공학
소프트웨어 생명주기 (Life Cycle) 소프트웨어는 사람과 같이 생명주기를 가진다. 개발된 소프트웨어는 계속해서 변경되고, 새로운 기능이 추가되어 쓰이며 마침내 소멸에 이른다. 소프트웨어 프로젝트의 생명주기는 “요구분석 → 설계 → 구현 → 테스팅 → 유지보수”의 단계들을 거친다.TIP!소프트웨어 프로젝트의 생명주기는 “요구분석 → 설계 → 구현 → 테스팅 → 유지보수”의 단계를 거친다.프로세스 (Process) 프로세스는 소프트웨어 시스템을 구축하기 위해 수행되는 작업의 단계로, 소프트웨어 개발에 관한 기술적, 관리적 이슈를 다루는 작업을 소프트웨어 프로세스라고 부른다. 프로세스는 여러 컴포넌트 프로세스로 구성된다. 각 컴포넌트 프로세스는 서로 다른 목적을 가지지만 서로 협력하여 전체 소프트웨어 공..
[소프트웨어 공학] - 소프트웨어 공학 개론 (Introduction of Software Engineering)
·
💻 Computer Science/소프트웨어 공학
소프트웨어 (Software) 소프트웨어는 컴퓨터를 작동시키는 프로그램으로 하드웨어의 동작을 제어하는 명령어들로 구성되어 있다.소프트웨어 특징 소프트웨어가 가지는 특징은 다음과 같다.`복잡성(Complexity)`: 소프트웨어가 자동화하려는 대상은 수많은 내부 요소들로 이루어져 있어 복잡하다.`순응성(Conformity)`: 환경이나 데이터의 변화에 따라 적절하게 변형된다.`변경성(Changeability)`: 소프트웨어는 문자로 구성된 프로그램으로 쉽게 변경 가능하며 개발 과정 중 자주 변화된다.`비가시성(Invisibility)`: 소프트웨어는 가시적인 매체에 저장되지만 그 자체는 무형이며 구조가 코드 안에 있기에 쉽게 드러나지 않는다.소프트웨어 종류 소프트웨어는 크게 세 가지 유형으로 분류된다.`주..
[컴퓨터 네트워크] - 네트워크 구성 (Network Architecture)
·
💻 Computer Science/컴퓨터 네트워크
네트워크의 구성 (Network Architecture)네트워크를 구성하는 요소로는 “컴퓨터”, “네트워크 접속 장치”, “네트워크 전송 매체”로 분류된다.`PC(컴퓨터, 서버)`: 우리가 일상에서 주로 사용하는 웹 브라우저, 카카오톡, 인스타그램 등은 애플리케이션의 종류이다. 애플리케이션은 네트워크를 사이에 두고 다양한 데이터를 송수신한다.`네트워크 접속 장치`: 애플리케이션의 데이터를 정상적으로 전송하기 위한 장치로, 기본적으로 한 네트워크 내부에서 데이터 전송을 수행하는 “스위치”와 서로 다른 네트워크를 구분 짓고 연결하는 “라우터”가 있다.`네트워크 전송 매체`: 컴퓨터와 네트워크 접속 장치는 전송 매체에 의해 서로 연결되며, “유선 전송 매체(케이블)”와 “무선 전송 매체(전파)”로 분류된다. ..
[컴퓨터 네트워크] - 네트워크 이해 (Understanding Network)
·
💻 Computer Science/컴퓨터 네트워크
네트워크 개념 (Concept of Network)네트워크란 모뎀이나 LAN, 케이블, 무선 매체 등 통신 설비를 갖춘 컴퓨터로, 서로 연결하는 조직이나 체계 통신망을 말한다.NOTE!네트워크: 모뎀이나 LAN, 케이블, 무선 매체 등 통신 설비를 갖춘 컴퓨터로, 서로 연결하는 조직이나 체계 통신망즉, 통신 설비로 두 대 이상의 컴퓨터를 서로 연결하는 것이다. 네트워크로 연결된 컴퓨터는 시공간에 제약을 받지 않고 원하는 정보를 공유하며 활용할 수 있다. 다수의 컴퓨터를 네트워크를 통해 연결했을 때의 장점은 다음과 같다.데이터 공유 (Data Sharing) 데이터를 서버인 중앙 컴퓨터에 저장하면 하나의 데이터 파일에 해당하는 마스터 사본을 서버에 저장하고 필요할 때마다 사용자가 마스터 사본에 접근할 수 ..
[컴퓨터 구조] - 병렬 컴퓨터 (Parallel Computer)
·
💻 Computer Science/컴퓨터 구조
병렬 처리 (Parallel Processing) 병렬 처리(Parallel Processing)란 하나 이상의 연산을 동시에 수행하여 컴퓨터 연산 속도를 증가시키는 방법이다. 병렬처리기는 이러한 병렬 처리 기법을 구현한 컴퓨터 구조를 말한다. 병렬처리기는 순차처리기에 비해 꽤나 높은 성능 향상을 이끌어내었다. 컴퓨터 성능 평가 컴퓨터 성능을 평가하는 척도는 "시간"이다. 같은 작업량을 최단시간에 수행하는 컴퓨터가 가장 성능이 좋은 것이다. 그리고 이때 말하는 시간은 프로세서가 순수하게 프로그램을 실행하기 위해 소비한 시간인 "CPU 시간"을 말한다. CPU 시간은 다음과 같이 정의된다.NOTE!프로그램 CPU 시간 = 프로그램의 CPU 클록 사이클 수 X 클록 사이클 시간병렬 처리 시스템 분류 병렬처리..
[컴퓨터 구조] - 명령어 집합 (Instruction Set Architecture)
·
💻 Computer Science/컴퓨터 구조
기계적 명령어를 설계하는 것은 하드웨어 구조에 영향을 끼치기에 명령어의 종류와 형식, 주소 지정 방식 등 여러가지를 고려해야 한다. 지금부터 명령어 집합에 대해서 더 자세히 알아보도록 하겠다.명령어 구성 (Instruction Structure) 하나의 명령어는 0과 1의 비트들의 집합으로 필트(Field)라 불리는 여러 개의 비트 그룹으로 나뉘어진다. 이 중 대표적인 필드가 연산자 코드 필드(Operation Code)와 피연산자 필드(Operand Field)이다.연산자 코드 필드(Operation Code Field)피연산자 필드(Operand Field)`연산자 코드 필드`: 수행할 연산자의 종류를 나타내며 보통 op-code(Operation Code)로 불린다.`피연산자 필드`: 피연산자에 대..
[컴퓨터 구조] - 기계어와 어셈블리어 (Machine Language, Assembly language)
·
💻 Computer Science/컴퓨터 구조
기계어와 어셈블리어를 이해하면 컴퓨터가 내부에서 어떻게 동작하는지를 더욱 자세히 알 수 있고 컴퓨터 구조를 소프트웨어 관점에서 바라볼 수 있다. 실제로 기계어와 어셈블리어를 사용하여 프로그래밍을 하는 일은 드물지만 이를 이해하면 고급 언어를 사용할 때 더 효율적인 프로그래밍이 가능하다.기계어(Machine Language) 컴퓨터의 종류에 따라 컴퓨터가 이해할 수 있는 기계어의 모양은 조금씩 다르다. 이 포스팅에서는 Pep/8이라는 가상 머신을 기준으로 내용을 전개하도록 하겠다. (기계어 코드 표를 참고하면 더 자세히 공부할 수 있다.)  기계어로 "Hi"를 출력하려면 다음과 같은 기계어 프로그램을 입력해야 한다.메모리 주소기계어(16진수)기계어(2진수)00000003000650 00 4850 00 69..
loading