Study note/CS 12

Graphics 분야 면접 준비

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! 1. Graphics Pipeline GPU는 병렬처리를 기본으로 하여 빠르다. GPU가 처리하는 흐름을 GPU 파이프라인이라 한다. 간단 설명: CPU로부터 입력된 정점 집합 -> 정적 집합을 3D 공간에 Vertex shader가 배치 -> 래스터화 -> Fragment shader가 각 픽셀 값으로 결정하여 화면에 출력 과정 설명: 모델 그리기(local space) -> 임의의 공간에 모델 띄우기 (world space) ->..

Study note/CS 2024.04.12

면접 대비 C++ 기초

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! 1. Pointer와 reference의 차이점 Pointer는 값을 바꿀 수 있지만 reference는 바꿀 수 없다. 그래서 pointer는 값을 increment/decrement할 수 있다. reference는 NULL을 참조할 수 없다. 2. 람다 (Lambda) Modern C++ 문법 [captures](parameters) -> return type {body} lambda를 function에 대입 가능 lambda를 ..

Study note/CS 2024.04.12

외국계 시험 대비 Summary

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! 1. C++ templetes templete void swap(T& a, T& b) { //... } T가 int든, string이든 어느 타입이든 다 될 수 있다. generic programming의 특징을 구현할 수 있게 하는 게 templete이다. 2. Dynamic allocation int *array = new int[length]; // ... delete[] array; 3. Class access control ..

Study note/CS 2024.04.12

DS - Data Structure

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! Stack & Queue Stack 2개로 Queue 구현하는 방법 enqueue용 stack, dequeue용 stack을 만들어서 구현한다. enqueue: 1st stack에 push dequeue: 1st stack에서 pop 후 2nd stack에 push, 이걸 반복한다. 주의할 점은 2nd stack이 완전히 비었을 때에만 1st stack의 첫 번째 값이 들어올 수 있다. Stack의 활용 시스템 스택 (프로그램 간의 ..

Study note/CS 2024.04.12

객체지향 프로그래밍 OOP

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! OOP 장점: 재사용성, 생산성↑, 유지보수 용이, 디버깅 용이, 대형 프로젝트 함에 있어 분담 용이 5가지 키워드: 클래스&객체, 추상화, 캡슐화, 상속, 다형성 추상화: 공통의 속성이나 기능을 묶어 이름을 붙이는 것. Class 정의 다형성: 오버라이딩, 오버로딩(매개 변수 수나 타입을 달리하는 것) 객체지향 설계원칙(SOLID) Single Responsible Principle: 단일 책임 원칙. 클래스의 단 하..

Study note/CS 2024.04.12

디자인 패턴 2

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! Facade 패턴 여러 객체를 만들고 작업하는 것을 facade(외벽)으로 감싸서 사용하는 방식 Templet-method 패턴 세부방식을 다양화하기 위함 Strategy와 다른 점: Overriding. 추상클래스의 method 절차는 바꿀 수 없음. 같은 method 절차를 따르는데 그 안 내용이 다름. 공통된 절차가 있을 때 Decorator 패턴 여러 옵션들을 필요에 따라 장착할 수 있게 하는 방식 abstract에서 상속 받..

Study note/CS 2024.04.12

디자인 패턴 1

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! Singleton 패턴 setting처럼 object을 딱 하나만 생성해야할 때 이 패턴을 사용 생성자를 private으로 선언 => 다른 클래스에서 new로 생성 못하게 하기 위함 static으로 자기 자신의 객체 만들기: 정해진 공간에 하나만 생성하도록 구현 방법: 다른 클래스에서 get할 때 처음에만 new로 만들고, 다음부터는 만들어놓은 object을 get Strategy 패턴 Interface로 공통적인 기능을 만들 수 있..

Study note/CS 2024.04.12

네트워크

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! HTTP의 GET과 POST 비교 GET: HTTP Request Message의 header 부분에 있는 url에 데이터가 담겨서 전송 크기에 제한이 있음. 보안이 필요한 것에는 적절하지 않음. Select적인 성향. 서버의 값을 변경하지 않음. POST: HTTP Message의 Body에 담겨서 전송 크기, 보안 면에서 GET보다 낫다. 서버의 값을 변경/추가 등 Handshake 연결 성립(3-way-handshake): 클라..

Study note/CS 2024.04.12

DB 데이터베이스

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! 인덱스 (Index) 책 부록에 '찾아보기(index)'처럼 모든 변수 다 검색할 필요 없이 빠르게 조회 가능 해시 테이블 or B-Tree 구조로 되어 있다. 주로 B-Tree 해시 테이블로 하면 검색은 빠르지만($O(1)$), 등호 연산 밖에 되지 않아 순차 검색이 불가하다. B-Tree는 $O(NlogN)$이지만, 부등호 연산이 가능해서 순차 검색이 가능하다. 관계형 데이터베이스 vs 비관계형 데이터베이스 관계형: key와 va..

Study note/CS 2024.04.12

개발 상식

기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 '다른 사람'이 공부하기에는 도움이 되지 않을 수 있으니 주의! RESTful API REST의 기본 원칙을 지킨 API 개발자들 사이에서 널리 알려진 약속. 어떤 URI에 어떤 Method를 사용할지 URI: 자료를 구조와 함께 나타내는 구분자. 리소스. 명사. 소문자 HTTP Method: 자원에 대한 행위. CRUD POST, GET, PUT/PATCH, DELETE TDD (Test-Driven Development) 새로운 기능을 추가하기 전에 테스트 코드를 먼저 작성 (TDD라는 걸 몰..

Study note/CS 2024.04.12