ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 04/29 게임 엔진 응용프로그래밍 (서술형) 과제
    카테고리 없음 2021. 4. 28. 00:54
    1. OOP(Object-Oriented Programming)
    컴퓨터 프로그래밍의 패러다임의 하나
    데이터와 이를 처리하는 루틴들을 하나의 독립된 객체로 바라보는 시선
    사용 이유
    재사용성의 증가
    
    특징
    캡슐화(Encapsulation)
    객체 스스로가 자신의 상태를 책임지게 하여, 해당 객체의 역할 수행에 집중할 수 있도록 자율성을
    높이는 것
    데이터 구조와 데이터를 다루는 방법들을 결합시켜 묶는 것
    변수와 함수를 하나로 묶는 것
    데이터를 외부에서 접근하는 것을 방지하고, 오로지 함수를 통해서만 접근할 수 있게 하는 것
    데이터 캡슐화, 은닉화
    
    상속(Ingeritance)
    부모 클래스의 속성과 기능을 상속받아 동일하게 사용
    범용적인 클래스를 작성한 후 상속을 활용하면, 여러 클래스에서 중복되는 속성과 기능을 재사용 할 수 있음
    
    추상화(Abstraction)
    대상의 특성중 불필요한 부분을 무시하고 필요한 공통점만을 다루어, 현실의 복잡성을 극복하고
    목적에 집중할 수 있도록 하는 것
    공통의 속성이나 기능을 묶어 이름을 붙이는 것
    클래스를 정의하는 것
    
    다형성(Polymorphism)
    동일 요청에 대해 서로 다른 방식으로 응답할 수 있도록 만드는 것
    다형성의 예
    오버라이딩,오버로딩,업캐스팅
    
    
    2. Process & Thread
    프로세스(Process)
    컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램
    메모리에 올라와 실행되고 있는 프로그램의 인스턴스
    운영체제로부터 시스템 자원을 할당받는 작업의 단위
    실행된 프로그램
    프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받음
    기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있음
    각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근할 수 없음
    한 프로세스가 다른 프로세스의 자원에 접근하려면 프로세스 간의 통신(IPC, inter-process communication)을 사용해야함
    
    쓰레드(Thread)
    프로세스 내에서 실행되는 여러 흐름의 단위
    프로세스가 할당받은 자원을 이용하는 실행의 단위
    스레드는 프로세스 내에서 각각 Stack만 따로 할당받고 Code, Data, Heap 영역은 공유
    
    https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html
    
    3. Garbage Collector
    메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능
    가비지 컬렉션은 .NET 기반 언어에서 사용자의 직접 처리없이 메모리를 자동으로 관리해주는 메커니즘
    CLR이 관리하고 있던 루트목록을 참조해서 어떤 루트와도 관계가 없는 힙의 객체들을 수집하고 제거
    
    http://joyeeeeeee.blogspot.com/2018/01/c-60-garbagecollectorgarbagecollection.html
    
    4. Prefab 
    프리팹은 공장에서 부품의 가공과 조립을 미리 만들어놓고 현장에서는 설치만 하는 건축 용법을 뜻하며
    미리 만들어놓고 필요할때마다 불러다 쓰는 기법
    게임 오브젝트를 생성, 설정 및 저장할 수 있으며, 해당 게임 오브젝트의 모든 컴포넌트, 프로퍼티 값, 자식 게임 오브젝트를 재사용 가능한 에셋으로 만들 수 있음
    
    https://game-secret.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B03D-Tip-Prefab%EC%9D%B4%EB%9E%80
    https://docs.unity3d.com/kr/2018.4/Manual/Prefabs.html
    
    5. Stack overflow 
    소프트웨어에서 스택 오버플로(stack overflow)는 스택 포인터가 스택의 경계를 넘어설 때 일어남
    프로그램이 호출 스택에서 이용 가능한 공간 이상을 사용하려고 시도할 때, 스택이 오버플로(overflow)된다고 표현함
    
    https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D_%EC%98%A4%EB%B2%84%ED%94%8C%EB%A1%9C
    
    6. Stack & Queue 
    스택
    스택(stack)이란 쌓아 올린다는 것을 의미
    스택 자료구조는 차곡차곡 쌓아 올린 형태의 자료구조
    가장 마지막에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO, Last-In-First-Out) 구조
    스택에서 top을 통해 삽입하는 연산을 'push' , top을 통한 삭제하는 연산을 'pop'
    
    큐
    Queue는 줄 , 혹은 줄을 서서 기다리는 것을 의미
    선입선출(FIFO, First in first out) 방식의 자료구조
    삭제연산만 수행되는 곳을 프론트(front), 삽입연산만 이루어지는 곳을 리어(rear)
    
    https://devuna.tistory.com/22
    
    7. Method overloading & overriding 
    overloading
    동일한 메소드가 매개변수 타입, 개수 차이에 따라 다르게 동작
    같은 이름의 함수(메서드)를 여러개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있게 함
    
    overriding
    상속받은 동일한 메소드 재정의
    상위 클래스가 가지고 있는 메서드를 하위 클래스에 상속하여 하위 클래스에 사용
    
    바인딩(Binding)
    프로그램의 어떤 기본 단위가 가질 수 있는 구성요소의 구체적인 값, 성격을 확정하는 것을 말한다
    
    동적 바인딩(Dynamic Binding)
    객체에 호출되는 실제 메소드를 알아내는 시기를 컴파일 시점이 아니라, 프로그램 실행(런타임) 중으로 미루는 방법을 의미
    
    https://private.tistory.com/25
    
    8. Polymorphism 
    다형성
    다형성이란 프로그램 언어 각 요소들(상수, 변수, 식, 객체, 메소드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킴
    동일한 조작방법으로 메소드를 동작시키지만 실제 동작은 다른 것
    다형성의 예로 오버라이딩,오버로딩이 있음
    
    https://woowacourse.github.io/javable/post/2020-10-27-polymorphism/
    https://opentutorials.org/course/2517/14143
    
    9. Syncoronous & Asynchronous 
    동기(Syncoronous)
    요청을 보낸 후 응답(=결과)를 받아야지만 다음 동작이 이루어지는 방식
    동기 방식은 서버에서 요청을 보냈을 때 응답이 돌아와야 다음 동작을 수행할 수 있음
    즉, A작업이 모두 진행 될때까지 B작업은 대기
    
    비동기(Asynchronous)
    요청을 보낸  후 응답(=결과)와는 상관없이 다음방식이 동작하는 방식
    비동기 방식은 요청을 보냈을 때 응답 상태와 상관없이 다음 동작을 수행 할 수 있음
    즉, A작업이 시작하면 동시에 B작업이 실행된다. A작업은 결과값이 나오는대로 출력된다.
    
    https://private.tistory.com/24
    https://jieun0113.tistory.com/73
    https://velog.io/@daybreak/%EB%8F%99%EA%B8%B0-%EB%B9%84%EB%8F%99%EA%B8%B0-%EC%B2%98%EB%A6%AC
    
    10. Coroutine
    실행을 중지하여 Unity에 제어권을 돌려주고, 계속할 때는 다음 프레임에서 중지한 곳부터 실행을 계속할 수 있는 기능
    코루틴이라는 것은 어떠한 작업을 처리할 때 필요에 따라시간 간격을 두고 작업을 처리할 수 있도록 도와주는 함수 형식
    
    https://prosto.tistory.com/68 [Prosto]
    https://hangjastar.tistory.com/82
Designed by Tistory.