본문 바로가기

전체 글18

리눅스 왜 써요? "리눅스 왜 써요?" 종종 내가 받는 질문이다. 물론 이것이 내가 골수 리눅스 유저라는 의미는 아니다. 엄연히 나도 평범한 윈도우 유저이며, 녹스(Nox), 히어로즈 오브 마이트 앤 매직3, 문명6, 리그 오브 레전드를 문제없이 플레이 할 수 있어야 한다. 내가 유일하게 리눅스를 사용하는 때는, 개발할 때다. 그렇다면 항상 개발은 집에서만 하는가?노트북을 2대씩 들고 다니는가?듀얼 부팅 노트북인가? 모두 틀렸다. 나는 가정용 개인 리눅스 서버를 운영 한다. 오래된 노트북을 리눅스 서버로 사용하는 식이다. 이 서버에 모든 개발환경을 셋팅한다. 그리고 윈도우 노트북을 단말기로써 사용한다. ssh 접속기인 셈이다. 윈도우 로컬 환경에는 개발 관련 설정이 전혀 되어 있지 않다. 물론 vscode + remote.. 2024. 8. 27.
지식을 소화한다는 것 종종 이런 생각을 하곤 한다. 무엇인가를 제대로 이해하고, 완벽히 내 것이 되었다는 것의 기준은 무엇일까? 내가 생각했을 때 가장 근접한 답은 다음과 같다. "내가 이해한 것을 듣는 이가 자명하게 받아들일 수 있을 정도로 최대한 쉽고 간결하게 설명할 수 있어야 한다." 이것은 복잡한 생각의 가지들을 모두 쳐내고, 핵심만 남겨 간추린 후, 어떻게 전달해야 듣는 이가 자명하게 받아들일 수 있을지를 고민하는 과정이다. 이를 통해, 듣는 이의 수준에 맞게 자연스럽게 추상화된 설명을 할 수 있어야 한다. 그러나 주의할 점이 있다면, 본인에게 자명한 것이 상대에게도 자명할 것이라고 가정하면 안된다는 것이다. 내 설명을 듣고 상대가 다시 질문을 한다면, 그에 맞게 다시 적절하게 설명할 수 있어야 한다. 나는 설명 중.. 2024. 8. 23.
[BOJ 2261] 가장 가까운 두 점 문제 내용이 매우 간단 명료하다. n개의 점들의 좌표가 주어졌을 때, 가장 가까운 두 점 거리의 제곱을 출력하는 문제이다. 우선 시간 제한은 1초. 그리고 점의 개수가 최대 10만개까지 들어온다. 그렇다면 O(N^2) 으로 완전탐색은 일단 불가능으로 O(NlogN) 으로 생각해보자. logN 이 들어간다면 정렬을 가장 먼저 떠올릴 수 있다. 가장 가까운 두 점을 알기 위해선, 어쨌든 각 점들 사이의 거리를 계산해야 할 것이고, 그것을 효율적으로 하기 위해서 불필요한 계산은 최대한 피해야 할 것이라는 결론이 나온다. 우선 정렬을 떠올렸으므로 각 점들을 y 또는 x 축 기준으로 정렬한다. 정렬한 뒤, 모든 경우의 수가 아닌, 각 정렬된 점들과 인접한 점들은 거리가 상대적으로 가까울 것이므로 인접한 점들끼리만.. 2024. 8. 17.
찬찬히 나를 돌아보는 시간 나는 지금까지 하고 싶은 것만 하며 살아왔다. 마음이 끌리는 것에 몰두하고, 그것에 열정을 쏟는 것이 나의 방식이었다. 특히 나는 직관적인 성향을 가지고 있어서, 복잡한 계획보다는 당장의 흥미와 직감을 따라 움직이는 경우가 많았다. 어릴 적 기억을 되짚어보면, 나는 스타크래프트 맵 제작, Nox라는 게임의 맵 제작 및 스크립트 작성을 통해 게임 콘텐츠 개발 활동을 했었다. 그 시절, 다른 유저들의 피드백을 받고, 제작자들끼리 서로 아이디어를 주고받으며 성장했던 기억이 아직도 생생하다. 이러한 활동들은 단순한 취미를 넘어 내 일상의 낙이었고, 나를 컴퓨터 프로그래머라는 꿈으로 이끌었다. 이 과정에서 내가 얻은 것은 단순한 기술적 능력뿐만 아니라, 창작의 기쁨과 협업의 소중함이었다. 나는 나만의 방식으로 게.. 2024. 8. 10.
미니 프로젝트 입소 후, 당일 곧바로 0주차 미니 프로젝트가 발제되었다. 이 프로젝트는 간단한 웹 서비스를 구축하는 것으로, 입학 시험에서 사용한 기술 스택을 활용해 3박 4일 동안 진행되었다. 팀은 무작위로 편성된 3인 1팀으로 구성되었으며, 팀원들과의 협력을 통해 제한된 시간 안에 과제를 완수해야 했다. 우리 팀은 간단한 물품 공유 서비스를 개발하기로 결정했다. 먼저 기능 명세를 작성하고, 서비스의 전체적인 구조를 그리기 위해 와이어프레임을 제작했다. 이후 각자의 역할을 분담하여 효율적인 작업이 이루어지도록 했다. 나는 인프라 세팅과 Git 레포지토리 초기 설정, 그리고 채팅 기능 구현을 맡아 프로젝트의 기술적인 기반을 구축하는 역할을 담당했다. 다음은 본 프로젝트에서 사용된 와이어프레임 툴, Excalidraw의.. 2024. 8. 10.
시작 나의 첫 블로깅을 시작해보려 한다. 모두가 그런 것인지는 잘 모르겠지만, 나는 일상생활에서 종종 인사이트를 얻곤 한다. 어릴때 부터 나는 호기심이 많았고, 조용히 관찰하는 것을 좋아하며, 때로는 다양한 생각에 깊이 빠지기도 한다. 이런 성향 덕분에, 사소한 일상에서도 많은 영감을 얻는다. 그러나, 문제는 이런 성향에 비해 잘 정리하지 못하여 인사이트를 얻은 과정이나, 그 인사이트를 어디에 적용할 수 있을지 발전을 시키지 못한다는 점이다. 머릿속에서 떠오르는 생각들이 구체적인 형태를 갖추기 전에 사라져 버리거나, 막상 글로 옮기려 하면 두서없이 흩어지기 일쑤다. 그래서 이 블로그를 통해 내 생각과 아이디어를 정리해보고자 한다. 그 과정을 통해 나 자신을 더욱 깊이 이해하고 성장시키려 한다. 글로 표현하면서.. 2024. 8. 10.