TIL-2023.01.02
오늘 한 것
- "좋은 코드 나쁜 코드" 1장 읽기.
- Next.js 학습 시작.
- "이것이 코딩 테스트다" 다이나믹 프로그래밍 부분 개념 학습.
오늘은 얼마 전에 주문한 "좋은 코드 나쁜 코드"라는 책을 처음 펼쳐보았다.
"많이 벌고 적게 잃는 법" 같은 당연한 소리를 제목으로 내걸어서 진부한 책이라는 느낌이 들었던 게 사실이다.
1장의 제목 또한 "코드 품질"이라는 뻔한 단어 아닌가?
"클린 코드", "이펙티브 자바" 같은 개발 방법론과 안티 패턴을 다루는 책을 두루 읽은 사람이라면 이미 알고 있는 내용일 수도 있다.
하지만 구체적으로 코드 품질의 정의, 판단 기준, 지켜야 할 원칙, 문제 사례 등을 제시해서 독자가 이해하기 쉽게 구성했다는 점이 좋았다.
그리고 현실 세계의 문제에 빗대어 표현하는 방법 또한 인상적이었다.
집에 선반을 설치하려고 하는데 2가지 선택지가 있다.
a) 시간은 30분이나 들지만 구멍을 뚫어 벽에 고정하는 방법.
b) 10분만 있으면 임시로 접착제를 사서 벽에 붙이는 방법.
둘 중 어떤 방법을 택했느냐에 따라 펼쳐질 미래의 문제에 대해서도 고민해 볼 수 있도록 충분히 공감할 수 있는 사례를 들어 코드 품질의 중요성을 설명하는 점이 인상적 이었다.
들어보기만 했던 Next.js에 대해서도 공식 문서로 학습했다.
공식 문서의 구성을 따라 처음부터 살펴보았는데 초보자를 배려하는 친절한 문서라고 느껴졌다.
Next.js의 소개, 모던 자바스크립트, 리액트 순서로 간단한 개념을 소개하며 선수 지식에 대해서 보충 설명하는 친절함이 인상적이었다.
그리고 학습자가 쉽게 실수할 만한 부분에 대해서도 대비를 잘 해놓았다.
흔히 발생하는 오류를 재현하고 해결하는 과정까지 예제에 담는 디테일함이 튜토리얼의 퀄리티를 한층 더 높여준 느낌이었다.
전반적으로 연계되는 개념들을 학습자에게 자연스럽게 이해시키는 탄탄한 구성이 일품이다.
오늘 배운 것
1. 좋은 코드 나쁜 코드 - 1장 코드 품질
요약
- 좋은 소프트웨어를 만들려면 고품질 코드를 작성해야 한다.
- 실제 서비스 환경에서 실행되는 소프트웨어가 되기 전에 코드는 일반적으로 여러 단계의 검사와 테스트를 통과해야 한다.
- 버그나 제대로 동작하지 않는 기능이 사용자에게 제공되거나 비즈니스에 중요한 시스템에서 실행되는 것을 이러한 검사를 통해 막을 수 있다.
- 테스트는 코드를 작성하는 모든 단계에서 고려하는 것이 좋다. 코드를 다 작성하고 난 후에 고려하는 것이 아니다.
- 고품질 코드를 작성하면 처음에는 시간이 오래 걸리지만, 중장기적으로는 개발 시간이 단축되는 경우가 많다.
코드 품질의 목표
- 안전
- 실제로 동작
- 고장나지 않음
- 예측 가능한 행동
네 가지 목표
- 코드는 작동해야한다
- 코드는 작동이 멈추면 안된다
- 코드는 변경된 요구 사항에 적응할 수 있어야 한다.
- 코드는 이미 존재하는 기능을 중복 구현해서는 안된다.
코드 품질의 핵심 요소
- 코드는 읽기 쉬워야 한다.
- 코드는 예측 가능해야 한다.
- 코드를 오용하기 어렵게 만들라.
- 코드를 모듈화하라.
- 코드를 재사용 가능하고 일반화할 수 있게 작성하라.
- 테스트가 용이한 코드를 작성하고, 제대로 테스트하라.
2. Next.js - Getting Started
- Vercel에서 개발한 React 프레임워크로 빠른 웹 애플리케이션을 만들수 있는 구성 요소(building block)를 제공한다.
- 웹 애플리케이션의 구성 요소
- User Interface - 사용자가 애플리케이션을 어떻게 사용하고 상호작용할 것인가
- Routing - 사용자가 애플리케이션의 다른 부분들을 어떻게 탐색할 것인가
- Data fetching - 데이터를 가져오고 배치하는 방법
- Rendering - 정적/동적 컨텐츠를 렌더링하는 시기와 위치
- Integrations - 서드파티(CMS, 인증, 결제 서비스 등)와 연결하는 방법
- Infrastructure - 애플리케이션 코드(서버리스, CDN, Edge)를 배포, 저장, 실행하는 방법
- Performance - 사용자를 위해 애플리케이션을 최적화하는 방법
- Scalability - 팀, 데이터, 트래픽의 성장에 맞게 어떻게 애플리케이션을 적응시킬지.
- Developer Experience - 애플리케이션을 개발하고 유지보수하는 개발팀의 경험
'TIL' 카테고리의 다른 글
TIL-2023.01.04 (0) | 2023.01.04 |
---|---|
TIL-2023.01.03 (0) | 2023.01.03 |
TIL-2021.02.18 (0) | 2021.02.18 |
TIL-2021.02.16 (0) | 2021.02.16 |
TIL-2021.02.14 (0) | 2021.02.14 |
댓글
이 글 공유하기
다른 글
-
TIL-2023.01.04
TIL-2023.01.04
2023.01.04 -
TIL-2023.01.03
TIL-2023.01.03
2023.01.03 -
TIL-2021.02.18
TIL-2021.02.18
2021.02.18 -
TIL-2021.02.16
TIL-2021.02.16
2021.02.16