#1. 고등학교 게임 개발 강사 후기
·
활동/기타
모교 선생님에게 유니티를 가르칠 사람을 구인하고 있다고 연락이 왔다. 사람을 가르치는 일에 흥미를 갖고 있었고 대학교를 졸업하고 할 일이 없던 나는 수락하게 됐다. 포트폴리오를 전송하고 몇 일이 지나지 않아 합격했다. 담당하게 된 고등학교는 제주도에 위치해 있어서 물리적인 거리가 멀어 비대면으로 계약 시간 만큼 강의하게 됐다. 재능 기부 형태의 강의는 여럿 해봤었지만, 돈을 받고 강의를 하는 경험은 없었기 때문에 두려움은 살짝 있었다. 내가 말을 잘하는 편도 아니고 전공자가 아닌 학생들을 가르치는 경험은 처음이었기 때문이었다. 먼저 커리큘럼 작성을 위해서 전임 선생님의 강의 자료를 기반으로 추가하려고 했으나, 마땅한 자료가 없어 학생들이 만들어 본 게임을 바탕으로 역량을 파악하고 새로운 커리큘럼을 작성했..
[크래프톤 정글] 크래프톤 정글 7기를 끝마치며..
·
활동/크래프톤 정글
1월 23일 수료식을 마지막으로 작년 9월 4일에 시작한 정글 여정을 끝마쳤다. 약 5개월의 기간 동안에 많은 배움과 일들이 있었다. 블로그에 그동안 소홀했던 것이 너무나도 아쉽다. 다른 기억들이 더욱더 휘발되거나 희미하게 기억에 남기 전에 후기를 작성해 본다. ⭐ 크래프톤 정글을 선택한 이유고등학교와 대학교를 게임 개발을 전공했다. C#과 C++, DirectX나 OpenGL 등과 같은 게임 개발에 필요한 지식들을 배워왔다. CS와 OS도 학습을 했지만, 게임 개발과 직접적인 연관성을 느끼지 못해서 깊이 있게 공부하지 않았다. 대학교 3학년, 마지막 학년이 되었을 때 윈도우 시스템 프로그래밍을 수업으로 들었고 흥미를 붙였다. 따로 CS를 위한 스터디를 하면서 배움에 박차를 가했지만, 이후에 면접을 봤던..
[크래프톤 정글/Week 11] 키워드 정리
·
활동/크래프톤 정글
☑️ Virtual MemoryRAM의 물리적인 한계를 보완하기 위해서 하드 디스크의 일부를 메모리처럼 사용하는 운영체제의 기법 가상 메모리(Virtual Memory)는 RAM의 물리적인 한계를 보완하여 응용 프로그램에 크고 연속적인 메모리 블록을 부여하는 메모리 관리 기술을 의미한다. 물리적으로 존재하지 않으며, 논리적으로만 존재한다. 이로 인해서 컴퓨터는 응용 프로그램에게 물리 메모리의 크기보다 더 큰 가상의 메모리가 존재한다는 환상을 제공한다. 가상 메모리는 하드웨어와 소프트웨어를 사용하여 구현하는 기술로 응용 프로그램에서 사용하고 있는 가상 주소(Virtual Address)를 물리적 주소(Physical Address)에 매핑한다.응용 프로그램에서 사용하는 모든 메모리 주소는 가상 주소를 사용..
[크래프톤 정글/Week 09] 키워드 정리
·
활동/크래프톤 정글
☑️ 유저 모드 vs 커널 모드(User Mode vs Kernel Mode)운영체제에서 하드웨어의 주요 권한을 응용 프로그램으로부터 보호하기 위해 사용되는 기법  ⭐  커널이란?  영문 사전에서 커널(Kernel)은 '핵심'을 의미한다.컴퓨터 과학 용어들은 단어의 뜻 그대로를 가리키는 경우가 많다.커널도 운영체제에서 핵심을 의미한다.커널의 주요 기능은 다음과 같다.메모리의 할당 및 해제를 관리한다.프로세스 생성 및 소멸을 관리하며 어떤 프로세스가 CPU에 할당될지 결정한다.하드웨어 장치를 제어하고 입출력 작업을 처리한다.응용 프로그램에서 요구하는 요청을 처리한다. ⭐  유저 모드 vs  커널 모드  커널은 위와 같이 컴퓨터 하드웨어의 핵심적인 역할을 담당한다.이러한 커널이 응용 프로그램에서 다뤄지게 된..
[크래프톤 정글/Week 08/PintOS] Priority Scheduling ( 높은 우선순위 먼저 실행하기 )
·
활동/크래프톤 정글
🖐️Priority Scheduling ( 높은 우선순위 먼저 실행하기 ) 1️⃣ 우선순위 정렬 함수 만들기// thread.cbool compare_priority(const struct list_elem* a, const struct list_elem* b, void* check UNUSED){ struct thread *thread_a = list_entry(a, struct thread, elem); struct thread *thread_b = list_entry(b, struct thread, elem); return thread_a->priority > thread_b->priority;}// thread.hbool compare_priority(const struct list_elem*,..
[크래프톤 정글/Week 08/PintOS] Priority Scheduling ( 정리 )
·
활동/크래프톤 정글
🖐️Priority Scheduling ( 정리 )PintOS에서 우선순위 스케쥴링 방식을 구현해 보자! Alarm Clock을 구현하면서 PintOS가 어렵지 않다고 생각했는데 이번 과제를 구현하면서 생각이 많이 달라졌다. Local 환경도 아니고 Docker에서 PintOS를 구현하기 때문에 디버깅이 쉽지 않은 것은 물론이고 이슈 찾기가 무척 어렵다. 무엇보다 과제의 난이도가 올라갔다.. 그래서 우선순위 스케쥴링(Priority Scheduling)은 구현 방법을 소개하기 앞서 과제에 대한 정리를 하고 들어가고자 한다. ☑️ 과제의 최종 목표FIFO 방식의 스케쥴링을 우선순위 스케쥴링으로 변경하기!" 이번 과제는 달성하기 위해서 Alarm Clock에 비해서 복잡한 구현을 진행해야 한다. 조금 더 ..