본문 바로가기

전체 글170

[DEV] 콜백 함수 Callback Function 1. 콜백 함수의 개념콜백 함수(callback function)란 다른 함수의 인자로 전달되어 실행되는 함수이다. 쉽게 말해, 콜백 함수는 "다른 함수가 끝난 후 실행될 함수"라고 할 수 있다. 주로 비동기 처리에서 자주 사용된다.콜백 함수는 동기적으로 실행될 수도 있고, 비동기적으로 실행될 수도 있다. 특히 비동기적 처리에서 많이 활용되며, 이벤트 기반 시스템, 네트워크 요청, 타이머 등 시간이 걸리는 작업을 처리할 때 자주 사용된다.  2. 콜백 함수의 동작 방식콜백 함수의 동작은 간단하다. 외부 함수가 실행될 때 콜백 함수를 인자로 받아서, 특정 작업을 마친 후 콜백 함수를 호출한다. 콜백 함수는 비동기 처리가 필요한 경우, 작업이 끝난 후 실행된다.// 콜백 함수 예시function greet(.. 2024. 11. 18.
[DEV] REST API 1. REST API의 기본 개념 REST API는 “Representational State Transfer”의 약자이다. 간단히 말하면, 웹에서 데이터를 주고받기 위한 규칙이라고 할 수 있다. 여기서 API는 “Application Programming Interface”의 약자이며, 서로 다른 소프트웨어가 데이터나 기능을 주고받을 수 있도록 하는 연결고리이다. REST API는 HTTP 프로토콜을 사용해 데이터를 주고받는다. 즉, 웹에서 우리가 웹 페이지를 요청할 때 사용하는 것과 같은 HTTP를 통해 서버와 클라이언트가 서로 정보를 주고받는다. REST API는 서버와 클라이언트 간의 데이터 교환을 효율적으로 할 수 있도록 설계된 규칙을 따르며, 이를 통해 서로 다른 시스템들이 쉽게 소통할 수 있.. 2024. 11. 16.
[Documentation] Sphinx와 Doxygen을 활용한 프로젝트 문서화 Sphinx는 파이썬 프로젝트에 자주 사용되는 강력한 문서화 도구이지만, Doxygen과 연동하면 C, C++, Java 등 다양한 언어의 문서화도 가능하다. 본 글에서는 Sphinx와 Doxygen을 함께 활용하여 다중 언어 프로젝트를 문서화하는 방법을 설명한다.  1. Doxygen이란?Doxygen은 C, C++, Java, Python, Fortran, VHDL 등 여러 언어의 소스 코드를 문서화할 수 있는 도구이다. Doxygen은 코드 내 주석을 기반으로 HTML, LaTeX, PDF 등의 문서를 생성할 수 있다.  2. Doxygen 설치Doxygen은 공식 웹사이트에서 다운로드하거나 패키지 관리자를 통해 설치할 수 있다. Linux:sudo apt-get install doxygen mac.. 2024. 11. 16.
[Graphics] 컴퓨터 그래픽스 공부과정, 그리고 알게 된 것 나는 2019년 3월부터 컴퓨터 그래픽스에 관심을 가지고 공부하기 시작했다. 2년이 넘는 시간동안 (지속적이진 않았지만) 그래픽스를 나름대로 공부한 과정과 그 과정에서 알게 된 것들을 정리해보는 시간을 가지려고 한다. 그래픽스 전공 교수님들과 상담 MAYA에서 pymel, cmds로 간단한 스크립트 모델링 컴퓨터 그래픽스에 대한 리서치 :: 기본 웹서치, 포프, 채용공고 등 쉐이더 GLSL 공부 :: 생활코딩 이을, thebookofshaders OpenGL 공부 :: Computer Graphics Programming in OpenGL 대학교 컴퓨터 공학 수업 :: 프로그래밍언어론, 그래픽프로그래밍설계, 컴퓨터그래픽스, 머신러닝 머신러닝 :: 비주얼라이제이션 연구실 학부연구생 컴퓨터 그래픽스에 관심을.. 2022. 8. 29.
[Research] What is Computer Graphics? Q1. What is the difference between ‘Graphic’ and ‘Graphics’? ‘Graphic’ is a word for refering concepts. CG, images being made on the screens and designed stuff. They are all called ‘Graphic’. ‘Graphics’ is a word for refering a field of study. ‘Graphics’ is a field of studying ‘Graphic’. Similarly, Economics is a field of studying Economy. Q2. What is the difference between Graphics and Image pr.. 2022. 8. 29.
[Metal] 3D Models * 교재 제목 : Metal by Tutorials second edition (Beginning Game Engine Development with Metal) Questions 1. "Quads work well with subdivision or smoothing algorithms." :: quad mesh를 사용하면 bilinear interpolation이 가능해서 더 부드러운 곡면 표현이 가능 + retopology, remeshing 2. (*.mtl) "newmtl material_1 : This is the group that contains all of the cone's vertices." vertices? :: 각 그룹에 해당하는 material을 여러 개의 정점에 적용시킬 수 있.. 2022. 8. 7.
[Metal] Hello, Metal! * 교재 제목 : Metal by Tutorials second edition (Beginning Game Engine Development with Metal) Questions 1. Metal에서는 vertex shader, fragment shader 대신 vertex function, fragment function이라는 용어를 사용한다. *.metal 쉐이더 파일에 vertex shader에 해당하는 vertex function, fragment shader에 사용하는 fragment function을 한 번에 저장하고 사용하는 게 일반적이어서 그런가? (이를테면 이런 식이다) #include using namespace metal; struct VertexIn { float4 position .. 2022. 7. 20.
[OpenGL] Material - PBR, Texture PBR 물리 기반 렌더링 (Physically Based Rendering). 표면의 재질에 따른 빛의 반사가 물리적으로 어떻게 이루어지는지를 계산하여 표현하는 기법 https://namu.wiki/w/%EB%AC%BC%EB%A6%AC%20%EA%B8%B0%EB%B0%98%20%EB%A0%8C%EB%8D%94%EB%A7%81#rfn-4 난반사 (Diffuse) 표면으로 들어온 빛이 반사될 때, 다수의 방향들로 반사되는 빛 반사, 재질의 표면이 가진 색의 파장을 반사 https://ko.wikipedia.org/wiki/%EB%82%9C%EB%B0%98%EC%82%AC 정반사 (Specular) 거울처럼 매끈한 면을 경계로 일어나는 반사, 모든 표면은 빛을 받는 위치와 각도에 따라 빛 자체를 어느정도 반사.. 2022. 7. 6.
[C++] Header-only Library Header-only Library 라이브러리를 구성하는 매크로, 함수, 클래스 등이 모두 헤더 파일 안에서 정의되어 컴파일러에게 보여지는 라이브러리 Header-only Library의 장점 추상화(구현의 구체적인 사항을 사용자에게로부터 숨김)하여 헤더파일+라이브러리(.dll, .lib, .dylib 등)의 구성으로 배포하는 일반 라이브러리와 달리, 운영체제별 컴파일 또는 복잡한 경로설정이 필요 없다. 빌드할 필요 없이 파일을 코드에 포함시키기만 하면 된다. 따라서 멀티플랫폼 지원이 가능하다. + 라이브러리가 템플릿 코드인 경우 header-only 형태로 구현/배포하는 것이 필수적이다. Header-only Library의 단점 - 라이브러리를 수정할 경우 해당 라이브러리를 사용하는 모든 컴파일 단위.. 2022. 3. 31.