분류 전체보기(126)
-
컴퓨터 시스템의 동작
컴퓨터 시스템은 보통 다음 순서대로 작업을 처리한다. 1. 입력 장치로 정보 입력 -> 메모리에 저장 2. 메모리에 저장한 정보를 인출 -> 연산 장치에서 처리 3. 처리 정보를 출력 장치에 표시하거나 보조 기억장치에 저장 입력 장치로 컴퓨터에 유입되는 정보는 명령어와 데이터로 분류한다. # 명령어 실행할 산술 & 논리 연산의 동작을 명시. 어떤 작업을 수행하는 명령의 집합이다. 명령어의 구조는 다음과 같다. - 연산 부호 : 프로세서가 실행할 동작인 연산을 지정 (+, -, \, %, ^, 시프트 등) - 피연산자 : 연산할 데이터 정보를 저장. 데이터 자체는 레지스터나 메모리, 외부 장치 등에 있고, 보통은 데이터 자체 보다는 데이터 위치 주소를 저장한다. 누산기를 통해 명령어 수행 중 연산 결과를 ..
2023.11.01 -
컴퓨터 하드웨어 구성
운영체제(OS)란 무엇일까? 쉽게 말해서 컴퓨터 하드웨어를 관리하는 소프트웨어이다. 그럼 하드웨어는 어떻게 구성되어있는가? 하드웨어는 크게 프로세서, 메모리, 주변장치로 구성된다. ## 프로세서 프로세서(CPU)는 컴퓨터 하드웨어에 부착한 모든 장치의 동작을 제어하고 명령을 실행한다. 프로세서는 연산장치, 제어장치, 레지스터로 구성되고, 이들은 내부 버스로 연결한다. ## 레지스터 CPU 내부에 있는 일시적 저장 공간. 사용자가 직접 정보를 바꿀 수 있는지의 여부에 따라 가시/비가시 레지스터로 구분 가능하다. ### 가시 레지스터 사용자가 운영체제와 사용자 프로그램을 이용하여 정보를 변경할 수 있는 레지스터. 데이터 레지스터와 주소 레지스터가 있음. 데이터 레지스터(DR) : 함수 연산에 필요한 데이터를..
2023.11.01 -
설계 품질과 트레이드오프
객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다. 적절한 비용 안에서 쉽게 변경할 수 있는 설계는 응집도가 높고 서로 느슨하게 결합되어 있다. 중요한 것은 객체의 상태가 아닌, 객체의 행동에 초점을 맞추는 것이다. 객체 지향 설계는 두가지 방법이 있다. 첫 번째 방법은 상태(데이터)를 분할의 중심축으로 삼는 방법이고, 두번째 방법은 책임을 분할의 중심축으로 삼는 방법이다. 객체지향 설계는 상태(데이터)가 아니라 책임에 초점을 맞춰야 한다. 객체의 상태는 구현에 속하기 때문이다. 허나 책임은 인터페이스에 속한다. 인터페이스(책임) 뒤로 구현(상태)을 갭출화해야 안정적인 설계를 얻을 수 있다. 즉, 데이터를 중심으로 설계하면 안 된다. 이 ..
2023.10.01 -
역할, 책임, 협력
객체지향의 본질은 협력하는 객체들의 공동체를 창조하는 것이다. 객체지향의 핵심은 적절한 객체를 찾고, 적절한 책임을 할당하는 과정에서 드러난다 # 협력 객체는 고립된 존재가 아닌 다른 객체와 협력하는 사회적인 존재이다. 객체들은 협력하여 시스템 기능이라는 큰 목표를 달성한다. 두 객체 사이 메시지 전송/수신 을 통해 커뮤니케이션하며 목표를 이룬다. 매시지를 수신한 객체는 스스로 메시지 처리할 방법을 선택하여 내부에 구현한 메서드를 실행해 요청에 응답한다. 각 내부 구현은 외부에서 직접 접근을 못하게 캡슐화를 한다. 정리해보면, 객체가 자신이 할당된 책임을 수행하던 중에 외부의 도움이 필요하면 적절한 객체에게 메시지를 전송해서 협력을 요청한다. 이러한 협력이 연쇄되어 애플리케이션의 기능이 구현된다. 상태는..
2023.09.30 -
객체지향 프로그래밍
# 영화 예매 시스템 영화관 예매 시스템을 만든다고 가정해보자. 영화표를 구매할 때 할인을 받을 수 있다. 할인액을 결정하는 데 두 가지 규칙이 존재하는데, 하나는 할인 조건(discount condition), 다른 하나는 할인 정책(discount policy)가 있다고 보자. 할인 조건은 할인 여부를 결정하며 '순서 조건'과 '기간 조건'이 있다. 순서 조건은 상영 순번이 일치하면 할인을 해주는 것이고, 기간 조건은 상영 시작 시간이 해당 기간 안에 포함하면 할인해주는 것이다. 할인 정책은 '금액 할인 정책' 과 '비율 할인 정책'이 있다. 금액 할인 정책은 예매 요금에서 일정 금액을 할인해주는 방식이며, 비율 할인 정책은 일정 비율만큼 할인해주는 방식이다. 영화별로 하나의 할인 정책만 할당 가능하..
2023.09.30 -
객체, 설계
# 들어가며 이론이 먼저일까 실무가 먼저일까? 글래스의 주장에 따르면 초기에는 실무가 먼저 급속할 발전을 이룬다고한다. 이론이 정립할 수 없기 때문이다. 실무가 어느 정도 발전하고 나서야 실용성을 입증하는 이론이 모습을 갖춰가고, 해당 분야가 충분히 성숙해지는 시점에 이르러서야 이론이 실무를 추월하게 된다고 한다. 즉, 이론보다 실무가 먼저다. SW 분야도 마찬가지이다. 아직까지 다른 공학에 비해 역사도 짧다. 컴퓨터가 세상에 나온 이후 수많은 SW가 설계되고 개발되었으나, 이론은 1970년대 돼서야 슬슬 모습을 비추기 시작했다. 이 이론들 역시 실무에서 반복적으로 적용되던 기법들을 이론화한 것을디 대부분이다(디자인패턴, 리팩터링 등) 유지보수에 대한 이론은 거의 전무하다. 따라서 SW에 대한 설계/유지..
2023.09.29