결정 01
검증 규칙을 한 벌만 쓴다
- 문제
- 이전 프로젝트에서는 클라이언트와 서버에서 각각 정규식으로 검증했습니다. 규칙이 두 벌이라 한쪽만 고치는 실수가 나기 쉬웠고, 코드도 길었습니다.
- 선택
- Zod 스키마를 하나 정의하고 클라이언트 폼과 서버 처리에서 같은 스키마를 임포트해 썼습니다.
- 결과
- 코드가 짧아졌고, 규칙이 어긋날 여지가 사라졌습니다. 타입까지 스키마에서 뽑아 쓸 수 있다는 점이 가장 큰 이득이었습니다.
Zod와 Docker를 처음 실전에 넣어 본 자리
취업 준비용으로 만든 포트폴리오 사이트입니다. 결과물보다는 그때 공부하던 것들을 실제 프로젝트에 적용해 보는 데 의미를 뒀습니다.
그때 익히던 게 Zod와 Docker였습니다. 이전 프로젝트에서 문의 폼 검증을 정규식으로 직접 짰던 기억이 있어서, 이번에는 Zod로 클라이언트와 서버를 같은 스키마로 검증해 봤습니다. Docker는 개발 환경과 배포 환경을 나눠서 구성하는 연습이었습니다.
Lottie 애니메이션을 넣었다가 성능 문제도 겪었습니다. 애니메이션 파일이 생각보다 커서 새로고침할 때마다 다시 받아 오느라 초기 로딩이 눈에 띄게 느려졌습니다. 이 문제를 해결하는 과정에서 가장 많이 배웠습니다.
devkbs는 이 사이트의 데이터를 물려받되 구조와 디자인은 전부 새로 만든 후속작입니다.
문제, 선택, 결과 순서로 적었습니다.
결정 01
결정 02
결정 03
클라이언트와 서버가 같은 스키마로 검증하고 Nodemailer로 메일을 보냅니다.
Session Storage에 애니메이션 데이터를 캐시해 재요청을 없앴습니다.
스킬 섹션이 화면에 들어올 때 순차적으로 나타납니다.
현재 날씨를 가져와 화면에 표시하는 소소한 장치.
개발용과 배포용 이미지를 분리해 구성.
Desktop
01
02
03
04
Mobile · 반응형
01
02
03
04
배우고 있는 걸 개인 프로젝트에 실제로 써 보는 방식이 가장 효과적이었습니다. 튜토리얼을 따라 할 때와 제 프로젝트의 실제 문제에 적용할 때 남는 게 달랐습니다.
애니메이션 같은 시각 효과는 공짜처럼 보이지만 용량이 듭니다. Lottie 파일 하나 때문에 첫 화면이 느려지는 걸 본 뒤로는 시각 요소를 넣을 때 용량과 로딩 시점부터 확인합니다.
이 사이트를 만들고 2년 뒤에 devkbs를 다시 만들면서 그때와 지금이 어떻게 다른지 알 수 있었습니다. 그때는 무엇을 쓸 수 있는지 보여주려 했고, 지금은 무엇을 왜 그렇게 정했는지를 적어 두려고 합니다.