<객체지향의 사실과 오해> 4.역할, 책임, 협력
·
🖥️ 컴퓨터 일반/🎻 객체지향
1. 협력협력은 요청으로부터 시작되며 다수의 요청과 응답으로 구성된다 2. 책임책임의 분류1️⃣ 객체가 무엇을 알고 있는가 -> 아는 것(knowing)- 개인적인 정보에 관해 아는 것- 관련된 객체에 관해 아는 것- 자신이 유도하거나 계산할 수 있는 것에 관해 아는 것 2️⃣ 객체가 무엇을 할 수 있는가 -> 하는 것(doing)- 객체를 생성하거나 계산을 하는 등의 스스로 하는 것- 다른 객체의 행동을 시작시키는 것- 다른 객체의 활동을 제어하고 조절하는 것 📍 책임과 메시지메시지 전송(message-send)- 객체가 다른 객체에게 주어진 책임을 수행하도록 요청을 보내는 것- 협력 안에서 객체는 다른 객체로부터 요청이 전송됐을 경우에만 자신에게 주어진 책임을 수행한다- 한 객체가 다른 객체에게 전..
<객체지향의 사실과 오해> 3.타입과 추상화
·
🖥️ 컴퓨터 일반/🎻 객체지향
1. 추상화를 통한 복잡성 극복📍 추상화의 목적- 단순화- 복잡도를 다루기 위해 추상화한다📍 추상화의 정의- 어떤 양상, 세부 사항, 구조를 좀더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법📍 추상화 방법 2가지1. 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화2. 중요한 부분을 강조하기 위해 불필요한 세부사항을 제거- 객체지향에서는 객체라는 추상화를 통해 현실의 복잡성을 극복한다 2. 객체지향과 추상화📍 앨리스의 추상화 예시- 하트 여왕, 스페이드 정원사, 클로버 병사 등을 모두 트럼프 객체로 단순화(토끼는 트럼프로 추상화 불가)- 트럼프로 단순화할 수 있는 이유는, 위의 모든 인물들이 트럼프의 일반적인 외형과 행동방식을 지녔기..
컴퓨터 그래픽스 3장: 모델링
·
🖥️ 컴퓨터 일반/🕹️ 컴퓨터 그래픽스
📍Polygon Mesh모델링: 렌더링할 물체를 만들어 내는 것- 어떤 구체를 모델링한다고 할 때, 반지름과 원점을 이용해 구의 부피를 구하는 방정식을 사용할 수도 있지만,- GPU는 polygon mesh를 사용하는 방법에 더 최적화되어 있음- 즉, 구체를 이루는 정점 몇개를 샘플링해서 이들을 연결하는 방식 triangle mesh- polygon mesh 중에서 가장 널리 사용되는 방법- OpenGL은 triangle mesh만 처리함- 정점 갯수의 대략 2배 만큼 삼각형 메쉬가 있다 vs 사각형 메쉬- 모델링 시 사각형 메쉬가 유리할 때도 있다- 사각형 메쉬 -> 삼각형 메쉬 변환 간단 (2로 나누면 됨) 해상도- 정점의 갯수(resolution)- LOD(Level of Detail)라고도 함-..
컴퓨터 그래픽스 2장: 수학 기초
·
🖥️ 컴퓨터 일반/🕹️ 컴퓨터 그래픽스
📍행렬과 벡터m * n 행렬 형태- m: 행(row)- n: 열(column)- 벡터도 행렬이다 (예 1 * 2 행렬, 1 * 3 행렬) row vector- 2D 벡터: (x, y)- 3D 벡터: (x, y, z) column vector(xyz) - vector의 곱셈은 행렬의 곱셈과 같다 행렬 전치(transpose)행렬 곱셈 M * v 는 vt * Mt 와 같다- 조건- 곱셈 결과OpenGL의 곱셈 방식- column vector 사용하므로, 행렬벡터 곱셈 시, 벡터가 행렬 뒤에서 곱해짐- 참고로 Direct 3D는 row vector 사용하므로 반대 단위 행렬과 특징행렬곱셈의 역행렬과 전치행렬 벡터의 크기(길이)- 원점에서의 거리- 벡터를 벡터의 길이로 나누는 과정을 정규화(normalizat..
컴퓨터 그래픽스 1장: 서론
·
🖥️ 컴퓨터 일반/🕹️ 컴퓨터 그래픽스
📍3D Computer Graphics- 3차원으로 표현된 오브젝트를 입력으로 받아 2차원 이미지들(프레임이라고 부름)로 출력해내기 위해 다양한 계산을 수행하는 것📍실시간 그래픽(real-time graphics)- 비실시간 그래픽(느리게 프레임 만듬, 예 - 영화 특수효과)과 대비되는 개념- 프레임이 온라인에서 출력되고,- 최소 30 fps(frames per second)이 넘을 때- 예) 게임, VR, AR 등📍Computer Graphics Production 과정off-line tasks (by artists)____________________________modeling -> rigging -> animation -> rendering -> post-processing          ..
ch3. 명령어
·
🖥️ 컴퓨터 일반/💾 컴퓨터 구조
1. 소스 코드와 명령어📍고급 언어와 저급 언어고급 언어(일반적인 프로그래밍 언어)로 작성된 소스 코드가 실행되려면 반드시 저급 언어(컴퓨터만 이해할 수 있는 명령어)로 변환되어야 한다 저급언어 종류- 기계어- 어셈블리어 기계어- 0, 1(이진수)로 이루어진 명령어 모음- 가독성을 위해 십육진수로 표현하기도 함 어셈블리어- 기계어를 사람이 어느정도 이해할 수 있게 번역- 하드웨어와 밀접한 분야에서는 실제로 사용 (임베디드, 보안 등)- 예시 📍컴파일 언어와 인터프리터 언어고급 언어가 저급 언어로 변환되는 방식에 따라 언어를 2가지로 나눌 수 있음- 컴파일 언어- 인터프리터 언어 컴파일 언어- 컴파일러에 의해 소스코드 전체가 저급 언어(결과물 - 목적 코드)로 변환되어 실행됨- 소스 코드에 오류가 있다..