전체 글 30

Lecture 04: 계획 (프로젝트 관리와 계획) - 1

경희대학교 김정욱 교수님의 소프트웨어 공학 수업을 기반으로 정리한 글입니다.계획계획누가 무엇을 어느 기간동안 어떻게 개발해야 하는지 예측하는 작업구현해야 할 기능과 요구하는 성능 및 인터페이스 성능에 따라 개발범위를 정함구현할 프로젝트 특징과 자원 및 생산성에 따라 비용을 예측계획의 부재높은 불확실성일정의 차질, 경비 초과, 저품질, 높은 유지보수 비용프로젝트의 실패체계적이고 명확한 계획을 위한 6가지1. 문제 정의2. 타당성 분석3. 소프트웨어 개발 비용 산정4.소프트웨어 개발 비용 산정 기법5. 일정 계획6. 위험 분석 이러한 계획이 완료 되면 산출물로 계획서를 만들게 된다.문제 정의1. 문제 정의소프트웨어 개발의 첫 작업무엇을 개발할 것인지 명확히 정의 ex) 모바일 게임, PC 게임개발 범위 설정..

Lecture 03: 소프트웨어 공학과 개발 프로세스 - 2

경희대학교 김정욱 교수님의 소프트웨어 공학 수업을 기반으로 정리한 글입니다.소프트웨어 개발 생명주기 모델소프트웨어 개발 생명주기 모델Plan and Document선형 순차적 모델 ex) 폭포수 모델, V 모델진화적 프로세스 모델 ex) 프로토타입 모델, 나선형 모델단계적 개발 모델 ex) 점증적 개발 모델일정 중심 설계 모델No Document주먹 구구식 모델애자일 프로세스 모델※ Document는 각각의 단계에서 만든 산출물로, 그 산출물을 보며 잘 됐는지 검토하는 용도이다. 하지만, 애자일 프로세스는 빠르게 사이클을 돌고 사용자와 적극적으로 만나고, 미팅을 자주하는 걸 목적으로 하다보니 속도가 생명이기에 Documnet를 만들지 않는다.주먹 구구식 모델주먹 구구식 모델공식적인 가이드라인이나 프로세스..

Lecture 02: 소프트웨어 공학과 개발 프로세스 - 1

