터미널·SQL·git 잔기술 모음 'Small Programming Tricks'가 해커뉴스에서 손코딩 논쟁을 불러옴
- 작성자는 fzf를 설치하면 ctrl+r이 퍼지 검색이 되고, atuin은 셸 히스토리를 검색 가능한 SQLite DB로 바꾸며, per-directory-history는 디렉터리별 검색과 전체 검색을 오가게 해준다고 소개함
- SELECT는 FROM 없이도 실행되므로 DB 함수 동작이나 SELECT TRUE <> NULL 결과를 확인할 때 쓸 수 있고, Postgres와 MySQL의 explain analyze는 쿼리를 실제로 돌려 성능 정보를 더 준다고 설명함
- git log -S pattern(픽액스)은 특정 문자열을 추가하거나 삭제한 커밋을 전부 보여주고, git log -G는 줄이 이동한 경우까지 표시하며, git checkout -는 이전 HEAD로 돌아감
- NodeJS에서 https.Agent를 만들어 fetch에 넘기면 외부 연결을 계속 열어둬 지연이 크게 줄고, python3 -m http.server는 파이썬 지식 없이 디렉터리 서버를 띄운다고 함
- 작성자는 이전 회사에서 매일 슬랙으로 팁 하나를 엔지니어링 팀에 공유했고, 하루 한 개가 지식 과부하를 피하면서 토론을 만들기에 맞는 분량이었다고 밝힘
Hacker News opinions
학계에 있는데 요즘 여기선 아무도 손으로 코딩을 안 해. 에이전트 오케스트레이션만 하다 보니 nvim 단축키나 Bash 대괄호 차이 배우던 재미가 통째로 사라졌어. 그래도 생산성이 워낙 좋아서 예전으로 못 돌아가겠더라.
나도 학계인데 학생 시키던 일을 LLM이 빠르게 처리해줘. 홈 오토메이션 같은 거 맡기기도 편하고.
나는 대부분 손으로 써. LLM은 예전에 Stack Overflow나 MDN 보던 자리를 대신하는 똑똑한 검색엔진 정도로만 씀.
직장에서는 전부 손으로 코딩하는데 동료들은 거의 다 에이전트를 써. 그래도 뒤처지지 않아. 새 네트워크 보안 장비 만드는 일이라 코드 타이핑 자체가 병목이 아니거든.
백엔드도 프론트엔드도 손으로 짜고 코드 리뷰도 직접 읽어. 승인 전에 실제로 돌려서 잘 되는 스크린샷을 PR에 붙이는 편이야.
타이핑하는 코드 양은 확 줄었지만 셸에서 이리저리 돌아다니는 건 여전해서 이런 잔기술은 매일 씀. LLM이 컴퓨터랑 상호작용하는 최선의 방법은 절대 아니야.
어제 오랜만에 AI 도구 없는 원격 서버에서 파이썬 REPL로 스크립트를 짰는데 꽤 뿌듯했어. 근육 기억이 아직 살아있어서 놀랐음.
41년째 코딩하는데 나는 코드로 생각해. 머릿속 생각을 영어로 번역해 LLM에 넘기고 다시 코드로 받는 게 훨씬 느림. Rider 자동완성은 5~10% 정도만 씀.
LLM은 코드를 빨리 뽑아주지만 검토하는 데 드는 시간이 내가 처음부터 짜는 시간과 비슷해. 그래서 그냥 내가 씀.
학계 사람들은 원래 코딩을 별로 안 해서 놀랍지도 않아. 우리 쪽은 LLM 때문에 코딩이 달라진 게 거의 없음.
나는 모든 코드베이스의 모든 줄을 손으로 쳐. 챗봇으로 필요한 건 다 얻는데 에이전트형 코딩 도구는 직장에서 못 쓰게 막혀 있어. Codex 같은 게 있었으면 좋겠다.
이 글 제목은 프로그래밍 팁이라기보다 bash/zsh CLI 팁에 가까워. 프로그래밍과는 간접적으로만 엮여 있음.
브랜치는 피하는 게 좋아. if문 없이 같은 일을 할 수 있으면 코드도 읽기 쉬워지고 CPU에도 낫거든.
브랜치를 어떻게 피한다는 건지 이해가 안 가. 분기는 프로그래밍의 토대인데, 피하려면 코드를 괜히 꼬는 것밖에 안 떠오름.
정확한 답이 필요 없고 알려진 범위에서 근사로 결정만 하면 되는 경우엔 가중 입력 몇 개를 더하고 곱해서 값을 조정하고, 마지막에 분기 한 번만 하는 퍼지 로직 식으로 갈 수 있어.
남들이 다 아는 팁을 쓰면 아는 척하는 것처럼 보일까 봐 자기검열하는 사람이 많은데, 세상에 '모두가 아는 것' 같은 건 없어. 기본 팁 목록에도 내가 모르거나 잊은 게 하나는 있어.
zsh 히스토리를 제대로 쓰고 싶어서 zhist를 만들었어. 내부는 fzf지만 단순히 fzf만 쓰는 것보다 훨씬 많은 맥락을 보여줌.