42seoul
22 posts
초월자가 되는 방법, 42서울 마지막 공통과제 후기

초월자(Transcendence) 가 되기 위한 길 고수가 되는 길은 참 멀고도 험하다. 어떤 분야가 아무리 사소해도 결국 완성이라는 수준이 있다면 거길 도달하기 위해선, 신기하게도 어떤 ‘통달’이라는 특정한 수준 이상의 연마가 필요하다. 여러 미디어나 영화 속 백발의 고수가, 청년의 시절 웃통을 까고 기본기를 연습하는 그런 땀내 나는 느낌. 그런 통과 의례가 없다면 고수라는 말 붙이기가 쉽지 않을 것 같다. 옛날에 이런 짤이 있었지… 42서울의 과제에서도 그런 과제가 있다. 기존의 지옥 같은 고통 속에 몸부림을 쳤어도, 비교도 안될 만큼 양과 비교도 안될 만큼의 깊이를 가지는 과제. 물론, 그것이 끝인가? 아니다. 어쩌면 개발의 진짜 입구에 초대를 받은 것이라고 봐도 과언이 아닌 과제. 그것이 바로 라는 과제이다. 무슨 과제인가? 본 과제는 크게는 다음과 같은 내용을 담고 있다. TypeScript 를 배우고, 프론트엔드 웹을 구축하라. 반드시 의 형태를 띄어야한다. Type…

December 05, 2023
42seoul
Webserv를 다시 돌아보며 - 4

Reminding : Webserv 웹서브의 마지막 후기 글. 이번에는 ‘실패’와 ‘성공’을 곱씹어 보려고 한다. Webserv 1.0의 실패 = 신뢰감이 떨어지고, 팀은 부숴졌다. 사실 이 내용을 적는 것이 옳은가? 하는 생각을 조금 해보았다. 나에게 이것을 곱씹는 것이 도움이 될까? 라는 생각을 잠시 해보았다. 이윽고 내 머릿속에 남겨진 말은 ‘그럼에도 불구하고 가치있는 작업이다’ 라는 생각이었다. 나의 부족함을 드러내는 것일 수도 있으며, 잘못 적으면 오해가 될 만한 부분이라고 생각도 든다. 하지만 그런 것들이 부끄럽거나, 그저 포장만 잘해서는 진짜 객관적 성장을 이루는 것은 불가능하다는걸 몸소 지금껏 느껴오지 않았는가? 더불어 내가 부족했던 점에 대해서도 좀더 고민을 해봐야 한다고 생각했다. 왜냐면 실패기의 과정에서 나는 상당히 열도 받았었고, 어이가 없었기에 결국 박차고 일어나 새롭게 팀을 구했다. 하지만 거기서 더 좋은 방법이나, 더 현명한 해결책이 있었을지 누가 알겠는…

April 10, 2023
42seoul
etc
Webserv를 다시 돌아보며 - 3

Reminding : Webserv Webserv 구축, ‘우리의 웹서브’는 이번 Post에서는 웹서브의 구현 구조에 대해서 설명하는 시간을 가지려고 한다. 이 이야기를 정리하려면 사실 굉장히 다사다난했던(?) 내 팀 프로젝트 과정을 설명을 해야겠지만… 이는 스스로의 과정을 되돌아보는 다음 게시물에서 자세히 다루도록 하고, 지금은 그저 핵심적인 내용과 성공적으로 구현한 내용에 대해 살펴보고자 한다. 우선 나는 전체 기간으로 따지면 웹 서브를 3달에 걸쳐 구현했다. 1달 스터디를 하고 1달을 짰지만, 팀이 와해(…) 되는 바람에, 거기서 나와 스스로 팀을 다시 꾸렸다. 그리고 그 팀을 이끌면서 메인 로직을 담당하여 설계를 했으며, 그 결과 2 + 1달로 승부를 보고 평가를 마쳤다. 웹서브는 상당히 부담스러운 과제였다. 내용 자체도 워낙 많았지만 모호한 영역도 상당했다. 그렇기에 거기서 어떤 식으로 구현을 하는가? 해야 하는가? 라는 부분은 항상 머릿속에 맴돌았고, 그래도 감사한 것은…

