sunghojn의 등록된 링크

 sunghojn로 등록된 네이버 블로그 포스트 수는 14건입니다.

"Hello World!" C++, 비쥬얼 스튜디오의 기본 화면에 대한 이해 [내부링크]

C++를 공부해야 겠다고 생각한 것은 이번이 처음이 아니다. 본래 전공이 컴공이 아니었기 때문에 늘 기초가 부족하다라는 생각을 했다. 하지만 편한 직장에 눌러 앉아 있다보니 타성에 젖어 많은 시간을 흘려보냈다. 늦었지만 이렇게 게임 개발자의 꿈을 다시 꾸게 되었다. 그 시작은 역시 Hello world 부터 콘솔창에서 보고 시작하자. Hello world! 아직까지도 프로그래밍 공부의 시작은 이것이다. C++외에 어떤 언어를 공부하더라도 아마 그 시작은 이 문장을 출력하는 것으로부터 시작 할 것이다. 언젠가 왜 이 문장으로 개발공부를 시작하는지 들었던것도 같은데, 기억이 잘 나지 않는다. 또한 개발 보통 게임 개발을 위해 C#이나 C++등의 언어를 공부하는 분들은 Visual Studio툴을 이용할 것이다. 현재는 2022버젼이 최신이며, 가볍게 사용하는 용도로는 Visual Studio Code를 이용하기도 한다. 비쥬얼 스튜디오를 설치할 때, C++ 를 사용한 데스크톱 개발, 게

Build - 빌드 란 무엇인가! (with 링크) [내부링크]

이제는 개발자들 뿐만 아니라 일반 유저, 사람들도 전문적인 용어를 많이 이해하고 사용하는 시대다. 게임을 좋아하는 사람들은 해당 게임의 커뮤니티를 가보면 개발자보다 더 많이 알고 있는게 아닌가 싶을 정도로 자세하게 분석한 글들 또한 볼수 있다. 심지어는 난수 테이블까지 밝혀내는 수준이다. 이런 것 처럼 빌드라는 용어도 이미 많은 분들이 알고 있을것 같다. Build 하다 빌드라는 과정을 살펴보자. 우리가 게임을 만들 때, 또는 어떤 앱을 만들 때, 프로그램을 짜고 완성된 코드로 끝나는 것이 아니라 그것을 사용하기 위해서 일종의 실행파일을 만든다. 소위 .exe 파일과 같은 것이다. 많이들 보아왔을 것이다. 빌드는 우리가 만든 프로그램을 실행파일로 만드는 과정이고 그것을 집을 짓는 것처럼 빌드 한다의 표현을 사용하는 것이다. 빌드의 과정을 조금 세분화 해보자면 [컴파일 -> 링크 -> 실행파일]의 단계로 볼 수 있다. 컴파일 과정 Compile = source code -> objec

셰이더의 간단한 소개 [내부링크]

유니티 엔진을 통해 게임 개발을 처음 접하기 시작했을 때 부터 들어본 것이 쉐이더와 렌더링 이라는 단어였다. 여전히 많이 부족하지만 당시에도 쉐이더는 그냥 아트하시는 분이 만들어 주시는 것, 렌더링은 엔진이 해주는것 정도로 그냥 개념만 알고 있었던것 같다. 사실은 그 모든것이 뛰어난 개발자 분들이 만들어 냈다는 것을 이애하는 요즘이다. 감사하는 마음으로 개념에 대해 살펴보자. 셰이더 Shader - 쉐이더, 셰이더 맘대로 불러 어원을 먼저 살펴보자. Shade + er 의 형태로 그늘이라는 단에서 출발했다고 한다. 그림자랑은 조금 다른 의미인데 동사로 그늘지게하다 로 사용한다. 사물에 그늘을 드리우는 것과 같이, 3D 물체를 2D 평면에 그리는 과정이 마치 그늘지게 하는 것과 같아서 파생된 용어라고 느껴진다. 재밌는것이 이전 렌더링 파이프라인 글에서 잠시 소개한것 처럼 셰이더라는 존재의 시작은 토이스토리 라는 애니메이션 영화로부터 탄생했다고 한다. 당시에 기술력으로 엄청 부드러운 캐

물리기반 렌더링과 유니티 & 언리얼의 렌더링 방식의 차이 [내부링크]

