TIL
TIL-2023.01.06
TIL-2023.01.06
2023.01.06오늘 한 것 단축 URL 생성하는 원리에 대한 학습 좋은 코드 나쁜 코드 5장 읽기 bit.ly 같은 url을 접하고 사용해본 적은 많지만 어떻게 만드는지에 대해서는 딱히 탐구해보려고 하지 않았었다. 궁금했던 적은 있었으나 마냥 미뤄두기만 했는데 오늘 갑자기 그 이유가 궁금해져 파헤치기 시작했다. 단축 URL에 대해 찾아본 덕분에 그동안 궁금했던 URL줄이는 원리와 URL에 붙는 해쉬값 같은 이름을 생성하는 원리에 대해 알게 되었다. 조만간 직접 구현해보겠다 마음먹었다. 오늘 배운 것 1. 단축 URL bit.ly, ohou.se, lnkd.in 같은 축약 도메인에 해시 값으로 보이는 문자열을 붙여 생성하는 링크를 본 적이 있다. 보통 공유하고 싶은 컨텐츠를 발견하면 브라우저 URL을 그대로 복사해 메신..
TIL-2023.01.05
TIL-2023.01.05
2023.01.05오늘 한 것 "좋은 코드 나쁜 코드" 4장 읽기. 좋은 코드 나쁜 코드의 4장에서는 오류에 대해 설명한다. 최근 팀에서도 에러 핸들링에 대한 규칙이 없어서 고민을 하던 나에게 마침 필요한 챕터였다. 오류가 발생하는 케이스를 인지하지 못하고 Null값이 실행 흐름에 흘러들어가게 만들어 NPE를 발생하게 만드는 경우. 버그 또는 악의적인 의도로 비정상적인 유형으로 실행할 때 "", {}, [], 0 같은 기본값을 반환하는 경우. 차라리 Null의 경우가 낫다. 명시적으로 에러가 발생할 수 있음을 표시하지 않고 기본값으로 처리해버리면 디버깅이 힘들었던 경험은 지금까지 많이 해왔고 현재 진행중이다. 명시적인 에러 처리의 장점에 대해 설명하는 부분에서 많이 공감이 됐다. 읽고 난 뒤 소감은 "명시적인 방법으로 오..
TIL-2023.01.04
TIL-2023.01.04
2023.01.04오늘 한 것 "좋은 코드 나쁜 코드" 3장 읽기. 좋은 코드 나쁜 코드의 3장에서는 코드 계약에 대해 설명한다. 코드 계약은 명확한 부분과 세부 조항으로 나눌 수 있다. 명확한 부분은 클래스, 함수의 이름, 반환값, 인자 및 반환 유형, 검사 예외(컴파일 타임) 등이 해당한다. 세부 조항은 사용하기 위한 조건이나 환경등을 기술한 주석문, 문서, 비검사 예외(런타임) 등이 해당한다. 이 장에서는 코드 계약을 다른 개발자에게 전달하기 위한 여러 기법에 대해 소개한다. 주석, 문서화, 코드 등의 수단을 활용해 코드 계약을 작성할 수 있다. 다른 개발자들이 내가 작성한 코드를 올바르게 이해하고 사용하게 도와주는 방법으로 가장 좋은 것은 코드에 의도를 충분히 담는것이다. 주석이나 문서를 통해 코드 계약을 전달하는..
TIL-2023.01.03
TIL-2023.01.03
2023.01.03오늘 한 것 "좋은 코드 나쁜 코드" 2장 읽기. Nest.js 프로젝트 세팅. 좋은 코드 나쁜 코드의 2장에서는 추상화 계층에 대해 설명한다. 추상화를 했을 경우 얻게 되는 가독성, 모듈화, 재사용성 등의 이점을 예제 코드와 함께 소개한다. 비대한 클래스를 재사용성과 테스트 용이성을 향상시킨 버전으로 리팩토링하는 예시가 있다. "역할"의 판단 기준, "private", "public" 같은 접근제한자를 사용해 공개 범위를 설정하는 기준, 인터페이스를 활용해 언제든 교체가능하도록 만드는 방법, 코드의 추상화 수준 등을 예제 코드를 리팩토링하는 과정에서 잘 설명해줘서 이해하기 쉬웠다. 코드를 추상화하고 모듈화할 때 어느 정도까지 작게 만들어야 하는지 궁금한 적이 많았는데 결론은 "그때 그때 다르다"라고 얘..