Computer Science

    Introduction Advanced OOP

    Introduction Advanced OOP

    Advanced OOP-0-Introduction 소프트웨어 왜 문제인가? 소프트웨어 위기 위기의 원인? 소프트웨어 개발 프로세스의 복잡성 소프트웨어 공학의 미성숙 소프트웨어 규모가 커짐 소프트웨어의 품질 품질 문제는 정해진 시간에, 정해진 노력으로, 정해진 요구사항을 해결하지 못함 소프트웨어는 보이지 않기 때문에 품질 판단이 더욱 어려움 소프트웨어의 심각성 소프트웨어가 대형화되면서 더욱 위기가 심각해짐 소프트웨어 대형화로 인한 문제 협업의 문제 : 설계의 중요성 요구사항의 문제 : 요구사항은 계속해서 늘어남 소프트웨어 심각성 소프트웨어 오류의 심각성 눈에 보이지 않아서 오류의 심각성을 중요치않게 생각함 SW 오류로 생명의 손실 발생 가능 ex:) 자율주행사고 경제 손실 발생 가능 좋은 SW란? 좋은 S..

    [유닉스 이론과 실습] ch13. 배시쉘 프로그래밍

    [유닉스 이론과 실습] ch13. 배시쉘 프로그래밍

    (본 강의 노트는 한빛 미디어의 책을 기반으로 하고 있습니다) ch13. 배시쉘 프로그래밍 학습목표 다양한 쉘 변수를 이해하고 활용하는 방법을 익힌다 사용자로부터 입력을 받아 스크립트 파일에서 처리하는 방법을 익힌다 다양한 연산자와 문자열 테스트, 파일 테스트를 활용하는 방법을 익힌다 조건문과 반복문의 사용 방법을 익힌다 함수를 이용해 스크립트를 작성하는 방법을 익힌다 스크립트의 실행 오류를 찾아 수정하는 방법을 익힌다 목차 쉘 스크립트 쉘 변수 사용하기 사용자로부터 입력 받기 연산자 제어문 함수 디버깅 01. Shell 스크립트 스크립트 인터프리터라 불리는 다른 프로그램에 의해 실행되는 프로그램 자바스크립트, 파이썬 shell 스크립트란? Shell이 실행하는 프로그램 유닉스 명령 + Shell이 제공..

    [유닉스 이론과 실습] ch04. vi 사용법 익히기

    [유닉스 이론과 실습] ch04. vi 사용법 익히기

    (본 강의 노트는 한빛 미디어의 책을 기반으로 하고 있습니다) ch04. vi 사용법 익히기 학습목표 유닉스에서 사용하는 편집기의 종류를 알아본다 대표적인 화면 편집기인 vi의 사용 방법을 익힌다 vi의 환경 설정방법을 익힌다 목차 유닉스 편집기 vi의 사용법 01. 유닉스의 편집기 화면 편집기 vi vi editor는 리눅스 패밀리에서 가장 유명하고 classical한 텍스트 edit tool 대부분의 리눅스에서 사용 가능함 사용자 친화적인 환경이라서 적응되면 사용하기 편함 emacs 막강한 기능 제공, 설치해서 사용해야 함 모드형과 비모드형 모드형 명령모드에서 입력한 키는 명령으로, 입력모드에서 입력한 키는 데이터로 간주 모드를 바꾸기 위한 특수 키가 있음 비모드형 입력한 모든 키는 데이터로 간주 M..

    Introduction UNIX

    Introduction UNIX

    UNIX-0-Introduction Computing Era 1940~1970~2020 1940~1970 Turing Machine, ENIAC, machine language, assembly language IBM, Fortan, Algol, Cobol 1970 C, UNIX, OS 1970~2020 Sun OS MS-DOS Windows, Apple, GNU LINUX, Google SAMSUNG, iPhone UNIX Unix란? a family of multitasking(프로세서가 여러개), multiuser(late 1970s) computer OS that derives from the original AT&T(전신전화 회사) Unix 1970년대에 Bell Labs에서 Ken Thomps..

    [Head First Design Patterns] 03 데코레이터 패턴

    [Head First Design Patterns] 03 데코레이터 패턴

    (본 강의 노트는 한빛 미디어의책을 기반으로 하고 있습니다) 03 데코레이터 패턴 Decorator Pattern 목적 객체에 추가적인 책임을 동적으로 부여함. 데코레이터는 서브클래싱(상속)을 사용하지 않아도 유연하고 융통성 있는 기능 확장을 가능하게 함 문제 조금씩 기능을 추가하기 위해 새로운 클래스를 생성하는 경우 상속으로 문제를 풀면 너무 많은 상속 관계가 발생할 수 있음 상속을 사용하지 않고 새로운 기능을 추가할 수 있는가? 디자인 패턴 요소 요소 설명 이름 데코레이터(Decorator) 문제 조금씩 다른 다양한 종류. 늘어날수록 확장 어려움 해결방안 상속을 사용하지 않고 연관으로 필요한 기능 추가. 실행시점 확장 Extension at runtime (not compile time) 결과 확장성..

    [쉬운 영어로 읽는 최신 전산 영어] 1 Introduction to Computer System(3)

    [쉬운 영어로 읽는 최신 전산 영어] 1 Introduction to Computer System(3)

    (해당 강의노트는 한빛아카데미의 을 기반으로 작성되었습니다) 1장 파트 2 CH01) Introcudtion to Computer System Section 02 The Structure of Computer(2) Memory volatile memory 휘발성 메모리 데이터를 유지하기 위해서는 Power가 필요함 Random Access Memory(RAM) Vs. Sequencial Acess Memory : 최초의 메모리 장치는 천공카드임. 이는 순차적으로 메모리를 저장하는 방식이었음 Vs. Direct Access Memory : 데이터 헤드가 있어서 헤드의 위치에 따라 데이터를 읽을 수 있음, Sequencial Acess Memory보다 데이터 접근 속도가 빠름 RAM에 있는 데이터는 주소를 ..

    [유닉스 시스템 프로그래밍] Ch02. 파일 입출력

    [유닉스 시스템 프로그래밍] Ch02. 파일 입출력

    (본 강의 노트는 한빛 아카데미의 책을 기반으로 하고 있습니다) Ch02. 파일 입출력 학습목표 유닉스에서 파일 입출력의 특징을 이해한다. 저수준 파일 입출력 함수를 사용할 수 있다 고수준 파일 입출력 함수를 사용할 수 있다 임시 파일을 생성해 파일 입출력을 할 수 있다 목차 1. 저수준 파일 입출력 2. 고수준 파일 입출력 3. 파일 기술자와 파일 포인터간 변환 4. 임시 파일 사용 01. 저수준 파일 입출력 파일 기술자 File Descriptor 파일을 설명해주는 인자 현재 열려있는 파일을 구분하는 정수값 저수준 파일 입출력에 열린 파일을 참조하는데 사용 파일 생성과 열고 닫기 파일 열기 : open( ) #include #include #include int open(const char *path..

    [Head First Design Patterns] 02 옵저버 패턴

    [Head First Design Patterns] 02 옵저버 패턴

    (본 강의 노트는 한빛 미디어의 책을 기반으로 하고 있습니다) 02 옵저버 패턴 옵저버 패턴이란? 목적 객체간 일대다 의존 관계를 정의함 한 개 객체 상태가 변화될 때, 그 객체와 의존 관계에 있는 모든 객체들이 자동으로 알림을 받고 상태를 갱신 옵저버 패턴은 일종의 푸쉬 서비스를 구현 뉴스 뉴스 사이트를 방문해서 매번 새로운 뉴스가 있는지 확인하는 것은 번거로움 구독 서비스를 신청 시, 새로운 뉴스가 있으면 알려주는 것이 편리함 호텔의 모닝콜 서비스 일어날 시간을 확인하기 위해 자다 깨다를 반복하는 것은 어려움 모닝콜을 원하는 시간에 받거나 알람을 맞추는 것이 바람직함 전화번호 프로그램 상황: 정보를 확인하기 위해 마우스로 화면의 버튼을 클릭하는 경우 버튼이 클릭되었는지 프로그램에서 계속 확인하는 것은..