April 10, 2023
42seoul
etc
Webserv를 다시 돌아보며 - 2

Reminding : Webserv Key of Webserv 웹 서브의 핵심은 이다. 정말 말이 길지만 이를 풀어가면서 웹서브의 역할과 로직에 대해서 정리해보고자 한다. 비동기(Asynchronous) 보통 통신, 혹은 어떤 객체와 객체 간의 통신을 떠올리면 우리는 자연스럽게 로직을 이렇게 생각할 수 있다. A라는 쪽에서 B에게 무언가를 전달하면, 전달받은 것에 대해 B 는 다시 A를 향해 대응하는 내용을 담아 전달을 한다. 이러한 방식은 에 대한 가 명확하게 예상되며, 이를 통해 요청하는 상황에서 얻을 답을 바로 받을 수 있다는 확신을 가지는 소통 방식이라 할 수 있다. 컴퓨터적으로 보았을 때 이러한 통신의 루틴은 아주 통상적인 방식에 가깝다. 예를 들어 read() 함수를 떠올려보자. 표준 입력으로 해당 함수를 호출하게 되면, 해당 함수는 EOF 를 만나기 전까지 계속 기다리며 사용자의 표준 입력을 기다린다. 그리곤 기다리던 과정에서 원하는 요청(데이터)이 들어오면, 이에…

April 09, 2023
42seoul
etc
Webserv를 다시 돌아보며 - 1

Reminding : Webserv ‘Webserv’ = HTTP + Web + nginx 드디어, 정말로 놀랍게도 Coding의 C 도 모른다고 생각했던 류한솔은 42서울에서 가장 난이도 높은 과제 중 하나를 클리어 해냈다. 스스로도 대단히 감격스러운 순간이다. 😂 백앤드가 무엇인가를 배우거나, 아직 완벽히 준비된 것은 아니겠지만, 웹이란 것이 무얼 말하고, HTTP 통신이란 것이 무얼 원하는 것인가 등등… 정말 실질적으로 동작하는 서버를 구축했다는 점에서 내가 정말 무언가를 만들었구나- 라는 생각이 들었다. 이제는 정말 배우기만 하는게 아니라 스스로 만들어 낼 수 있다라는 확신이 드는 순간이 아닐까? 이제 앞으로 딱 두 과제, 두 과제만 해결한다면 나는 42서울의 공통과정을 마치고 개발자로서 취업도, 또 다른 도전도 가능해진다. 나의 마지막 도전이 정말 제대로 시작되는 것 같아 대단히 감격스럽고, 뜻 깊다. 처음 웹 서브를 도전하게 되었을 때, 정말 막연한 두려움이 내 앞을 …

March 29, 2023
42seoul
etc
Re) Minishell을 다시 돌아보며

Reminding : Minishell Introducing Minishell 42서울. 2022년 11월 들어가게 된 이 공간에서 나는 기어코 살아남았고, 버텼고, 내 나름의 자신감을 가질 만큼 많은 내용을 밤낮을 가리지 않고 배울 수 있었다. 지속적으로 학습한 내용 중 중요하다고 생각하는 부분들에 대해 남겨왔다. 그런데 그러던 와중 드디어 약 두개 정도 과제가 남고, 정규 공통과정을 마무리 짓기 얼마 남지 않은 시점까지 와버렸다. 생각보다는 빠르게, 생각보다는 느린 듯 여러 생각이 교차되는 도중에 곰곰히 생각해보았다. 나를 남기고 나를 알리고, 내 능력을 보여줘야 하는데, 내 모습이나 내가 누군가야 자기소개서를 통해, 인터뷰릍 통해 충분히 기회가 있다지만 내 실력은? 거기서 다시 그런 글들을 적는 시간도 필요하겠구나 하는 생각이 들었다. 결국 내가 나름 다양한 일들을 하면서 살았지만, 이제 실력과 노하우, 깊이감으로 21세기스럽게 ‘만든다’ 를 하겠다고 나섰는데, 이러한 나를…

July 15, 2022
42seoul
etc
Minitalk - 너도 할 수 있다 소켓통신