강의 때에 물리기반 렌더링에 대한 소개를 들을 때, 유니티와 언리얼의 소위 때깔이 좋다라는 말을 들어 보았냐는 말로 시작하셔서 지레 짐작, 유니티는 물리기반 렌더링이 아닌줄 알았다. 글을 쓰려고 찾아보다 보니 전혀 그렇지 않았지만, 굉장히 깊은 내용이다보니 쉽게 찾고 이해할수 있는 내용들은 아니었다. 개론정도의 지식을 포스팅 하고 있으므로 각각의 디테일한 내용들은 또 다른 공부로 찾아오겠다. 유니티 엔진 VS 언리얼 엔진 정말 다양한 차이가 있고 또 각자만의 장단점이 분명히 존재한다. 게임 개발자라거나, 게임 개발에 관심이 있거나, 하다 못해 게임만을 좋아하는 사람이라도 유니티와 언리얼 엔진에 대해서 모르는 사람은 없을 것이다. 이 글을 쓰는 시점인 22년 10월에 유니티의 최신 권장 버전은 2021.3.11f1 이며 베타와 알파버전(선행 테스트 버전)은 2022, 2023버전 까지 받아 볼수 있다. 언리얼 엔진은 올해, 22년 4월 6일에 대망의 언리얼 엔진 5가 루멘, 나나이트,

10진수 | 2진수 | 16진수의 간단한 이해와 변환법, 그리고 2진수와 16진수의 관계 [내부링크]

오늘은 정말 더 간단한 이야기가 될듯하다. 개론 강의중에 당연히 짚고 넘어가야하는 이야기였지만 상당히 간단하게 알고 넘어갔다. 실제로도 간단 할 터이다. 하지만 코딩이나, 컴퓨터공학적 지식이 전무한 사람이라면 꼭 알고 넘어야가 할 지식이라고 생각한다. 2진법은 말로는 많이 들어봤지만 막상 이해하고 사용하려하면 뇌가 고장난것만 같다 ㅎㅎ. 기수법 수를 시각 적으로 나타내는 방법 각 진법을 표현하는 방식이라고 이해하면 좋겠다. 우리가 일반적으로 사용하는 수에 대한 개념을 시각적으로 보고 공유하기 위해서 발전했다. 위키를 빌어 설명하면, 고대 이집트, 그리스, 로마등 에서 그들 사회의 문화와 사상을 반영하여 발전했다고 한다. 기수법은 단항 기수법으로 시작해 명수법, 위치값 기수법으로 발전했다. 단항 기수법은 '바를 정'자를 쓰는 것과 같이 단순한 짝대기 하나로 수를 표현하는 방식이다. 단점은 큰수를 표현하기 어렵다는 것이다. 단항 기수법 출처: https://black7375.tisto

프로그래밍의 난수, 랜덤시드에 관하여 [내부링크]

처음 개발을 시작했을 때는 랜덤한 숫자가 필요하면 그냥 구글링해서 생각 없이 난수 관련 함수를 가져다 사용했다. 그러면서 시드값이 중요하고, 이 난수는 진정한 난수는 아니다~ 뭐 그런, 글들을 조금 읽으며 가볍게 넘어갔었다. 이번 강의를 통해 조금이나마 난수의 정체를 들여다보는 계기가 됐다. 난수 Random Number 단순한 정의는 누구나 알고 있을 거라고 생각한다. 무작위의 어떤 수, 정확히는 누구도 그 다음에 나올 수를 알 수 없는 수라고 말할 수 있겠다. 사람에 묻는다면 일반적으로는 정말 누구도 맞출 수 없을 것이다. 뭐 심리학적으로 유도하는 거면 모를까 ㅎㅎ. 문제는 프로그래머가 난수가 필요해지는 시점이다. 우리가 모바일게임이나, 각 종 도박류 게임을 할때, 당연한듯 난수를 사용하고 있지만 실제로 난수를 얻어야하는 컴퓨터는 난수를 그냥 줄 수없다. 사람과 같이 생각 할 수 없기 때문이다. 그래서 결론 부터 말하자면 컴퓨터의 난수는 진정한 난수가 아니라, 수학 공식을 통해,

모니터에 관한 컴퓨터학 개론 [내부링크]

90년대 생은 초등학교 때 책상 밑에 사선으로 들어가있는 배불뚝이 CRT모니터를 기억할 것 이다. 그러다가 어느새인가 LCD 모니터가 주류를 이루더니 이제는 4K 라느니 144HZ 주사율이니 고성능의 게이밍 모니터들과 함께하고 있다. 내 평생 TV보다 훨씬 오래, 함께 살아가고 있는 출력장치 모니터에 대해 알아보자. 모니터 Monitor 이제 우리는 단순한 출력 장치가 아니야! 모니터라고 하면 화면을 보여주는 대다수의 장치이며 일반적으로 컴퓨터 모니터를 의미한다. 그리고 컴퓨터 모니터는 컴퓨터에서 출력되는 영상 데이터를 출력하는 장치이다. 이전 글 '그래픽 카드'를 참고해 보자. 과거에는 단순한 출력 장치로서 역할을 다했다면 최근에는 다양한 기능들을 제시하고 있으며 사용자의 만족감을 높여주고 있다. 모니터의 크기, 그에 따른 해상도, 선명도, 색상의 표현 범위 부드러운 움직임 등 다양한 요소를 게임 프로그래머들이 유저들을 위해 지원해야 하고있다. 선명도 PPI - Pixels Per

