좋은 코드와 나쁜 코드

TL;DR 코드 품질은 안전하고, 고장나지 않으며, 생각한 대로 잘 동작하는데 목표를 둡니다. 위 4가지 목표를 달성하기 위해서는 적절한 추상화가 중요합니다. 문제를 적절히 예측하며 에러와 응답을 다뤄야 합니다. 시작 추천 받은 책 이 책은 동료분이 읽으신다고 알려주신 책입니다. 모호했던 코드 품질의 개념이라던지, 좋은 코드를 짜는 방법에 대한 논의를 잘 정리한 것 같다는 느낌을 받았습니다. 이에 약 1달이라는 기간동안 출퇴근 시간에 읽으며 공감했던 내용을 정리해 봅니다. 스타트업 3년차의 눈으로 바라본 좋은 코드에 대한 의견은 마지막에 정리했으니, 제 의견만 궁금하시다면 끝 쪽만 읽으시면 됩니다. ...

June 20, 2023 · 5 min · 896 words · Crispy

[책] '기억, 꿈, 사상'에 대한 감상

저는 부끄러움이 많은 관심 종자입니다. 이 책의 감상을 나누고 싶지만, 거절이 무서워 글이라는 방법을 택했습니다. 구분선 아래로, 문장과 감상의 형식이 전개 됩니다. 읽은 날, 내용은 추가될 것입니다. 언젠가 이 내용을 함께 논의 할 수 있기를 소원해 봅니다. 2022년 스터디 카페에서 시작하며 문득 취리히에서의 내 생활이 떠올랐다. 내가 심취했던 유년시절의 세계는 영원한 것이었으며, 나는 그것으로부터 떨어져나와, 계속 굴러가며 점점 더 멀어져가는 시간 속으로 빠져들어가고 만 것이었다. 나는 나의 미래를 잃지 않기 위해 그 장소에서 억지로 몸을 돌려야만 했다. 47p ...

October 30, 2022 · 2 min · 402 words · Crispy

[경험] 시스템에 불이 확, 나는 왁

가을이었다… 시작은 슬랙의 모니터링 메세지로부터… 때는 22년 10월 27일 저녁 6시, 퇴근 후 한잔 할 생각에 신나있었다. 룰루 랄라 퇴근 준비를 하며 슬랙을 돌아보다, 배치 모니터링 채널에 쌓인 오류 알림들을 확인했다. 시작은 오후 4시부터였으며, 배치 작업은 내가 확인한 6시까지 단한번의 성공 없이 모두 실패했다. 가장 최근에 배치관련 코드 수정을 했던 나의 등에 식은땀이 흘렀다. 슬랙의 에러메세지는 502 코드 외에 도움이 되는 정보는 없었다. 배치 서버는 상품 검색과 관련해 주요한 기능을 담당하기에, 바로 CTO님을 호출했다. 몇 분 뒤, CTO님께서 배치 서버가 도는 instance의 ip가 외부 서비스로부터 차단 당해 문제가 발생한 것 같다는 진단을 내려 주셨다. 해당 외부 서비스를 우리 api 서비스로 우회하여 접근하면 빠르게 문제 해결 할 수 있을 것 같다는 조언도 함께 주셨다. ...

October 28, 2022 · 4 min · 754 words · Crispy

의식적으로 쓰기 - 선언과 단언

들어가며 Typescript에선 변수에 type을 어떻게 할당하나요? 여러분이 위와 같은 질문을 받았다면, 어떻게 답변하시겠어요? 저는 Effective Typescript라는 책을 읽으면서, 이 질문을 생각하고 순간 멍해짐을 느꼈습니다. 제겐 너무나도 당연스러운 말인 변수에 type을 할당하는 문장을 풀어서 설명하려니, 적절한 문장이 떠오르지 않았습니다. Typescript에서 변수에 type을 할당하는 것은 도대체 어떤 의미일까요? 변수에 type을 할당한다? 저는 변수에 type을 할당한다는 것에 영향을 받는 부분에 집중했습니다. 그래서 변수에 type을 할당한다는 말을 아래와 같이 해석해 보았습니다. 결국 할당으로 영향을 받는 것이 Typescript compiler이기 때문입니다. ...

October 19, 2022 · 4 min · 818 words · Crispy

[개발/RPC] 무에서 gRPC개념 쌓기

notice 뜬구름 잡는 소리를 할 수 있습니다. 댓글 주시면 반영할 수 있도록 하겠습니다. 반말과 충청도 사투리가 섞여 있습니다. 읽기 어려우신 부분 알려주세요! update log 2022.10.17 - gRPC는 HTTP/2를 사용하므로, TCP에 기반합니다. RPC가 뭐여 정의 Remote Procedure Call의 약자로, 외부 procedure를 실행하는 것 어서 도냐 grpc가 http2를 쓴댜 → TCP를 4계층으로 쓰고, 그 위에서 돌아가는 걸거여 → 그럼 application 계층인건가 장점 IPC 등의 작업 없이 일단 실행시키는 것 가능 서로 다른 언어에서 rpc 통신 방법만 맞추면, 통신 가능 단점 보안 문제가 있을 수 있음 응답이 비동기임 proto buffer는 또 뭐여 정의 google에서 만든 rpc 통신 규약으로, 강력한 message의 정의를 통해서 일관된 데이터 구조로 소통 가능 ...

October 16, 2022 · 3 min · 594 words · Crispy