Prologue 진작에 끝난 과제… 사실 정리 하려면 빨리 했어야 하는데… 허허; push swap을 끝내고 나서야 이제야 보이는 정리 안된 모습에, 과제를 잊어 먹기전에 적어보려고 합니다. 해당 글이 과제 하시는데 아이디어를 얻는데 도움이 되길 기대하면서… Minitalk 와 소켓통신 기본 개념 미니톡이라는 과제는 기본적으로 ‘프로그램 간의 소통을 어떻게 해 내는가?’ 라는 부분에서 핵심적으로 이해해야할 것들, 그리고 통신이란 행위가 어떤 식인가를 이해하는 중요한 과제 입니다. 난이도도 쉽고, 이걸 굳이? 라고 할 수 있겠지만 우리가 사용하는 모든 것들이 통신을 통해 이루어지고 있다는 점을 감안한다면, 통신의 원리를 이해하고, 간단한 방법들은 직접 구현해 보는 것은 네트워크의 이해도를 높여준다고 생각합니다. 특별히 해당 과제는 약식의 구현이고, 그걸 위해 유닉스 시스템이 가진 ‘시그널’이란 도구를 활용한 다는 점에서 여러모로 유닉스 시스템에 대한 이해를 위한 행위라고 생각됩니다.…

April 23, 2022
42seoul
push swap 정복기(4) - push_swap의 함정...

Prologue 후… 모든 것을 마친 뒤의 만족감은 훌륭합니다. 별 일이 다 있었고, 아직 평가 전이긴 하지만 이 감정, 이 분노, 이 상황 그대로 정리하고자… 할 일은 좀 있지만, 글부터 적어 내려 가려고 합니다. 해당 내용이 다른 분들에게 얼마나 많은 도움이 될진 모르겠지만 우선, 어제 갑작스럽게 충격의 도가니에 빠졌다가 헤어나오는게 쉽지 않았습니다. Push Swap 사실 알고리즘에 대한 걱정은 생각보다 기우였습니다. 알고리즘 인강을 들으며 직접 기본기를 배우기 조금 먼저 시작했었고, 하나씩 정리하고 방식과 동작 원리를 이해하는 연습이 될 때마다 훨씬 폭 넓게 작동 기믹을 이해하기 시작했었고, 그 결실로 LIS 알고리즘으로 구현하는 방식을 해볼 수 있었고, 해당 방식은 상당히 인상적임과 동시에 내가 어떤 식으로 알고리즘을 이해하고 활용해야할 지에 대한 개괄적인 답변을 보여주었다고 생각합니다. 그렇기에 이 과제가 가진 매우 중요한 시사점. 학습을 계획하고 왜 굳이 이런 문제를 …

April 23, 2022
42seoul
push swap 정복기(3) - LIS의 함정...두둥

Prologue 아.. 망했습니다. 사람은 역시 꼼꼼하게 읽어야 하는 것이었습니다. LIS 배열을 만드는 것에서 문제가 생겼습니다. 오늘 이 포스팅은 해당 내용에 대해서 스스로 반성 및 어떻게 할 지를 정리하는 글로써 남기려고 합니다. (그리곤 불타는 코딩 🫣) Push Swap LIS와 이분탐색의 한계 가장 큰 문제는 역시 제가 꼼꼼하게 읽지 않은 것이었습니다. 그 리고 동시에 LIS 성능을 극대화 하는 방법은 무엇인가에 대한 고민이 없었기에 만들어놓고 결국 문제가 있음을 깨달았고 이를 수정해보기 전에 단순 로직 구현으론 어떤 문제가 생기는지를 정리하였습니다. 1. LIS 배열의 극대화 우선 첫 번째 발견한 문제는 LIS 작성 중의 효율에 대한 문제였습니다. 예를 들어 이런 숫자의 배열이 들어왔다고 가정합니다. 이 배열에서 현재 상태 그대로 LIS를 구한다고 하면, LIS 값은 이렇게 지정되게 됩니다. 보시다시피 , , 을 현재의 스택 상태에서 구하게 되고 그렇게 될 경우 스…

April 20, 2022
42seoul
push swap 정복기(2) - LIS 하위 배열을 만들어보자.