경희대학교 김정욱 교수님의 소프트웨어 공학 수업을 기반으로 정리한 글입니다.소프트웨어의 정의소프트웨어 (Software)soft (부드러운) + ware (제품) 컴퓨터를 비롯한 시스템에서 특정 작업을 수행하게 하는 프로그램의 집합으로,그 수행에 필요한 절차, 규칙, 문서 등의 총칭이다. 개발 과정에서 생성되는 모든 산출물(자료 구조, 데이터베이스 구조, 테스트 결과 등)과각 단계에서 만들어지는 문서와 사용자 메뉴얼 등을 포함한다. ※ 프로그램: 프로그래밍한 원시 코드 (Source Code)소프트웨어의 특징소프트웨어의 특징1. 비제조성2. 소모되지 않는 소프트웨어3. 사용자의 요구에 따라 새롭게 생산4. 변경성 (Changeability)5. 복제 가능 (Duplicability)소프트웨어의 특징 (하..

Lecture 05: Instructions - Language of the Computer - 2

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Signed and Unsigned Numbers우리는 10진법을 사용하지만 컴퓨터는 2진법을 사용한다. (0 or 1)▶ base 2 -> base 10▶ MSB - LSBLeast significant bit (LSB): The right most bit in a MIPS word (작다)Most significant bit (MSB): The left most bit in a MIPS word (크다)※ signed bit의 경우, MSB가 0이면 양수, 1이면 음수가 되기에 MSB가 중요하다.Signed and Unsigned Numbers비트만 봐서는 signed bit인지, unsigned bit인지 알 수 없고,unsig..

Lecture 04: Instructions - Language of the Computer - 1

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Instruction (Introduction)▶ Compiler: high-level language -> assembly language, Assembler: assembly language -> binary machine language ※ assembler: 단순히 instruction에 대응하는 binary 조합을 dictionary를 보고 찾는 것이다. Instruction (명령어)Assembly Language Notation(표기법)으로, 컴퓨터한테 명령을 할 때 쓰는 명령어이다.이때 instrucion이 모여 있는 집합을 instruction set이라고 한다. 이렇게 컴파일된 결과를 binary로 바꿨을 때(ass..

Lecture 03: Computer Abstractions and Technology - 2

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Measuring Performance컴퓨터 구조에선 speed가 performance measuring의 기준이다. ※ Comparing performances may different depending on the situation 즉, 컴파일러를 어떻게 효율적으로 잘 하고, 하드웨어 디자인을 어떻게 잘 하느냐,그래서 결국, 속도가 얼마나 빠르냐가 가장 중요하다. There are a number of measurements of performanceClock speedCPI (Clock Cycles per Instrucion)MIPS (Millions of Instructions per Second)Etc.※ 여기서 MIPS는 ..

Lecture 02: Computer Abstractions and Technology - 1

경희대학교 김정욱 교수님의 컴퓨터 구조 수업을 기반으로 정리한 글입니다.Why we Study Computer Architecture?▶  Code (e.g, Python) 컴퓨터는 binary(0 or 1)로만 이루어진 하드웨어이기 때문에 위 code와 같은 high level language는 이해하지 못 한다.때문에 컴퓨터가 이해할 수 있는 low level language로 바꿔줘야 한다. 이때, 가장 중요한 게 CPU이다.▶ Inside of Computer ※ Register: CPU 내의 소형 고속 메모리 저장 위치로, 사칙 연산 처리 등에 사용된다.Class of Computing Applications1. PC(Personal Computer)Personal의 뜻처럼, 각자 용도, 예를 ..

git & GitHub 기초 개념

git & GitHub파일파일(수정)파일(수정1)파일(최종)파일(진짜 최종)파일(이게 진짜 최종)파일(이게 진짜 진짜 최종)어떻게 하면 버전을 잘 관리할 수 있을까?git코드 관리하는 것으로, 버전 관리 도구이다.이를 통해 여러 개 코드 합치기, 이전 버전으로 돌아가기 등이 가능하다. github코드 저장소이다.git으로 관리한 코드는 push를 통해 GitHub에 업로드가 가능하다.(git과 GitHub은 연동)Commit, Push/Pull▶ commit, push/pull1. CommitCommit(로컬 작업 디렉토리 -> 로컬 저장소)작업을 했다면 작업 내용을 저장해야 하는데,이때 git에서 변경 내용을 저장하는 것을 commit이라고 한다. 로컬 PC의 작업 추가 또는 수정 내용을 깃 로컬 저장..

DevOps/Git 2024.09.24

Computer Network Lecture.02 MAC

경희대학교 이성원 교수님의 컴퓨터 네트워크 수업을 기반으로 정리한 글입니다.ContentsBasic TerminologiesMAC OverviewRandom Access ProtocolsControlled Access ProtocolsChannelization ProtocolsBasic TerminologiesFive Basic Terminologies▶ 컴퓨터 네트워크를 이해하기 위한 기본 단어 1. Message송신하는 쪽에서 수신하는 쪽으로 보내는 정보로, 0과 1의 조합을 띈 형태를 주로 말한다.2. Sender메시지를 보내는 장치로, 송신단이라고도 한다.3. Receiver메시지를 받는 장치로, 수신단이라고도 한다.4. MediumSender가 Receiver에게 보낼 때 필요한 1계층 통신 매..

Computer Network Lecture.01 Introduction

경희대학교 이성원 교수님의 컴퓨터 네트워크 수업을 기반으로 정리한 글입니다.ContentsIntroduction (with Physical Computing & CPS)OSI 7 LayerOpen Source HardwaresSingle Board Computer (SBC)LinuxIntroduction (with Physical Computing & CPS)Computer Network(ing)컴퓨터들이 연결된 것 What is Computer?프로그램 가능하여 개발자가 만든 소프트웨어가 들어갈 수 있는 것 Latest DefinitionNetworking > Network과거엔 정해진 기능을 하는 장치들을 연결했다면,지금은 그렇지 않다. 우리가 연결하는 장치들은 컴퓨터들이고 flexible하다.필요한..