목록분류 전체보기 (139)
배고픈 개발자 이야기
운영체제 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층- 컴퓨터 시스템의 자원을 효율적으로 관리 자원 : 프로세서, 기억장치, 입출력장치 / 프로세스, 파일, 메시지 좁은의미 : 커널 - 부팅후 메모리 상주 넓은의미 : +주변 시스템 유틸리티를 포함한 개념 -single tasking - MS-DOS -multi tasking - UNIX, MS Windows -single user - MS-DOS, MS Windows -multi user - UNIX, NT server -batch processing -time sharing(빠른 응답 시간), interactive한 방식 사람이 느끼기에 빠른시간에 처리, 자원을 최대한 활용 -Realtime..
6. 보조저장장치 6.1 자기 디스크 자화될 수 있는 물질로 코팅된 플라스틱(플로피)이나 금속(하드)을 이용한 원형 디스크 구성요소 -원형 평판(circular platter) : 하드디스크(알루미늄) / 2,3,4장 -헤드(head) : R/W, 전도성 코일을 통하여 표면을 자화(magnetize) 평판수*2 -디스크 팔(disk arm) : 헤드를 이동시키는 장치 -구동장치(actuator) : 디스클 팔을 움직이는 모터 PATA -> SATA, SCSI(서버) 섹터 : 디스크에 한 번에 쓰거나 읽는 데이터 크기의 최소 단위 섹터간 갭 : 섹터 구분 간격 트랙간 갭 : 간섭 오류 방지 등각속도 : 제어를 간단히 하기 위해 안쪽 바깥쪽 크기가 다른 섹트의 데이터를 동일하게 함 디스크 형식화 : 섹터의 ..
3. 컴퓨터 산술과 논리 연산 3.1 ALU의 구성요소 CPU : ALU, CU, R-S 산술 연산장치 : 산술 연산들(사칙연산)을 수행 논리 연산장치 : 논리 연산들(AND, OR, XOR, NOT등)을 수행 시프트 레지스터 : 비트들을 좌측 혹은 우측으로 이동시키는 기능을 가진 레지스터 보수기 : 2진 데이터를 2의 보수로 변환(음수양수 : 보수화) 상태 레지스터 : 연산 결과의 상태를 나타내는 플래그3.2 정수의 표현 2진수 체계 : 0, 1, 부호 및 소수점으로 수를 표현 ex) -13.625 = -1101.101 부호 없는 정수 표현(양수만 나타냄)소수와 음수의 표현 소수 표현 2^n, n자리로 소수를 표현음수 표현 부호화-크기 표현 : 크기앞에 0(양수), 1(음수) 부호로 표현, 실제로 사용..
1. 컴퓨터 시스템 개요 1.1 컴퓨터의 기본 구조 컴퓨터시스템의 구성 = H/W+S/W (응용 소프트웨어 - 시스템 소프트웨어 - 하드웨어) 컴퓨터 하드웨어의 주 구성요소(를 Bus구조로 연결) 1.중앙처리장치(CPU,프로세서) 2.기억장치 : 주기억장치 - 직접데이터엑세스 RAM, ROM / 보조저장장치 - 주기억으로 옮김 디스크, CD-ROM 3.입출력장치 하드웨어 : 컴퓨터 자체를 구성하는 물리적인 실체들(신호전달 및 모니터출력) 소프트웨어 : 실제구동하기 위해 명령어로 구성되는것 1.시스템 소프트웨어 : OS, library code 2.응용 소프트웨어 : 워드, 웹브라우저 등 중앙처리장치(Central Processing Unit: CPU) 프로세서 : CONTROL, ALU, REG 프로그램..

소프트웨어 디자인 패턴에서 싱글톤 패턴을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이우에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글톤 패턴이라고 한다. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다. 파이썬의 모듈은 그 자체로 싱글톤이다. 자바는 생성자를 private으로 선언하여 상속이 불가능함을 지정하기도 한다.

팩토리 메서드 패턴은 객체지향 디자인 패턴이다. Factory method는 부모(상위)클래스에 알려지지 않은 구체 클래스를 생성하는 패턴이며, 자식(하위) 클래스가 어떤 객체를 생성할지를 결정하도록 하는 패턴이기도 하다. 부모(상위) 클래스 코드에 구체 클래스 이름을 감추기 위한 방법으로도 사용한다. Factory Method라는 패턴 이름이 적절하지 못한데, 이름으로 인해 객체를 생성하는 메소드를 Factory method라 오해하는 개발자가 많이 있다. 이런 생성 메소드가 모두 Factory method 패턴을 사용하는 것은 아니다. Template Method의 생성 패턴 버전으로 볼 수 있는데 Template method를 알지 못한다면 그 패턴을 먼저 이해하는 것이 Factory Method를..

커맨드 패턴이란 요청을 객체의 형태로 캡슐화 하여 사용자가 보낸 요청을 나중에 이용할 수 있도록 매서드 이름, 매개변수 등 요청에 필요한 정보를 저장 또는 로깅, 취소할 수 있게 하는 패턴이다. 커맨드 패턴에는 명령(command), 수신자(receiver), 발동자(invoker), 클라이언트(client)의 네개의 용어가 항상 따른다. 커맨드 객체는 수신자 객체를 가지고 있으며, 수신자의 메서드를 호출하고, 이에 수신자는 자신에게 정의된 메서드를 수행한다. 커맨드 객체는 별도로 발동자 객체에 전달되어 명령을 발동하게 한다. 발동자 객체는 필요에 따라 명령 발동에 대한 기록을 남길 수 있다. 한 발동자 객체에 다수의 커맨드 객체가 전달될 수 있다. 클라이언트 객체는 발동자 객체와 하나 이상의 커맨드 객..

옵저버(특정 목록의 변화 관찰)로 객체에 등록하여 객체가 직접 통지하도록 하는 패턴 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. + 발행/구독 모델 1) 기본구성 어떤 상태를 관리하는 Subject 객체(상태머신,생산자,Observable)가 있고 , 이 객체에서 일어나는 상태 변화에 따라서 해당 이벤트를 받길 원하는 옵저버(관찰자,소비자)들은 매니져 객체에 자신을 등록 한다 그 후에, Subject 객체에서 어떤 상태가 변경 되었을 때 , 자신에게 등록된 옵저버들에게 이벤트를 notify 해주는게 옵저버 패턴의 주요 골자이며, Subject 객체는 관찰자들에 대해서 유연하게 커플링 되어 있게 된다. 즉 매니저 객체가 소비자들에 대해서 정확한 정보를 알 필요가 없이, 소비자들이 알아서 Sub..