Prologue 우선은 중간 정리. LIS 알고리즘으로 하겠다고 결정을 하고, 내용을 이해하고 구현할 수 있는 곳까지 구현을 마무리 지어봤습니다. 핵심적인 알고리즘을 다 마무리 하고 싶었지만, 추가로 사용하기 위한 것들을 만들다 터지고…, 서순을 잘못 하거나 하는 등으로 노드를 잘못 연결시킨다던가 하는 일들 때문에… 어느새 하루를 다 쓰고, 부터 까지 만들고나니 12시가… 😅 이러나 저러나 코드가 나름 순조롭게 진행 중인 것 같아. 다행이라면 다행인? 상황입니다. 알고리즘이라고 잔뜩 쫄았지만, 생각보다 알고리즘 자체에 대한 이해가 어느 정도 되고, 레퍼런스가 될만한 것들을 구글링 하면서 찾아보면서 나름 순조롭게 된것 같아 다행입니다. 그리하야… CS 공부를 하기 전 해놓았던 것들을 정리하는 글을 써 놓으려고 합니다. Push Swap LIS 의 핵심은 여기에 있다고 생각했습니다. 다른 소팅 방식도 있지만, 다른 소팅의 경우 기준이 될만한 것을 만든다기 보단, 분할 -> 기준치를…

April 16, 2022
42seoul
push swap 정복기(1)

Prologue 올 것이 왔습니다. 사실 C 언어 강의를 마무리 짓고, So_long이나 Minitalk을 통한 소켓통신 구현 등… 이런 녀석들에 대해선 부담이란걸 느낀 적은 없었습니다. 멘탈이 바스라질 일은 있었지만(so_long… ^^) 그렇다고 못할 수준이냐? 지금 생각하면 그렇진 않았습니다. 하지만 알고리즘은 확실히 부담이 느껴집니다. 이유는 수학을 손 놓은지 어언 몇 년째이고, 정리 정돈이라니…! 내가 제일 못 하는 부분 중에 하나를 들이밀다니. 😳 해본적 없는 걸 해보게 된다는 것 만큼 가슴 두근거리는(부정적으로) 일은 없을 것 같습니다. 그럼에도 인강도 듣고, 결국 해쳐서 해결해 나갈 것을 알기에… 제대로 빡세게 공부해보려고 합니다. 이왕 하는김에! 보너스까지!(이래놓고 so_long은 보너스 안 했지만(…)) 우선, 가이드로 제공되는 문서들을 찬찬히 훑어보먼서 핵심들 위주로 정리해보고자 합니다. 그 뒤에 실제 부분부분 구현부터 시작해서 진행해보겠습니다. Push Sw…

April 13, 2022
42seoul
So_Long을 마치면서

So_Long 해당 과제에 대해 정리는 저장 목적도 있지만, 동시에 다음 번 과제를 고려하여 이렇게 준비하게 되었습니다. 앞으로 해야하는 과제들을 위한 정리적 차원의 글이라고 보시면 좋을 것 같습니다. 🙂 So_Long 이건 무슨 과제였던가? 게임을 만든 다는 것을 실질적으로 체험해 본다는 것은 대단히 흥미로운 경험입니다. 하물며 요즘은 엔진이나, 게임위한 툴이 존재하는데, 그런 편리함을 모두 없애버리고 순수하게 데이터를 만져서 무언가를 표현한다는 것은 그만큼 쉽지 않아 보입니다. 얻은 것, 그리고 얻어야 할 것 그렇기에 과제에 대해 저는 상당한 흥미를 갖고 있었습니다. 비전공자로써 무언가를 만든다는 것에 대한 흥미를 갖고 있었음에도, 아직까지 해본건 그저 함수를 만들어 본 것 정도의 일이었기에 So_Long 이라는 프로그램을 만든다는 것은 확실히 ‘프로그램 다운 프로그램’을 만든다는 점에서 대단히, 대단히 괜찮은 것이 아닐까 하는 생각을 갖고 있었습니다. 그래서 So_long …

April 03, 2022
42seoul
Markdown 사용을 위한 메뉴얼