OS - 운영체제 [내부링크]

초등학교 2학년때 반지하에 살던 내 방에 아버지가 펜티엄2 본체를 사오셔서 설치 해주던 그때가.... 사실 선명하게 기억나지는 않는다 (^- ^;)후후. 하지만 그 묵직한 본체의 전원 버튼을 누르면 뚱뚱한 모니터 화면에서 마치 바람에 휘날리는 듯한 깃발처럼 떠오르는 윈도우 98 로고가 생각난다. 운영체제 Operation system 나의 첫. 글인 최초의 컴퓨터 에서 짧게나마 소개한적이 있다. 과거 컴퓨터의 태동기에는 계산만 간신히 수행할뿐 입력과 출력을 모두 사람이 도맡아서 해야만 했다고 한다. 그 사람들을 오퍼레이터 라고 불렀으며 지금에 와서 그들의 역할을 수행하기 때문에 오퍼레이팅 시스템이라고 한다고 배웠다. 즉, 컴퓨터의 하드웨어와 그 속의 시스템 리소스를 제어하는 소프트웨어 라고 할수 있다. 현재 수많은 OS 들이 있지만, 일반적으로 우리에게 많이 알려지고 실제로도 가장 많이 사용되는 것들이 있다. 아마 바로 머리에 떠오르는 몇가지들이 있을것이다. 출처: https://w

멀티 태스킹 | 멀티 프로세스 | 멀티 스레드 [내부링크]

프로그래머 면접 질문에 한번쯤은 나온다는 그 것. 프로세스와 스레드의 차이가 뭔가요? 이직 경험이 없는 나는 아직 받아보지 못했다. 멀티 스레드 또한 핫한 주제로 개념과 장, 단점을 찾아 보긴 했지만 사실 아직 개발 경험 또한 없다. 파고 들면 공부할 것이 태산이 주제지만 간단하게 개념을 알아보자. (면접에서 물어보면 대답 할 수 있도록! ㅎㅎ ) 멀티 프로세스 || 멀티 스레드 Multi Process || Multi Thread. Multi Tasking 사실상 멀티 테스킹은 이 두 주제의 들러리다 ㅎㅎ. 그래도 그냥 넘어가면 아쉬우니 가볍게 짚고 넘어가자. 다중 작업이라고 직역하며, 다수의 작업이 CPU를 나누어 사용하는 것을 말한다. 일반적으로 하나의 CPU는 하나의 태스크(작업)만을 수행 할 수 있다. 하지만 우리는 이 순간에도 다양한 프로그램들을 실행 시켜놓고 사용하고 있다. 즉, 하나의 프로세스에서 굉장히 빠르게 스케쥴링을 통한 순차적 연산을 통해, 마치 병렬 연산이 이

컴퓨터 그래픽스의 간단한 소개 [내부링크]

본격적으로 게임 개발에 관련된 전문 지식이 이어지는 것 같다 ㅎㅎ. 그래봐야 아직 개념 수준이지만 매번 공부 해야지, 해야지, 하면서 듣고 넘기던 개념들에 대해 알아가는 것이 굉장히 흥미롭다. 우리가 모니터에서 보는 모든 것들, 특히 게임 그래픽의 화려함, 또는 만화나 영화의 화면들은 어떻게 이루어져 있을까. 컴퓨터 그래픽스 Computer Graphics 가 뭔데? 처음에 컴퓨터 그래픽스라는 단어 자체가 조금은 생소하다고 생각했는데, 약자인 CG를 보니 대번에 가슴에 다가왔다. 최근 10년간 폭풍처럼 인기를 몰고있는 마블 영화들이 적극적으로 사용하는 것이 바로 CG일 것이며, 다들 놀라운 CG에 재밌게 즐기고 있다. 위키를 보면 컴퓨터를 이용해 실제 세계의 영상을 조작하거나 새로운 영상을 만들어 내는 기술 이라고 정의하고 있다. 과거 컴퓨터 그래픽스 업계에서 쉐이더라는 것을 사용하면서 엄청난 기술을 선보인 작품이 있는다. 세계 최초로 3차원 모델링과 렌더링, 즉 오직 CG로만 구성

렌더링 파이프라인의 간단한 소개 [내부링크]

