분류 전체보기
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" 같은 접근제한자를 사용해 공개 범위를 설정하는 기준, 인터페이스를 활용해 언제든 교체가능하도록 만드는 방법, 코드의 추상화 수준 등을 예제 코드를 리팩토링하는 과정에서 잘 설명해줘서 이해하기 쉬웠다. 코드를 추상화하고 모듈화할 때 어느 정도까지 작게 만들어야 하는지 궁금한 적이 많았는데 결론은 "그때 그때 다르다"라고 얘..
TIL-2023.01.02
TIL-2023.01.02
2023.01.02오늘 한 것 "좋은 코드 나쁜 코드" 1장 읽기. Next.js 학습 시작. "이것이 코딩 테스트다" 다이나믹 프로그래밍 부분 개념 학습. 오늘은 얼마 전에 주문한 "좋은 코드 나쁜 코드"라는 책을 처음 펼쳐보았다. "많이 벌고 적게 잃는 법" 같은 당연한 소리를 제목으로 내걸어서 진부한 책이라는 느낌이 들었던 게 사실이다. 1장의 제목 또한 "코드 품질"이라는 뻔한 단어 아닌가? "클린 코드", "이펙티브 자바" 같은 개발 방법론과 안티 패턴을 다루는 책을 두루 읽은 사람이라면 이미 알고 있는 내용일 수도 있다. 하지만 구체적으로 코드 품질의 정의, 판단 기준, 지켜야 할 원칙, 문제 사례 등을 제시해서 독자가 이해하기 쉽게 구성했다는 점이 좋았다. 그리고 현실 세계의 문제에 빗대어 표현하는 방법 또한..