본문 바로가기

반응형

- Programming/- 개념 잡기

★ 21. 디지털 라이트 (Digital Light) 종류 [1] 디지털 라이트의 분류 당연하게도 실제 세상의 빛을 그대로 컴퓨터 그래픽으로 표현하는 것은 많은 무리가 따릅니다. 특히나 실시간으로 연산해야하는 게임에서 빛을 가볍게 처리하면서도 상대적으로 품질이 떨어지지 않을 것이냐는 매우 중요한 문제입니다. 또한, 게임에서는 상당히 많은 종류의 하드웨어에서 구동되기 때문에 쉐이더를 작성하는 사람들은 하드웨어 기기의 특성까지 파악해두어야 합니다. 우선 먼저 알아야할 것은 컴퓨터 그래픽에서 처리하는 라이트의 종류와 특성입니다. 대부분의 3D 프로그램이나 엔진은 다음 3가지 종류의 라이트를 기본적으로 지원합니다. 하나씩 알아보겠습니다. 디렉셔널 라이트 (Directional light) 포인트 라이트 (Point light) 스팟 라이트 (Spot light) 1. .. 더보기
★ 20. 동기화/비동기화란? [1]동기화라는 말이 다방면으로 사용되고 있어 개념을 잡기가 조금 어렵습니다.비동기식이니 동기식이라는 말도 있습니다. 동기화를 이해하려면 클라이언트와 서버라는 개념을 먼저 이해해야합니다.클라이언트에서 작업을 요청하면 서버에서 응답하는 형식입니다.그런데 이 응답하는 방식에 따라서 동기식, 비동기식이라고 합니다. 여기서 동기식은 클라이언트의 요청이 있어야만 서버가 응답을하며 서버의 응답을 기다리다가 응답이 와야만 그에 따라 클라이언트가 반응하는 방식으로 서버와 클라이언트의 작업을 하나로 일치시키는 방식입니다.요청과 응답, 응답과 작업, 다시 요청과 반응 이런 방식입니다. 폴더의 자료를 최신으로 유지하는 것도 클라이언트에서 자료 갱신을 요청하면 서버에서 응답해 최신 자료를 보내주고 클라이언트에 받아 갱신하는 .. 더보기
★ 19. 객체지향 vs 절차지향 차이점 객체지향과 절차지향 다양한 프로그래밍을 하기 위한 언어로는 여러 종류가 있습니다.여러 언어들은 크게 두 가지로 나눌 수 있습니다."객체지향과 절차지향"언어 두 가지로 말이죠.언어들을 설명하기에 앞서 빠른 이해를 위하여 예시를 들어보도록 하겠습니다. 자동차를 만들기 위한 부품으로는 바퀴, 엔진, 의자, 핸들 등 다양한 부품들이 있어야 합니다. 자동차를 조립해야 할 때 절차지향적인 방식으로 만든다면 어느 한 부분을 기점으로하여 순서대로 만들어야합니다. 예를들면, 엔진 -> 차체 -> 핸들 -> 의자 이런 식으로 만들게됩니다. 이 경우 서로 분리되면 안되고 순서가 틀려도 안됩니다. 하나가 고장나게 되면 전체 기능이 흔들릴 정도로 설계되었다고 가정할 수 있습니다. 만약 처음에 조립할 때 부품을 다른 종류로 대체.. 더보기
★ 18. SocketAsyncEventArgs 클래스 SocketAsyncEventArgs 설명 비동기 소켓 작업을 나타냅니다. 상속 계층 구조 System.ObjectSystem.EventArgsSystem.Net.Sockets.SocketAsyncEventArgs 구문 - C# public class SocketAsyncEventArgs : EventArgs, IDisposable - C++public ref class SocketAsyncEventArgs : EventArgs, IDisposable 생성자 - SocketAsyncEventArgs()빈 SocketAsyncEventArgs 인스턴스를 만듭니다. 속성 - AcceptSocket 소켓 또는 비동기 소켓 메서드에 대한 연결을 수락하기 위해 만들었거나 값을 가져오는 설정을 합니다. - Buff.. 더보기
★ 17. 가비지 (Garbage) 가비지 (Garbage) 힙에 쌓인 메모리 영역이 참조가 끊겨있는 인스턴스(가비지 컬렉터가 있는 프로그램에선 자동 소멸) 더보기
★ 16. c++/c# 구조체와 클래스의 차이 c++/c# 구조체와 클래스의 차이 ===================================================- c++ - struct는 default가 public이다.값을 직접 참조할 때 사용함선언과 동시에 사용 가능 예) vector a a.x = 10; class는 default가 private이다.주로 멤버 변수를 직접 건들지 않고 함수로 건드림 둘 다 private public protected 변수, 메서드 선언 다 가능하다.(차이가 거의 없음) c++ 구조체란?다양한 형의 자료를(변수를) 하나로 통합한다. 또한 필요에 따라 메소드를 사용할 수 있다.접근 제한 연산자를 사용할 수 있으며, 사용하지 않을 경우 기본적으로 public 접근자가 사용됨. c++ 클래스란?다양한 형.. 더보기
★ 15. C# Lock 키워드 C# 에서의 Lock 키워드 C#의 Lock 키워드는 특정 블럭의 코드를 "한번에 하나의 쓰레드만" 실행할 수 있도록 해줍니다. lock()의 파라미터에는 임의의 객체를 사용하고 주로 object 타입의 private 필드를 지정합니다. lock 키워드는 다른 스레드가 코드의 영역에 있는 동안 특정 스레드가 임계 영역에들어갈 수 없고 다른 스레드가 잠긴 코드에 들어가려고 할 경우 개체가 해제될 때까지 대기하게됩니다. 더보기
★ 14. 액세스 한정자 액세스 한정자 출처 : https://msdn.microsoft.com/ko-kr/library/ms173121.aspx public 동일한 어셈블리의 다른 코드나 해당 어셈블리를 참조하는 다른 어셈블리의 코드에서 형식이나 멤버에 액세스할 수 있습니다.private 동일한 클래스 또는 구조체의 코드에서만 형식이나 멤버에 액세스할 수 있습니다.protected 동일한 클래스나 구조체의 코드 또는 파생 클래스의 클래스에서만 형식이나 멤버에 액세스할 수 있습니다.internal 동일한 어셈블리의 코드에서는 형식이나 멤버에 액세스할 수 있지만 다른 어셈블리의 코드에서는 액세스할 수 없습니다. 더보기
★ 13. 댕글링 포인터 댕글링 포인터 메모리상에서 해제된 대상을 가리키고 있는 포인터 주로 동적할당받은 메모리가 해제되었으나 포인터 변수가 그 해제된메모리 주소를 가지고 있을 때 발생하며메모리 해제 이후에 반드시 NULL 값을 주어 주소를 지워서 해결한다. 다음은 댕글링 포인터의 예이다. void DP(void){element *n = new element;int *m = n;delete(n);n = NULL;} 이 코드에서 n은 댕글링 포인터가 아니고 m이 댕글링 포인터입니다.~ 더보기
★ 12. const const란? const는 변수를 상수화시키는 것을 말합니다. 간단합니다.! int age = 25; age = 10; cout 더보기

반응형