해당 글은 이분의 글을 참고로 작성되었음을 알려드립니다. Markdown 사용을 위한 메뉴얼 사용화 시키기 위하여 저장해둔 글입니다. [공통] 마크다운 markdown 작성법 1. 마크다운에 관하여 1.1. 마크다운이란? Markdown은 텍스트 기반의 마크업언어로 2004년 존그루버에 의해 만들어졌으며 쉽게 쓰고 읽을 수 있으며 HTML로 변환이 가능하다. 특수기호와 문자를 이용한 매우 간단한 구조의 문법을 사용하여 웹에서도 보다 빠르게 컨텐츠를 작성하고 보다 직관적으로 인식할 수 있다. 마크다운이 최근 각광받기 시작한 이유는 깃헙(https://github.com) 덕분이다. 깃헙의 저장소Repository에 관한 정보를 기록하는 README.md는 깃헙을 사용하는 사람이라면 누구나 가장 먼저 접하게 되는 마크다운 문서였다. 마크다운을 통해서 설치방법, 소스코드 설명, 이슈 등을 간단하게 기록하고 가독성을 높일 수 있다는 강점이 부각되면서 점점 여러 곳으로 퍼져가게 된다. 1.…

March 18, 2022
42seoul
study
42서울 exam rank 02 후기

RANK_02 Study 스터디 해야하 할 로직들을 빠르게 정리한 것입니다. 구체적으로 어떤 문제인지는 과제를 잘 해결해오신 분들에게는 너무나 쉬운 내용일 것입니다. 해당 내용은 바뀔 수 있으며, 도용을 방지하고자 구체적인 코드는 작성하여 올리지 않을 것입니다. 핵심 내용 서클 과제들을 클리어하고 그 로직과 원리를 이해해둘 것. vim 을 활용하는 만큼, vim 핵심 기능 몇 가지는 숙지해둘 것 준비물 A4 펜 시험 과정 해당 내용은 개선되었을 여지가 있어 차후 작성 예정입니다. 로직 정리 printf 핵심 %c, %s, %x 를 printf 와 같이 출력해 낼 수 있는가? 알아야 하는 주요 개념 허용함수 : write, malloc, free 필요헤더 : , 가변인자 : 인자들을 가변적으로 받을 수 있는 자료형 필요 헤더 : 핵심사항 : 변수 선언 -> ({변수명}, s) -> ({변수명}, {자료타입}) 으로 해당 변수…

March 18, 2022
42seoul
MinilibX_08_Sync(완료)

Sync What is sync? 이전에 설명한 것처럼, 직접 mlx 를 가지고 프레임을 직접 관리할수 있습니다. 하지만 이는 꽤나 끔직하며 시간 소비적인 일입니다. 게다가 더 많은 메모리를 먹고, 우리가 관리하는 프레임은 지속적으로 완전히 갱신되어야 할 필요가 있죠. 이는 매우 비효율적이고 더 나아가선 모든 코스트를 제외할 필요를 야기할 수 있습니다. 2020년의 MLX 버전 부터는 프레임을 synchronize 시키는 것이 가능해졌습니다. 이는 임시 방편으로 다수의 이미지를 스크린 버퍼링을 위해 만들 필요가 사라졌다는 것을 의미합니다. Using sync 우선 이해해야 하는 걸 먼저 정의하고 시작하겠습니다. 함수는 정의된 커맨드 코드들로 호출될 수 있습니다. 첫번째로 은 이미지에 대한 모든 다음 호출을 버퍼해줍니다. ( 은 MLX image object 의 포인터입니다.) 만약 변화를 증식시키길 원한다면, 당신은 이미지가 표시되는 중인 창을 를 활용하고, 에대해 flus…

March 14, 2022
42seoul
MinilibX_07_Images(완료)

Images Introduction mlx 상에서 완벽한 잠재력 끌어 내기 위해 중요한 도구 중 하입니다. 이 함수들은 당신이 이미지 객체로부터 파일을 직접 읽는 것을 허락해주고, 포인터로 접근하는 것을 가능케 합니다. 이는 텍스쳐나 스프라이트 등을 호출하여 윈도우에 호출해주는 역할을 하며, 이를통해 게임의 캐릭터, 게임 요를 만들어냅니다. Reading images 파일부터 이미지 객체까지 읽어 들이기 위하여, 우리는 XMP 혹은 PNG 포맷을 필요로 합니다. XPM 파일의 경우 온라인 상의 변환 웹 페이지를 활용하시면, PNG 파일을 사용하여 쉽게 제작이 가능하며, 추천하는 이미지 포맷입니다. 이미지 파일들을 읽기 위해, 우리는 와 라는 함수 호출이 필요합니다. 주의사항은 는 현재 메모리 누수가 존재 한다는 점입니다. 두 함수들은 모두 동일한 인자들과 동일한 사용성을 제공한다는 점을 알아 주십시오. 더불어, 현재 알려진 바, mlx 라이브러리 mms 버전은 렌더링 과정에서의…

March 14, 2022
42seoul
MinilibX_06_Loops(완료)

Loops Introduction 이제 우리는 MiniLibX Library의 기초를 이해했습니다. 그러니 창 안에 작은 애니메이션을 그려보는걸 시작합시다. 이걸 위해 우리는 새로운 함수 , 이라는 새로운 두 함수를 사용해야 합니다. 반복문은 새로운 프레임들을 렌더링하기 위해 으로 등록된 hook을 호출 이어나가는 MiniLibX의 기능 중 하나입니다. Hooking into loops 반복문을 초기화 하기 위해, 함수를 인스턴스를 가지고 호출을 합니다. 우리가 따로 등록한 loop hook가 없으로 아무것도 안 일어날 겁니다. 그러므로 현재 상태로는 프레임과 관련된 기능들을 사용하는 것이 쉽지 않습니다. 따라서 우리는 getting started 챕터에서 묘사했던 변화를 사용하고, 새로운 창을 만들어야 할 것입니다. 당신의 인자들을 잘 전달한다 할 수 있고, 능숙하다는 전재하에 진행함을 참조하여 주세요. 현재 무엇이든 그릴 수 있는 화이트보드는 이런 모습으로 표현 될 수…

March 14, 2022
42seoul
MinilibX_05_Events(완료)

Events Introduction 이벤트들은 mlx 안에서 대화식 어플리케이션의 근간이라고 볼 수 있습니다. 그러므로 차후의 그래픽 프로젝트에서도 사용될 것이므로 이 챕터를 완벽하게 이해하는 것은 필수라고 할 수 있습니다. 모든 mlx 의 hook 들은 이벤트가 발생할 때마다 호출되어지는 함수 그 이상도 그 이하도 아닙니다. 모든 이벤트 함수들을 완벽하게 숙지하는 것은 필수는 아니지만, 각 X11 이벤트들에 따라서 빠르게 검토해보고 정확하게 용도를 파악해두는 것은 향후를 위해 매우 중요한 부분입니다. MacOS version 주) Mac OS 에서 Cocoa(Appkit) 그리고 OpenGL 버전은 부분적으로 X11 이벤트를 지원하지만, 는 지원하지 않는다(mlx의 x_mask 인자는 쓸모가 없으므로 0으로 두시면 됩니다.). 지원 이벤트들 : X11 interface X11 은 mlx와 함께 사용되는 라이브러리 입니다. X11 events 다양한 이벤트 들이 존재합니다. Key…