앞서 다양한 주제들의 글속에서 우리가 모니터를 통해 보는 것의 다양한 관점을 살펴 보았다. 그 실체들에 대해 좀더 깊이 들어가면 반드시 마주하여 공부해야되는 것이 컴퓨터 그래픽스 그 속에 있는 렌더링 파이프라인이라는 것을 알게 되었다. 게임에서 움직이는 캐릭터, 화려한 배경과 물체들은 어떻게 그려져서 우리에게 보여지는 것일까. 렌더링 파이프라인 Rendering pipeline 컴퓨터 그래픽스에서 가장 중요한 내용인 것 같다. 강의를 통해 이런 것들이 있다~ 느낌으로만 접한 수준이라서 이번 글도 짧게 소개형식으로 짚고 넘어갈까한다. 사실 글을 쓰기전에 잠시 구글링을 해보았는데, 정말 관련된 공부할 내용들이 엄청나게 많았다. 기초적인 선형 대수학 부터 컴퓨터 그래픽스의 다양한 개념들 그 사이에 있는 렌더링 파이프라인 관련 지식들 등등. 아직 스스로 공부가 부족한 상태이니 조급해하지말고 이런게 있다는 것만 알고 넘어가자. 렌더링 파이프라인은 단순하게 이야기하자면 이전 그래픽 카드 글에서

최초의 컴퓨터 [내부링크]

"최초의 컴퓨터? 에니악아닌가?" 강의 시간에 나온 질문에 대한 나의 답이었다. 틀렸다고 하시진 않았지만, 현대적인 최초의 전자 컴퓨터는 '콜로서스' 라는 사실을 알게됐다. 영화 - 이미테이션 게임 컴퓨터 그 시작에 대하여 그러고 보면, 지금 까지 초등학생때 아버지가 컴퓨터를 사주시고 포켓 몬스터라는 게임을 시작으로 나와 땔 수 없는 이 컴퓨터가 왜 발명되었고 또 오늘날까지 발전되었는지 생각해본적이 없었다. 컴퓨터는 왜 필요했을까? 그 이유를 이미테이션 게임 이라는 영화를 통해 사람들에게 알려진 실질적인 최초의 컴퓨터 콜로서스가 하나의 답을 주고 있는것 같다. 이미테이션 게임 콜로서스(Colossus) . 콜로서스는 1943년부터 1945년 사이에 영국의 암호 해독가들이 로렌츠 암호 해독을 위해 개발한 컴퓨터라고 설명되어 있다. 영화를 보면 엘런 튜링이라는 주인공과 함께 여러 수학자들이 모여 2차 세계대전을 승승장구 하고 있던 독일을 막고자 그들이 주고받는 암호통신을 해독을 위해 개

CPU에 관한 컴퓨터학 개론 [내부링크]

어려서부터 게임을 너무나 좋아한 나머지 자연스럽게 컴퓨터를 애정하게 되었다. 애정하는 대상은 늘 하나라도 더 알고싶어진다. 그렇게 용산에서 컴퓨터 조립 알바까지 하게 되었었고 그때 가장 먼저 찾던 부품이 CPU였다. 흔히 사람의 뇌에 비유되는 것이 바로 CPU 가 아닐까. 중앙 처리 장치 Central Processing Unit 간단한 정의를 위키에서 가져와 보자면, 컴퓨터 시스템을 통제하고 프로그램 연산을 실행 & 처리하는 가장 핵심적인 컴퓨터의 제어 장치, 혹은 그 기능을 내장한 칩. 이라고 정의되어 있다. Cpu는 단순하게 나눈다면, 3가지 영역으로 나누어져 있다. 연산: 연산을 담당하는 산술 논리 연산 장치 ALU - Arithmetic Logic Unit. 제어: 명령어의 해석과 올바른 실행을 위해 CPU 내부적으로 제어하는 제어부 - Control Unit. 기억: 처리할 명령어를 저정하는 역할을 하는 프로세스 레지스터 - Register set. 연산 장치는 말 그대로

그래픽 카드에 관한 컴퓨터학 개론 [내부링크]

게임 좀 한다하는 사람들, 그들이 컴퓨터를 구매하고자 할때 열광하는 것은 CPU도 Memory도 메인 보드도 아닌 바로 이것 그래픽 카드일 것이다. 독일의 쾰른에서 열리는 GameScom에서 발표되는 게임을 볼때면 항상 그래픽 카드 걱정을 하게된다. 아...업그레이드 해야하나? Display adaptor 라고도 한다 Graphics card 또는 비디오 카드, 비디오 어댑터 등등. CPU의 명령하에 그래픽 연산을 집중하고 모니터로 출력하는 역할을 담당한다. 과거에는 단순히 CPU가 연산하여 메모리에 떠있는 화면을 출력하기 위한 용도에 지나지 않았지다. 하지만 기술의 발전으로 해상도가 높아지고 표현해야하는 색의 가짓수가 폭발적으로 많아졌으며 2D를 넘어 3D 좌표계의 연산이 필요해지면서 CPU 연산의 보조를 위해 발전되었다. 가장 중요한 역할은 3D 랜더링을 위한 소숫점 계산과 계산된 결과를 화면에 출력하는 것으로, 연산 전용 장치로서 자리매김 하고있다. 그래픽 카드에 대해서는 본격