Profile img

이하

@evenharder@hackers.pub · 25 following · 27 followers

이것저것 해보고 싶은 사람입니다. 지금은 C++과 함께 고통받고 있습니다.

이번 주 토요일은 아침부터 낮까지 OSSCA 성과공유회고 아마 저녁식사까지 할텐데, 일요일 새벽에 해커컵 Round 2를 칠 체력이 있으려나 모르겠다. 하지만 티셔츠는 받아야 하는데...

2
1
0
0

C++에서 UB는 하드웨어 수준에서는 UB가 아니라고 생각했던 얼마 전에 나어게 경종을 올렸던 글. "Pointers are complicated" 시리즈. 주로 Rust에 관한 글이지만 abstract machine, memory model의 개념은 C++에도 있으며 하드웨어와는 확연히 다르다. 특히 포인터가 얼마나 까다로운 개념인지, 컴파일러가 어떠한 가정하에서 최적화를 수행하는지 다시금 익혔다.

6
2
1

오늘 Pyodide 정기 모임에서 다양한 분들의 활동을 듣고 같이 이야기해서 재밌었다. 세상은 과연 넓다...한편으로는 좁기도 하다. 다만 Hackers' Public이랑 시간이 겹쳐 아쉬웠다...

5
3
0
3

오늘은 다른 파트에서 나온 이상 현상을 보다가 흔한 실수 중 하나인 memcpy(dest, src, strlen(src))를 발견하고 공유했다. 동적 할당 방지를 위해 std::stringstd::format을 못 쓰는 상황도 아쉽고, 프로젝트 초창기에 다양한 helper class(std::array 기반 문자열 등)가 정립이 되지 않아 아쉽다. 그 때는 정말 초짜 신입이었으니, 별 도리가 없기도 했다.

올해 초에 조금이라도 바로잡고자 문자열 조작 로직을 개량해 직접 snprintf를 쓰지 않고 편리하게 문자열을 다룰 수 있도록 변경한 적이 있었다. 꽤 많은 팀원이 그 존재를 익혔지만 수많은 레거시 코드는 앞으로도 태곳적 상태에 머물지 않을까. 슬프기보다는 아쉽다. 근원적인 실수를 줄일 수 있는 기회가 더욱 있었을텐데...

4
3
4
1
1
2

회사컴이 점점 맛이 가고 있어서 내일 포맷을 할 예정이다. 브라우저 북마크나 환경설정 백업을 열심히 해두고 있지만, 꼭 몇몇은 기억 저 편 너머에 있다가 한참 나중에 생각이 나곤 한다...

2

블로깅의 쇠퇴, AI의 끝없는 학습, 비공개 플랫폼(Discord 등)으로의 이주, 짧고 중독성만을 강조하는 피드와 BM, 한 번 보면 다시 찾기도 힘든 SNS 포스트, 범람하는 가짜뉴스와 개소리와 혐오... 웹은 정보의 망망대해도 아닌 소행성대로 변해가고 있다.

9
0
0
2
1
1
4
2

오늘 Pyodide 모임은 비록 40분을 늦게 도착해서 세미나는 많이 못 들었지만, Typer를 어떻게 교체해야 할지 조언을 들었다. 뒷풀이에서도 멘토 멘티분들과 가까워지는 시간을 잘 보냈다. 앞으로가 더욱 기대된다

2

오늘은 바이너리의 glibc++ 버전이 안 맞는 걸 삽질분석하다가 ldd와 objdump랑 조금 더 친숙해졌다. 해결책은 그냥 LD_PRELOAD긴 했지만, ldd -r -vobjdump -T라는 재밌는 옵션을 발굴했다.

3

왜인지는 모르겠으나 회사컴을 Win11로 올린지 얼마 안 된 오늘 WezTerm이 실행이 안 되어서 Powershell v7로 급하게 이주했다. 회사 보안 프로그램 때문으로 보이는데 고치기도 어려워보인다. 대체 왜 이런 시련이...

0
1
2
2
1

멤버변수가 200개 가량 되는 C++ 클래스 인스턴스를 정녕 우아하게 직렬화할 수는 없는 걸까? 컴파일 에러 메시지를 보니 g++ paramater pack 상한에 걸리는 느낌이다

1

TDD 실습으로 TDD의 한계점만 느끼고 있다. std::cin buffer를 바꿔치기해서 thread를 띄우고 gmock에 시간차를 두고 표준 입력을 전달하려니 이게 프로그램 테스트인지 C++ 지식 테스트인지 모르겠다. 테스트 코드가 테스트할 코드보다 어려운 현상은 매우 흔하며, 대개 src 폴더에 있는 코드보다 더욱 빠르게 레거시 코드로 상해버린다. 테스팅은 소프트웨어 개발 주기에서 필수적인 역할을 지니고 있으나 TDD가 프로그램의 명확함을 보장하는 방향으로 굴러가긴 어렵다. 명확한 프로그램은 선행되는 테스트가 아니라 명확한 설계에서 나오기 때문이다.

2

교육 받으며 Windows 11에서 nvim dotfile이랑 lazygit 깔아 쓰려고 했는데 git이 계속 타임아웃 걸려서 순정 nvim에 미니멀한 .vimrc 적용해서 쓰고 있다. 기이하게도 git이 명령 하나에 (git log, git switch 포함) 2초씩 걸리고 lazygit에서 커서를 움직이면 diff pane이 한 줄씩 갱신되는 수준의 끔찍한 속도를 자랑하고 있다. Windows는 뭐가 잘못된걸까.

1
1
1
1
1
1

회사에서 테스트 프레임워크를 대공사하며 이런저런 리팩토링을 해야하는데, config file을 어떻게 생성하고 읽어야하는지에 대한 논의가 오갔다. TOML을 쓰는 방향을 강력히 주장했는데, 다음 주에도 이어서 논의를 이어나가봐야겠다

2
2
1
0
2
4
1