March 14, 2022
42seoul
MinilibX_04_Hooks(완료)

Hooks 컴퓨터 프로그래밍에서 hooking 이란 용어가 있습니다. 이는 SW 컴포넌트 사이에서 지나가는 메시지, 혹은 이벤트들, 혹은 함수 호출을 가로채서 다른 SW 컴포넌트의, 혹은 어플리케이션의, 운영체제의 행동, 인자를 대체하는데 사용하는 기술을 아우르는 말입니다. 그러한 함수 콜, 이벤트들, 메시지를 가로채는 걸 다루는 code 들을 이라고 부릅니다. Introduction Hooking은 디버깅이라던지, 함수의 확장 등을 포함하여 다양한 목적으로 사용됩니다. 예시로서는 키보드를 가로채거나, 어플리케이션에 도달하기 이전에 마우스 이벤트 메시지를 취한다거나, 특정 어플리케이션이나 다른 컴포넌트의 함수 수정 혹은 감시하는 행위를 위해 운영체제의 호출을 가로채는 등을 들 수 있습니다. 이는 벤치마킹 프로그램등에서도 널리 쓰이며, 3D 게임의 프레임레이트를 측정하는 용과 같이 생각보다 여기저기서 사용되는 보편적인 개념입니다. Hooking into key events hook…

