반응형 ETC/CS8 [기술면접] 1. CS - 개발상식 좋은 코드란 무엇인가? 좋은 코드? 좋은 코드란 무엇일까? 좋은 코드는 정해져있지 않다. 모두의 기준이 다 다르고 환경이 다르기 때문일것이다. 보통 사람들이 말하는 좋은 코드는 다음과 같다 읽기 쉬운 코드 중복이 없는 코드 테스트가 용이한 코드 ... 사실 정해진 결론은 없다. 매 상황에 따라 알맞게 코드를 잘 작성하는것이 가장 좋은 것 같다. 코드 간의 의존성을 고민하자. 합의된 규칙으로 일관성있게 작성하자. 적절하게 확장 가능하도록 설계하자. 어쩔 수 없는 코드는 주석과 함께 격리하자. ... 객체지향 프로그래밍(OOP, Object Oriented Programming) 객체 지향 프로그래밍 이전의 프로그래밍 패러다임을 살펴보면, 중심이 컴퓨터에 있었다. 컴퓨터가 사고하는대로 프로그래밍을 하는 것이.. ETC/CS 2021. 11. 26. [컴퓨터구조] ch.2-4 MIPS Two Key Principles of Machine Design (컴퓨터 설계의 두가지 핵심 원칙) 명령어는 숫자로 표현이 되므로 데이터와 구분할 수 없다. 데이터와 표현 방법이 같으므로, 표현 원칙이 달라야 구분할 수 있다. 명령어들의 집합을 프로그램이라고 하고, 프로그램도 데이터처럼 메모리에 저장되어 읽고 쓰여진다. 이를 Stored-program concept 라고 한다. 프로그램들은 바이너리 숫자 파일로써 저장이 된다 -> 바이너리 호환이 된다. MIPS Logical Operations Overview (MIPS 논리 연산) 산술명령어들은 레지스터에 들어있는 값 전체를 하나의 부호가 있거나 없는 정수로 취급하였다. 하지만, 레지스터에 들어있는 32bit의 값을 개별적으로 처리하는 방법이 필요하.. ETC/CS 2020. 10. 26. [컴퓨터구조] ch.2-3 MIPS MIPS ( RISC ) Design Principles (설계 원칙) 막 외우자고 생각하지말고 한번 슥 보고 지나가자. 단순하게 만들어 규칙성을 확보하라 고정된 크기 (32 bite) 명령어 형식을 많이 만들지 말라. 동작을 나타내는 코드는 앞에 6 bits 에 표현 작은것이 더 빠르다 명령어 셋 많이 쓸 필요 없다. 레지스터들의 집합 수 32개정도로 제한 주소 지정 방식(연산에 필요한 값을 어디로부터 어떻게 가져올 것인가를 지정하는 방식) 많이 만들지 마라. 자주 사용되는것 빠르게 실행되게 하자 메모리에 접근하는 경우는 load-store 명령어만을 통해서 사전에 레지스터 파일을 가져다놓으면 그 값에 대해서 연산하도록 하자. immediate operands를 명령어상에 가지도록 하자 좋은 설계란 적.. ETC/CS 2020. 10. 25. [컴퓨터구조] ch.2-2 산술 동작 간단한 산술동작 add a, b, c # a = b + c sub a, b, c # a = b - c 간단한 산술동작으로부터 규칙성을 가지도록 하면, 구현함에 있어 굉장히 간단해진다. 조금 복잡한 산술동작 f = (g+h) - (i+j); 각각의 부분 결과를 저장할 수 있어야한다. 즉 add t0, g, h # temp t0 = g + h add t1, i, j # temp t1 = i + j sub f, t0, t1 # f = t0 - t1 t0 와 t1은 각각의 계산을 잠깐 저장할 임시저장소이다. 즉. 임시 결과를 저장하는 요소가 필요한데, 그것을 레지스터(register) 라고 한다. 그리고 컴파일러가 각각의 값들을 여러 레지스터 중 어디로 매핑할것인지 작업하게된다. 연산에 필요한 값을 메모리로부터.. ETC/CS 2020. 10. 24. [컴퓨터구조] Ch.2-1 컴퓨터 언어 - Language of the Compute The Instruction Set : a Critical Interface 유저들은 하드웨어가 이해할 수 있는 언어를 사용해서 작업을 지시하게된다. 이 언어에 대해서 생각해보자. Functions of Instruction Set 모든 프로세서는 최소한 아래의 기본 기능들은 수행할 수 있어야 한다. 산술 논리 연산 메모리와 데이터를 주고받는것 ( load / store ) 조건부 분기(Conditional Branches) 조건을 결정하는 방법이 필요하다. 조건이 충족된다면 분기할 대상의 메모리 주소가 필요하다. 충족되지 않는다면 다음 Instruction으로 이동한다. 점프 또는 서브루틴 연결에 대한 프로시저 호출(Procedure call)에 관한 명령어가 있어야 한다. return address .. ETC/CS 2020. 10. 24. [컴퓨터구조] Ch.1 컴퓨터 추상화와 기술 - Computer Abstractions and Technology Classes of Computers Personal computers 다양한 소프트웨어 설치 가능, 범용 환경을 갖춤 가성비 고려대상 Server computers (= cloud computing) 네트워크 기반 대용량, 성능, 안정성 고려 소규모 서버에서 빌딩 규모에 이르는 범위 Supercomputers 과학 계산이나 엔지니어링 계산 성능은 가장 좋지만, 전체 컴퓨터 시장에서 작은 부분을 차지한다. Embedded computers 시스템 구성 요소로 숨겨져있음 적은 비용(전력)으로 최고의 성능을 내기 위함 Notations Used in Textbook Processor Core cpu 기능을 하는 코어 모듈을 하는 기능과 센서로서의 역할을 하는데 필요한 기능들을 하나의 칩에 넣을 수 있다는 점.. ETC/CS 2020. 10. 21. Lambert's cosine Law 빛은 물체표면에 입사한 후, 물질 내에서 여러번 복잡하게 산란 후 표면을 빠져 나온다 여기서 [복잡하게]라는 것이 다행스럽게도 물체 표면에서 나오는 가장 눈에 띄는 성분은 모든방향에 대하여 같은 강도로 산란되는 빛이다. 즉, 물체로부터 보이는 색은 물체를 비추는 빛의 강도에 비례해서 밝게보인다라는 것, 이것이 램버트의 코사인 법칙이며 물체 표면에서 반사하는 빛의 휘도(Luminance)는 빛의 입사벡터 L과 표면의 법선벡터 N이 이루는 각도의 코사인에 비례한다는 정리이다. 출처 : http://journal.mycom.co.jp/photo/column/graphics/057/images/001l.jpg 광원(光源) L : 광원벡터 N : 법선벡터 I : 반사광의 세기 Ii : 입사광의 세기 kd : 확산.. ETC/CS 2020. 6. 8. 퐁 모델 (phong model) 조명 용어 정리 지역 조명(local illumination) - 광원(light source)로 부터 직접적으로 물체에 들어오는 빛만을 고려함 전역 조명(global illumination) - 광원이 직접적으로 보이지 않더라도 공간 내 다른 물체에서 반사된 빛에 의해 받는 간접 조명(indirect lighting)을 고려하여 모든 물체를 잠재적인 광원으로 취급 - 영화 특수 효과 분야같은 비실시간 랜더링에 주로 사용되어짐. 현재는 하드웨어 성능의 향상으로 실시간 랜더링이 가능해지는 추세 퐁(phong) 모델 - 아직까지도 많이 사용되는 고전적인 지역 조명 모델. Ambient, Diffuse, Specular, emissive light 네 가지 항목에 의해 결정 디퓨즈(diffuse) [그림1 :.. ETC/CS 2020. 6. 7. 이전 1 다음 반응형