Section 1. 리팩토링
1. 리팩토링 (Refactoring)
외부 동작 결과의 변경 없이 코드의 내부 구조를 개선하는 작업으로 주로 가독성을 높이고 유지보수를 편하게 하기 위함이다.
2. form clean 함수와 model 처리
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F0803371e-58ac-4772-bc92-6d8a32506740%2Fimage.png)
- 위와 같이 form 에서 clean 함수를 이용해 모델 처리 로직을 수행했는데 clean 함수는 유효성 검사만 수행하는 것이 원칙적이므로 form 과 model 관련 처리 로직을 분리 해야함
3. 회원가입 리팩토링 수행
- clean 함수에서 model 생성 코드 제거
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fd6967ace-8d29-42d8-b8b3-4803a00da519%2Fimage.png)
- View 에서 model 생성 코드 수행
- clean 함수에서 ID / PW 유효성 검사를 모두 수행했으므로 form_valid 는 문제없는 경우에 수행됨
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Ff5edb010-666b-4a0e-99e5-72786369e90d%2Fimage.png)
4. 상품 등록 리팩토링 수행
- clean 함수에서 product 생성 코드 제거
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Fe75621a4-8691-414d-99c9-fd9ac49cf8f4%2Fimage.png)
- View 에서 product 생성 코드 수행
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F6dc4aad7-8c8a-470e-9fc1-769cec62fb5a%2Fimage.png)
5. 주문하기 리팩토링 수행
- clean 함수에서 user = self.request.session.get('user') 와 order 생성 코드 제거
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2Faff3102e-6e44-41d5-978c-a1ca00e1642f%2Fimage.png)
- View 에서 order 생성 코드 수행
![](https://velog.velcdn.com/images%2Fcodren%2Fpost%2F8eb84660-d9b2-48e8-851c-8b698a2d5196%2Fimage.png)