March 14, 2022
42seoul
MinilibX_03_colors(완료)

들어가기 앞서 해당 내용은 참고 정도로 생각하면 좋습니다. 픽셀을 직접 그리는 과제를 제외하곤 사용성이 크게 있진 않은 개념입니다. Colors 색은 정수 형태로 표현됩니다. 그러므로 몇 가지 ARGB 값을 포함할 수 있는 정수를 획득할 수 있도록 기믹적인 것들을 필요로 합니다. The color integer standard 문자 뜻 T 투명도 R 붉은색 컴포넌트 G 초록색 컴포넌트 B 파란색 컴포넌트 RGB 색은 다음처럼 초기화 될 수 있다. 색 TRGB 표시 red 0x00FF0000 green 0x0000FF00 blue 0x000000FF Encoding and decoding colors 색을 encode, decode 하는 방법으로 두가지를 사용할 수 있습니다. 비트 연산을 활용하는 방법과, int, char 값으로 변환하는 방법입니다. char/int conversion 1 바이트 당 RGB 값이 지정되고, 당연히 16진수의 정수값으로 지정한 것을 반대로 설정하는 것…

March 14, 2022
42seoul
MinilibX_02_Getting Started(완료)

Getting started 들어가면서 첫 파트에 앞서 간단한 개념 정리를 통해 MiniLibX가 무엇을 하는지를 알았습니다. 이번 파트는 그에 이어서 기초적인 것을 진행할 것입니다. 이 라이브러리를 사용하여 성능적으로 좋은 코드를 어떻게 작성하는지에 대한 정보들을 제공할 것이며, 이러한 내용은 다양한 프로젝트를 위해(앞으로 자주 쓰게 되는 만큼), 퍼포먼스는 핵심입니다. 이 섹션은 분명하게 정독 하시기를 추천 드립니다. 설치 절차 맥에서 컴파일 하기(x86-64, intel Based) MiniLibX는 맥 OS의 Cocoa(Appkit) 와 OpenGL(더이상 X11을 사용하지 않는다) 필요로 하기 때문에, 우리는 두 가지 사항을 링킹할 필요가 있습니다. 이는 복잡한 컴파일 과정일 수 있습니다. 기본적인 컴파일 절차는 다음과 같습니다. 목적파일을 위해, 당신의 프로젝트 루트 단에 로 지정된 디렉토리 안에 mlx 소스코드가 있다는 전제 하에 다음 규칙을 당신의 Makefile에 …

March 14, 2022
42seoul
MinilibX_라이브러리 가이드 문서 번역(완료)

Prologue 해당 문서는 42 so_long 등에 사용하는 그래픽 라이브러리에 대한 내용을 정리한 해당 본문 을 통번역 한 문서입니다. 최대한 정확하게 정리하고자 하였으나, 다소 차이가 있을 수 있으므로 참고 바랍니다. 더불어 내용에서 다소 부정확해 보이는 표현은 의역 및 수정한 부분이 있으므로 유의하십시오. MiniLibX Introduction 들어가면서 MiniLibx는 간단한 그래픽 라이브러리로 X-window 그리고 Cocoa에 대한 지식 없이도 스크린 상에 무언가를 렌더링 하는 가장 기초적인 일을 할 수 있는 라이브러리입니다. 지원하는 기능들에는 simple window creation, questionable drawing tool(의심스러운 그리기 도구란 의미다… 왜 이렇게 적었는지는… 그만 알아보자), half-ass image functions and a weird event를 갖고 있다(a에서 ss로 끝나는 단어가 있는 걸 봐선 욕먹는다고 보면 됩니다.) X…

March 14, 2022
42seoul