코드를 작성하는 의도와 목적이 명확하며, 다른 사람이 쉽게 읽을 수 있어야 함.가독성단순하고 직접적이며 읽기 쉬운 코드.최대한 적은 라인으로 구현한 코드.클린코드 ( 읽기 쉬운 코드 ) 는 개발 기간을 단축하는 효과적인 방법이 될 수 있음.코드를 읽는 시간 : 코드를
프로그래밍 패러다임명령형 프로그램절차적 프로그래밍객체 지향 프로그래밍선언형 프로그래밍함수형 프로그래밍함수형 프로그래밍ex) SQL, Scala, Clojure과정Process보다 결과Result 중심.어떻게How 보다 무엇What을 할 것인가를 표현데이터는 불변immu
다른 회사 제품에 이용되는 소프트웨어나 하드웨어를 개발하는 회사.1st party : 하드웨어 생산자가 직접 소프트웨어를 개발2nd party : 하드웨어 생산자인 모기업과 자사간의 관계에서 소프트웨어 개발3rd party : 하드웨어 생산자와 직접적인 관계없이 소프트
Git : 버전 관리 프로그램Github : 버전 관리, 소스 코드 공유, 분산 버전 제어 등등이 가능한 원격 저장소버전 관리가 필요한 이유개발자 간 협업을 위해 전체 개발 소스를 공유하며 개발 파트를 나눌 수 있고, 같은 모듈을 개발하더라도 소스를 공유하며 개발할 수
Model: 백그라운드에서 동작하는 비즈니스 로직(데이터) 처리View: 정보를 화면으로 보여주는 역할Controller: 사용자의 입력 처리와 흐름 제어 담당. 화면과 Model, View를 연결프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서
짧은 주기로 설계, 개발, 테스트, 배포 과정을 반복.요구사항을 작은 단위로 쪼개 그에 대한 솔루션을 만들고 빠르게 보여주며 요구사항에 대한 검증을 함.짧은 주기의 신속한 반복 작업을 통해 실제 작동 가능한 소프트웨어를 개발하여 지속적으로 제공하기 위한 소프트웨어 개발
객체지향 프로그래밍의 5가지 설계원칙 SOLID객체는 오직 하나의 책임을 가져야 한다. ( 객체는 오직 하나의 변경 이유만을 가져야 한다.)클래스의 목적을 명확히 하여 구조가 난잡해지거나 수정 사항이 불필요하게 넓게 퍼지는 것을 예방. 기능을 명확히 분리.객체는 확장에
의미 키워드 장점 단점
작은 단위의 테스트 케이스를 작성하고, 이를 통과하는 코드를 추가하는 단계를 반복하여 구현.짧은 개발 주기의 반복에 의존. Red: 실패하는 테스트 코드 먼저 작성Green: 테스트 코드를 성공시키기 위한 실제 코드 작성Blue: 중복 코드 제거, 일반화 등 리팩토링실
Representational State Transfer 자원의 표현: 자원의 표현에 의한 상태 전달 상태(정보) 전달: ex) JSON, XML 개념 HTTP URL을 통해 자원 resource를 명시하고, HTTP Method(POST, GET, PUT,
Operating System컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임.컴퓨터의 하드웨어 관리하드웨어: CPU, 메모리, 디스크, 키보드, 네트워크 등등컴퓨터 하드웨어간의
자신만의 고유 공간과 자원을 할당받아 사용CPU 시간, 운영되기 위한 주소 공간.Code, Data, Stack, Heap 구조의 독립된 메모리 영역메모리 상에서 실행중인 프로그램.최소 하나의 쓰레드 보유. 각각 별도의 주소공간을 독립적으로 할당 받음.다른 쓰레드와 공
하나의 응용프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업(태스크)를 처리하도록 하는 것.여러 자식 프로세스 중 하나에 문제가 발생해도, 다른 프로세스로 영향이 확산되지 않음.Context Switcing 오버헤드Context Switching 과정
멀티 스레드 프로그래밍에서 함수, 변수, 객체에 동시 접근이 이루어져도 정상 실행하는 것.하나의 함수가 한 스레드로부터 호출되어 실행중일 때, 다른 스레드가 그 함수를 호출하여 동시에 실행하더라도 각 스레드에서 올바른 결과가 나오는 것.어떤 함수가 한 스레드에 호출되어
프로세스 : 운영체제가 자원을 할당하는 단위프로세스 주소 공간 : 메모리를 할당받은 프로세스가 자신만의 방법으로 메모리 공간을 관리하는 구조한정된 메모리를 효율적으로 사용하기 위함함수의 호출에 관한 지역변수, 매개변수가 저장되는 영역함수의 호출과 함께 Stack 영역
CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 예외 상황으로 인해 현재 진행 중인 프로그램을 중단하고 발생한 일을 처리한 후, 다시 실행 중인 작업으로 돌아오는 것.정전 또는 파워에 이상 발생 시 동작CPU 문제 발생시 동작타이머에 의한 인터럽트
사용자 모드 : 일반적인 응용 프로그램 구동 환경커널 모드 : 커널이 구동되는 환경. OS 시스템에 영향 주는 명령어 실행 가능.처음 운영체제 구동 시 초기화 작업, 부팅 과정에서 필요한 과정 수행하기 위해 커널 모드로 시작 후, 사용자 모드로 전환인터럽트 : HW가
다중 프로그램 OS의 기본여러 프로세스들이 CPU 교환하며 컴퓨터를 생산적으로 만듦CPU 를 선점한 프로세스가 대기하는 시간을 효율적으로 사용하기 위해 사용CPU 이용률을 최대화 하기 위해 항상 실행 중인 프로세스를 가지게 하는 것.한 프로세스를 실행 가능한 시점까지
생성 create : 프로세스가 생성되는 중실행 running : 프로세스가 프로세서를 차지하여 명령어들이 실행 중준비 ready : 프로세스가 프로세서를 사용하고 있지 않지마녀, 언제든 사용할 수 있는 상태. CPU 할당 대기대기 waiting : 프로세스 입출력 완
프로세스가 여러 개일 때, CPU 스케줄링을 통해 관리하는 것.CPU가 프로세스를 구분하기 위해서 프로세스 특징 필요 : Process MetadataProcess ID : PID 프로세스 고유 식별 번호Process State : 프로세스 상태Process Prior
주기억장치에 적재한 하나의 프로세스와 보조기억장치에 적재한 다른 프로세스의 메모리를 교체하는 기법프로세스가 실행되려면 메모리에 올라가야 함. 현재 메모리에서 다른 저장공간으로 옮겨졌다가 다시 돌아오는 식으로 교체되는 것.현재는 사용하지 않음.프로세스 단위로 스와핑을 하
교착상태둘 이상의 프로세스, 심하면 운영체제 자체도 함께 멈추는 현상4가지 조건을 모두 만족하면 교착상태 발생상호 배제 Mutual exclusion점유 상태로 대기 Hold and wait선점 불가 No preemption순환성 대기 Circular wait자원 자체
Signaling 매커니즘lock을 걸지 않은 쓰레드도 Signal을 보내 lock 해제 가능wait, signal 2개의 atomic operaions 사용wait : 세마포어 카운트 - 1세마포어 카운트가 <= 0 이 되면 lock 실행signal : 세마포어
임계 구역 : 둘 이상의 프로세스가 동시에 접근하면 문제가 발생하는 영역둘 이상의 프로세스가 임계 구역 동시에 접근하려고 하면 Race Condition 레이스 컨디션이 발생함하나의 자원을 두고 여러 프로세스가 경쟁하는 상황직면하는 제어 문제Mutual exclusio
Main Memory, Physical Memory, 주기억장치CPU가 직접 접근할 수 있는 기억 장치.프로세스가 실행되려면 프로그램 코드가 메인 메모리에 적재되어야 한다.Virtual Memory프로그램 용량이 메인 메모리보다 클 때 사용실제 물리 메모리 개념과 사용
프로세스를 메모리에 적재하고, 제거하는 일이 반복되면외부 단편화 : 프로세스 사이사이에 작은 메모리가 중간 중간 존재내부 단편화 : 프로세스가 요청한 양보다 더 많은 메모리 할당 시 발생단편화가 발생한다.외부 단편화를 해소하기 위해 페이징내부 단편화를 해소하기 위해 세
메모리에 못 쓰는 공간이 생기는 것프로세스가 필요한 메모리 공간보다 많은 공간을 할당했을 때, 남는 메모리 조각프로세스들 사이에 50MB 만큼의 공간이 있는데, 30MB의 프로세스를 넣으면 20MB의 작은 빈 공간이 생김이 공간은 너무 작아서 다른 작업들이 사용하지 못
컴퓨터에서 파일이나 자료를 쉽게 찾을 수 있도록 유지, 관리하는 방법저장매체의 많은 파일을 관리하는 방법커널 영역에서 동작파일을 빠르게 읽기, 쓰기, 삭제 등 기본적인 기능을 원활히 수행하기위한 목적계층적 디렉토리디스크 파티션 별로 하나씩 둘 수 있음파일관리 : 파일
데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것한 개의 데이터 요청에 대한 서버의 응답이 이루어질 때까지 대기해야 함.데이터의 요청과 결과가 동시에 일어나지 않는 것서버에게 데이터를 요청한 후, 요청에 따른 응답을 기다리지 않고 다른 외부 활동을 하거나, 서버에
주기억장치에서 자주 사용하는 프로그램과 데이터를 저장하여 속도를 빠르게 하는 메모리주기억장치보다 크기가 작음캐시기억장치와 주기억장치 사이에서 정보를 옮기는 것 : 사상(Mapping 매핑)직접 매핑(Direct Mapping), 연관 매핑(Associate Mappin
페이지 교체 알고리즘페이징 기법으로 메모리를 관리하는 운영체제에서, 페이지 부재가 발생하여 새로운 페이지를 할당하기 위해 현재 할당된 페이지 중 어느 것과 교체할 지 결정하는 방법page-fault 발생 비율을 줄이는 것이 목표.페이지 부재 횟수, 페이지 성공 횟수 기
Media Access Control Address 인터넷을 할 수 있는 이더넷 기반 기기에 모두 하나씩 할당된 고유한 ID. PC의 랜카드나 스마트폰의 와이파이 모듈에도 1개씩 할당되어있음. 인터넷과 직접적으로 연결되어 있지않지만 블루투스를 사용하는 장치(스마트워치,