본문 바로가기

분류 전체보기18

최종 발표 및 회고 5주간의 최종 팀 프로젝트가 끝이 났다. 내 예상과 달리 만만치 않았다. 하지만 또 그만큼 얻은 것도 많다고 생각하면 위안이 된다.결과적으로, 이번 팀 프로젝트는 꽤 성공적이었다고 생각한다. 특히, 나는 운이 좋았다고 생각한다. 왜냐하면 내가 속한 팀 구성원들의 조합이 매우 좋았기 때문이다. 덕분에 내가 팀 내에서 100% 역량을 발휘할 수 있었다고 생각한다. 나의 의견을 믿고 존중해 준 팀 리더에게 진심으로 감사하다. 이번 프로젝트에서 나는 백엔드와 데브옵스 역할을 맡았다. 현업에서의 경험을 프로젝트에 고스란히 녹여내기 위해 노력했으며, 전반적인 아키텍처 설계, 데이터베이스 관리, 그리고 인프라 구축에 집중했다. 나는 항상 프로젝트를 진행할 때 코드의 퀄리티와 생산성 간의 균형을 고민한다. 프로젝트에 .. 2024. 12. 17.
xy problem chatgpt의 등장은 문제 해결 방식에 있어 혁신을 가져왔다. 불과 2~3년 전만해도 google 검색(일명 구글링) 또는 stack overflow에서 질문을 통해 답변을 얻는 것이 일반적이었다면, 이제는 ai를 통해 즉각적으로 답변을 받을 수 있는 시대가 되었다. 그러나 질문의 편의성이 크게 증가했음에도, 질문의 퀄리티는 여전히 낮은 수준에 머무르고 있다. 이로 인해 xy problem 이 자주 발생한다고 생각한다. 이러한 문제를 해결하기 위해, 더 나은 질문법과 답변을 검증할 능력이 필요하다고 생각한다. xy problem 의미:실제 해결하고자 하는 문제에 대해 질문하는 것이 아닌, 현재 시도하고있는 해결 방법에 대해 질문할때 발생하는 문제를 뜻한다. 유명한 예시는 다음과 같다. A: 파일 이름에.. 2024. 12. 5.
정글의 팀 결성 방법 정글의 최종 프로젝트를 앞두고, 약 5주간 함께 할 팀을 결성해야 했다. 정글의 팀 결성 방법은 매우 흥미롭다. 일반적으로, 적어도 내가 겪은 바로는 마음 맞는 사람들끼리 비공식적으로 팀을 구성한 후, 리더를 선출하고 최종적으로 팀 리스트를 제출하는 방식이었다. 그러나 정글에서는 팀 매칭 알고리즘이 존재하고, 이를 통해 팀이 결성된다. 이를 통해 개개인의 만족도, 공정성을 최대화 할 수 있다. (사실 잘 모르겠다) 예를 들어, 먼저 리더 역할에 지원한 사람들 중 N명을 선발한다. 이후, 이 N명의 리더와 나머지 멤버들 간의 선호도를 기반으로 알고리즘을 실행해 팀을 결성하는 방식이다. 정글에선 팀 매칭 알고리즘으로 hospital-resident matching 방식을 사용한다. 이 알고리즘은 stable.. 2024. 11. 8.
pintos project3: virtual memory 사실, 내가 c언어 및 어셈블리어와 같은 로우레벨에 관심을 가지게 된 계기가 있다. 단순히 처음 접했던 언어가 c언어였기 때문만은 아니다. 시작은 언제나 사소한 이유에서 비롯되듯, 나 역시 그랬다. 어릴 적 녹스(NOX)라는 고전 게임의 멀티플레이를 즐기던 중, 게임을 해킹해 공정하지 않은 플레이를 하는 사람들을 만난 적이 있다. 예를 들어, 맵핵을 사용하거나 상대방 이름으로 채팅을 치는 비정상적인 행동은 물론, 심지어 방장의 권한을 행사하는 등의 행위였다. 이런 경험은 나에게 처음이었고 컬쳐쇼크를 받았다. 세상에 이런 것이 가능하다는 것을 받아들이지 못했고, 마치 마법처럼 느껴지기만 했다. 그리고 반대로 나에게 있어서 강력한 동기부여를 주는 인생의 터닝 포인트이기도 했다. 이런 경험에도 불구하고, 나는.. 2024. 10. 23.
pintos project2: user programs 카이스트 정글은 마치 부하 테스트와 같다. 나 자신의 한계점이 어디인지 찾아나가는 과정 그리고 그 한계을 뛰어 넘을 정신 개조를 할 기회인 것이다. 그것이 자의이든 타의이든. 생각해보면, 나는 무의식적으로 내 한계를 스스로 정해왔던 것 같다. 특히, 익숙하지 않거나 경험해보지 않은 것들, 혹은 과거에 시도했다가 포기한 경험이 있는 것들에 대해서는 더더욱. 그 중 한 가지 예로, 어떤 것의 작동 원리와 과정을 얼마나 깊이 파고들어갈지 결정하는 문제를 들 수 있다. 무엇보다도 개발 도중 발생하는 문제가 단순한 코드상의 로직이 아니라, os 레벨의 지식을 요구하는 트러블슈팅일 때가 그렇다. 결국 이는 cs 지식을 얼마나 깊이 이해하고 있느냐와 직결된다. 두 번째 예로는, 코드 자체가 다루는 로직이 추상화된 상.. 2024. 10. 9.
pintos project1: threads 정글의 커리큘럼은 매 주가 놀라움의 연속이다. 매 주차 발제가 끝나면 "생각보단 할만해 보이는데?" 란 기분이 든다. 그러나 그것도 잠시, "아 고수준이 아니라 저수준이었지.." 와 같은 깨달음을 상기시키며, 본격적으로 구현에 들어가게 된다. 확실히 c언어와 포인터 개념이 들어간 저수준 프로그래밍에서는 머릿속에서 그릴 수 있는 depth를 항상 넘겨버리기 일쑤이고, 노트와 펜 없이 그런 복잡한 플로우를 따라가기는 벅찬 경우가 많다. 더욱이 그러한 코드들로 이루어진 방대한 코드베이스들을 들여다 보고 있자면 막막함이 찾아온다. 그렇게 고통스러운 나날들을 며칠 보내고 나면 이제 전체 윤곽이 어느정도 그려지기 시작하면서, 숨통이 트인다. 그리고 한 주가 끝나갈 무렵, 결국 모든 퍼즐이 맞춰지면서 비로소 큰 그림.. 2024. 10. 1.