ViewModel과 Model 유닛 테스트하기
유닛 테스트란 어떤 단위의 모듈이 의도한 대로 동작하는지 확인하기 위한 과정입니다. 테스트 대상 단위가 정확하게 정해져있는 것은 아니지만, 이 단위의 크기를 작게 만들수록 테스트 코드를 작성하기가 쉽습니다. 데이터를 가져오는 로직과 그 데이터를 가공하는 로직, 그리고 가공한 데이터를 화면에 출력하는 로직이 하나의 컴포넌트에 전부 들어가있다고 생각해봅시...
유닛 테스트란 어떤 단위의 모듈이 의도한 대로 동작하는지 확인하기 위한 과정입니다. 테스트 대상 단위가 정확하게 정해져있는 것은 아니지만, 이 단위의 크기를 작게 만들수록 테스트 코드를 작성하기가 쉽습니다. 데이터를 가져오는 로직과 그 데이터를 가공하는 로직, 그리고 가공한 데이터를 화면에 출력하는 로직이 하나의 컴포넌트에 전부 들어가있다고 생각해봅시...
ViewModel을 재사용하기 위한 고찰 이전 블로그 글에서 MVVM 패턴을 적용했던 과정에 대해 남겨보았습니다. 그 이후로도 저는 여러가지 ViewModel과 Model을 구현해보았는데요, 매일 마주하는 코드인데도 불구하고 고쳐야 할 점이 매번 새롭게 보이고 있습니다. 쉽지 않은 내용인 만큼 아직도 MVVM 패턴에 익숙해지는 중인 것 같습니다. 최...
MVVM 패턴은 디자인 패턴의 한 종류로, Model, View, ViewModel을 사용해 UI 관련 로직과 비즈니스 로직을 명확하게 분리합니다. 취업을 준비하던 시기에 진행했던 토이 프로젝트는 규모가 작아 이러한 패턴을 적용할 필요성을 느끼지 못했습니다. 그러나 프론트엔드 개발자로 일을 시작하고 사용자들이 사용할 실제 서비스를 제작하며, 코드의 유...
FIRST 원칙 단위 테스트를 수행하는 데 있어 여러 가지 가이드가 있지만 일반적으로 적용하고 있는 FIRST 원칙은 다음과 같습니다. Fast Independent Repeatable Self-Validating Timely 하지만 22년 6월 기준 FastAPI와 SQLAlchemy에서 제공하는 공식문서상의 튜토리얼을 따...
Python의 Enum Type 기본적으로 Python의 열거형은 여러 이름을 같은 값에 대해 별칭으로 사용합니다. 예를 들면 열거형의 멤버에 동일한 값을 가진 A와 B가 정의되어 있다면 B는 A의 별칭입니다. class Shape(Enum): SQUARE = 2 DIAMOND = 1 CIRCLE = 3 ALIAS_FO...
Request Body Validate API 요청을 받으면 최소한으로 수행해야 하는 유효성 검사가 있습니다. 보안의 가장 기본인 SQL Injection 공격 이외에도 전달받은 데이터가 필요로 하는 최소한의 규칙 등이 있습니다. password를 예로 들자면 대소문자, 숫자, 특수문자를 포함해 최소 8에서 최대 20자리까지의 텍스트를 만족한다던가 ...