본문 바로가기

당신이 감동할 때.

(357)
코드 사이에 있는 존재의 이유를 모르겠는 주석을 볼 때면 주석을 작성할 때는 코드의 동작 방식에 대해 설명하는 것이 아니라(이미 코드를 읽으면 그 동작 방식은 알 수 있기 때문에), 왜 그렇게 구현이 됐는지에 대한 “이유” 와 그렇게 구현하여 얻는 이득/목적에 대해서 설명하는 것이어야 한다. 그리고 그런 주석마저 필요없을 정도의 설계/코드로 잘 표현하는 것이 더 중요하다. 또한 변수 이름을 지을 때 “유의미”한 것으로 잘 선별해야한다는 것도 아주 중요한데 가끔 “List stringList” 따위처럼 지어져있는 변수명을 볼때면 그 변수가 어떤 목적으로 쓰이는지, 파악하는 데에 비용이 발생할 뿐더러 작성자의 의도를 잘못 파악할 수 있는 가능성을 낳는 것이라서 읽는 입장에서는 작성자의 의도를 파악하는데 많은 에너지를 써야해서 매우 피곤해진다. 그리고 변수명 길이에..
나의 치아 교정 타임라인 (1) - 턱관절 통증 치료 교정시작한 지 약 1년이 지난 현재를 기준으로 그때그때 메모해놓던 걸 여기에 다시 써봄. 교정 타임라인 2016년 5월 쯤 처음으로 턱 빠짐. 약 10-15초 가량 턱을 닫을 수 없었고 어쩌다 보니 간신히 닫을 수 있었음. 그 이후 하품할 때 조심하는 습관 생겼음. 그 전부터 턱을 크~게 벌릴 때 턱관절에 뭔가 걸리는 느낌이 있긴 했음. 턱에 문제가 있는 건가 처음 인식하게 됨. 그러나 그 이후 대수롭지 않게 여김. 2017년 하품 조심하면서 크게 불편함 없었음 근데 하품 더 크게 하면 또 턱 빠질 것 같은 불안함 계속 있었음. 그 딱 걸리는 지점이 있음. 2018년 10월 어느날 자고 일어났는데 왼쪽 턱의 심한 통증이 생겼고 이로 인해 입을 1cm 이상 벌릴 수가 없었음. 회사 근처의 서울구강내과 방문..
redis-cli 로 non-expiring key 찾아내기 (ttl 없는 key 찾기) redis-cli -h $READONLY_REDIS_NODE -n 2 --scan --pattern "pattern*" | while read LINE ; do TTL=`redis-cli -h $READONLY_REDIS_NODE ttl "$LINE"`; if [ $TTL -eq -1 ]; then echo "$LINE" >> /home/ec2-user/non-expiring-keys.out; fi; done; # -n 옵션은 database 선택 (select) https://stackoverflow.com/a/56265879/7548600 참고
redis-cli 로 pattern 에 해당하는 key 삭제하기 redis-cli -h $READONLY_REDIS_NODE --scan --pattern prefix:pattern::* | awk '{print $1}' | sed "s/^/'/;s/$/'/" | xargs redis-cli -h $MAIN_REDIS_NODE del https://stackoverflow.com/a/58879388/7548600 참고
밀 히터 전원 안 켜지는 문제 셀프 수리 아직 봄을 시샘하는 추위가 아직 남아있을 4월의 어느날. 몇년전에 사둔 밀 히터를 겨울 동안 잘 쓰고 있었는데 갑자기 전원을 켜도 전혀 따뜻해질 기미가 안 보였었다. 추위를 참지 못한 아내가 결국 보일러를 틀어 꽃샘 추위를 견뎌냈다. 그 이후 서비스 센터에 보내서 수리를 맡기고자 했으나 여느 OEM 중국산 제품이 그렇듯, 서비스를 받는 게 매우 어려웠다. 서비스 센터에 전화를 걸어도 받지를 않으니 말이다. 그래서 다시 추운 계절이 오기 전에 고쳐두는 게 좋겠다고 생각했고, 대부분의 히터는 간단한 회로로 구성되어 있을 것이기 때문에 오늘 직접 뜯어보기로 했다. 케이스 나사 5개와 내부 컨트롤러 나사 4개를 풀어내면 거의 모든 회로 요소에 접근이 가능하다. 근데 딱 케이스만 열었는데도 바로 무엇이 문제의 원..
Troubleshooting CodeDeploy agent's startup codedeploy agent 가 제대로 실행되지 않아서 배포가 안 되는 이슈가 있다. `ps -ef | grep codedeploy` 명령어로 프로세스를 살펴보면 `booting child` 상태에 계속 머무르고 있는 것을 알 수 있다. 원래 정상적으로 작동하고 있다면 아래와 같이 "InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller of master" 라는 것을 확인할 수 있어야 한다. codedeploy-agent 자체의 로그를 살펴보면 아래와 같이 나왔다. journalctl -xe 로도 어느정도 확인이 가능하지만 로그가 더 자세한 컨텍스트를 제공해준다. 로그 파일의 위치는 /var/log/aws/codedeploy-agent/codedeploy-a..
5급 축구심판 자격증 취득 2020년 5월 1일 근로자의 날에 처음 동네에 있는 축구 동호회에 나가본 것을 계기로, 기회가 될 때마다 동회회에 나가서 축구를 하고 있다. 어렸을 때도 축구를 좋아했지만, 한 번도 배워본 적도 없어서 잘 하지는 못했다. 역시나 작년에 정말 오랜만에 축구를 하러 갔는데, 몸도 안 따라줄 뿐더러 축구 규칙도 잘 모르는 자신을 발견할 수 있었다. 그 상태로 그냥 축구를 하는 것 자체가 재밌어서 계속 나가긴 했지만, 실력도 늘지 않고 여전히 쓰로잉 파울을 범하는 걸 보니까 도저히 안 되겠다 싶어서 배워보고 싶다는 의견을 동호회 내에서 몇번 말씀드리긴 했다. 때마침 4월부터 동회회에 계신 다른 분께 레슨을 받을 수 있었고 아직까지 주 2회 정도 배워보고 있다. 이와는 별개로 축구 규칙을 제대로 알아야겠다는 생..
AWS ECS Faragate 를 쓸 때 이유없이 container health check failed 가 뜬다면 TL;DR. Faragate Platform Version 1.4.0 을 쓰지 말고 1.3.0 을 써보면 문제가 해결될 수 있다. 사내에다가 정리해놓은 문서가 있고, 모든 내용을 다 옮기기엔 가려야할 내용도 많고 번거로워서 결론만 간추려서 작성함 ---- container health check 방법을 `CMD-SHELL,echo hello` 로 해도 container health check failed 의 이유로 task 가 container 들에게 sigterm 을 보내서 컨테이너가 종료되고, ELB 는 종료된 컨테이너로 계속 트래픽을 보내고 있어서 client 에게는 502 Bad Gateway 응답이 나가는 상황이 간헐적으로 발생하고 있었음. 이 때만 해도 문제를 쉽게 해결할 수 있을 거라 생각했..

반응형