본문 바로가기

blah

(28)
POCU 아카데미 C++ 언매니지드 프로그래밍 수강 후기 올해 5월 5일부터 수강했던 강의가 끝났다. C++ 강의로, 인터넷 강의에 과제 및 시험이 포함된 형태였다. C++을 고른 이유는 컴파일러야 부탁해에서도 말했듯이 C언어를 하고 있는데 객체지향은 좀 알아야 할 것 같아서였다. POCU 아카데미를 고른 이유는 과제가 있어서. 나는 외압이 있어야 뭔가를 하는 타입이고, 100만원을 들이붓고 데드라인이 주어지는 만큼 뭔가 얻어가리라고 생각했다. 최소한 '나는 인강을 듣지 말아야 하는 사람인가 보다ㅎ' 정도의 결론이라도 얻을 수 있을 테니. 이하는 강의에 대한 정보와 감상을 Q&A 형식으로 쓴 것이다. 1) 듣기를 잘했는지?그렇다, 듣길 잘했다. 이 강의가 살면서 완강해본 첫 인터넷 강의가 되었다. 강의가 좋은 것도 있고, 과제가 외압으로써 잘 작용한 것도 있고..
LLM에 대해 망상하기 양적 변화가 질적 변화를 야기한다. 나는 이 말을 변증법의 맥락보다는 상전이(phase transition)의 맥락으로 생각한다. LLM - 거대 언어 모델 또한 그런 예시라고 생각한다. 파라미터의 개수가 "지능"(그러니까 지능처럼 보이는 무언가)을 야기했다. 물론 나는 같은 논문을 읽어본 적은 없다. 그냥 카더라만 주워 듣고 그런가보다 하는 거지. 그러니까 이 글은 망상이다. LLM에서 언급되는 27B 따위는 파라미터다. 모델을 기술하는 변수의 개수. 그러니까 모델의 복잡미묘함을 다루기 위해 270억 개의 변수가 필요하다는 것이다. 하지만 그 270억 개의 파라미터를 전부 의식적으로 다룰 수는 없을 것이다. 보다 조작 가능하게 바꾸는 것이 일반적일 테고, 그러기 위해 어떠한 인터페이스를 씌울 것이다...
컴파일러야 부탁해 C++을 공부하고 있다. 그놈의 객체지향이 뭔지 좀 느껴보려고. Django를 하면서 상속은 받아봤지만, JavaScript에서 prototype을 대충 써봤지만, Java를 깔짝대면서 맛은 보긴 했지만. 역시 모자라다. Java, C#, TypeScript… 여러 선택지가 있지만 C++을 골랐다. 이유는 내가 지금 하고 있는 게 C라서. 앞으로 어떤 커리어 패스를 밟아나가야 할지 감이 없으니 좀 더 진입장벽이 낮은 걸 하기로 했다. C도 더 이해할 겸해서. 보면서 감탄했던 지점이 한두 가지가 아니다. 초창기 C언어에서 고통 받았던 지점에 대한 해소와 새로운 트렌드의 도입을 어떻게든 해냈달까. 제일 재밌었던 건 참조형과 캐스팅이었다. 런타임의 속도는 늦추지 않으면서 보다 휴먼 에러를 줄여줄 수 있는 디자..
2024년 하반기 되돌아보기 새해가 밝은 지 3주가 넘게 지났다. 그간 블로그에 뭐라도 써야겠다고 생각은 했다. 물론 생각과 실천 사이에는 간극이 있고, 그 간극은 무한에 가깝다. 그냥 충분한 성실함이 없었던 것이다. 아쉽게도. 성장했는가? 글쎄. 그런 것 같기는 한데, 들인 시간에 비하면 얻은 게 적은 듯하다. 성실하지 않아서? 아니, 시간이라면 많이 쏟았다. 효율이 낮았고 운이 없었달까. 대가리가 일찍 깨졌어야 하는데 너무 늦게 깨졌다. 어렵되 데드라인이 짧은 일을 일찍 맡아서 모자람을 빠르게 직시했다면 좀 달랐을 것 같은데. 핑계라구요? 맞죠. 나는 알 것 같았다. 그러나 알 것 같은 기분만으로는 부족하다. 해낼 줄 알아야 한다. 앎과 행위의 사이에는 무한에 가까운 간극이 있고, 나는 아는 것만으로 할 수 있다고 주장하는 머저..
능력 부족과 성장 바빴다. 각자에게 각자의 일정이 있으니만큼 안 그런 사람이 어딨을까마는, 바빴다. 적어도 나는 내가 바빴다고 생각한다. 물리적으로 바쁜 구간이 있었고, 마음이 크게 흔들리는 구간이 있었다. 지금은 둘 다다. 못난 부분이 눈에 띈다. 띈다뿐인가, 만천하에 공개하고 있는 느낌이다. 어떻게든 구르고 있지만 쉽지 않다. 누구나 그런가? 그럴지도. 그렇지만 다들 자신의 지옥이 뜨겁게 느껴지는 법이다. 나도 그렇다. 내게 무엇이 부족한가? 좋은 코드, 프로그래밍의 규칙, C언어, SQL, RDBMS, 일머리, 질문하는 방법, 정리하는 방법, 경험, 어쩌면 모든 것… 너무 나갔나? 표현이 과격할 뿐이지 틀린 말은 없다고 생각한다. 뭐가 부족하고 부족하지 않은지 판단이 안 서는 순간이 있다. 아직 전체상이 그려지지 않..
240812 - 240818 금주의 놀라운 사실들 2408121) C언어에서는(다른 언어나 OS에서는 어떨지 모르겠다) 1바이트(=8비트)로 구성된 한 칸 한 칸을 가리키는 주소 체계를 가지고 있는데, 이는 물리적인 메모리와 1대1 대응한다. 그 주소를 바탕으로 접근과 조작이 이루어진다.생각해보면 디스크에서도 그러한 주소가 있어야 할 것이다. 접근을 해야 하니까. OS가 적절한 파일 관리 인터페이스를 제공해서 프로그램이 그 인터페이스로만 상호작용할 수 있다 하더라도, 그렇게 인터페이스로 wrapping된 안쪽에서는 실제적인 상호작용이 존재해야만 한다. 여기서부터 모르겠다. C언어로 디스크를 어떻게 관리 및 조작하는가?(물론 기계어나 어셈블리는 더더욱 모른다) 메모리 관리나 시스템 콜(이 단어도 처음 알았다)이 아닌 방식으로 디스크를 조작해야 하는데 도통..
240805 - 240811 금주의 놀라운 사실들 240805이 날은 비즈니스 매너라는 개념에 대해서 배웠지만 여전히 잘 모르겠다. 주변에 이 이야기를 꺼내며 영업직은 못하겠다고 했더니 "고란 씨는 고객이 빡치게 하면 팜플렛으로 머리 깰 듯ㅋㅋ"이라는 말을 들었다. 비즈니스 매너는 그 자체로 놀라운 지식이었지만 글쎄, 잘 따를 수 있을 것 같진 않다.  240806이 날은 멍청한 실수로 고통 받았다. 추상적인 사고와 구체적인 구현 사이의 간극을 줄여나가야만 한다.  2408071) race condition이나 deadlock에 대해서는 개념만 조금 들고 있는 상태였는데, lock와 deadlock에 대해 이야기를 들으면서 정말 dead라는 표현이 잘 맞아들어간다는 느낌이었다. lock을 살아 있는 존재라고 생각하자. 살아 있다는 것은 상태의 변화를 갖..
240729 - 240804 금주의 놀라운 사실들 2407291) Oracle DB는 AS(alias)를 쓰면 'ORA-00933: SQL command not properly ended' 에러를 띄운다… 이 얼마나 끔찍하고 무시무시한 일이니… 그냥 띄어쓰기만 써야 한다는 듯. 2407301) C언어에서 전위연산자(prefix operator)와 후위연산자(postfix operator)의 차이. 보다 정확히는 전위/후위 증감 연산자라고 해야겠지.전위연산자(ex. ++i)는 변수의 값을 먼저 증가/감소시킨 뒤 해당 값을 표현식(expression)에서 사용한다. 반대로 후위 연산자(ex. i++)는 변수의 값을 표현식에서 사용한 후 해당 값을 증가/감소시킨다.전위연산자의 경우는 바로 메모리 상에서 변수의 값을 증가/감소시키는 데 반해, 후위연산자의 경우..