개요
웰드코리아의 전반적인 로그인, 회원가입 관련 API를 핸들하는 서버
Django
Python의 대표적인 웹 프레임워크. 기본적으로 관리자 인터페이스, ORM, 폼 처리, 보안 기능 등이 내재되어있습니다.
-
MTV(Model - Template - View) 아키텍처:
- Model: 데이터베이스의 구조와 데이터에 대한 정의를 담당합니다.
- Template: 사용자에게 표시될 프론트엔드 레이어를 정의합니다.
- View: 비즈니스 로직을 담당하며, 모델과 템플릿을 연결합니다.
<aside>
💡 웰드코리아에서는 Template를 사용하지 않습니다.
</aside>
-
자동 관리자 인터페이스:
- Django는 자동으로 관리 인터페이스를 생성해주어 데이터 관리가 용이합니다. 이를 통해 데이터베이스 모델을 기반으로 한 관리자 사이트를 즉시 사용할 수 있습니다.
-
ORM (Object-Relational Mapping):
- Django의 ORM은 데이터베이스 쿼리를 Python 코드로 작성할 수 있게 해주며, 다양한 데이터베이스(예: PostgreSQL, MySQL, SQLite, Oracle)와 쉽게 통합됩니다.
<aside>
💡 웰드코리아는 PostgreSQL을 사용하여 구현되었습니다.
</aside>
-
강력한 URL 라우팅:
- Django는 직관적이고 강력한 URL 라우팅 시스템을 제공합니다. 이를 통해 웹 요청을 적절한 뷰로 라우팅할 수 있습니다.
-
폼 처리:
- Django는 폼을 쉽게 생성하고 처리할 수 있는 기능을 제공합니다. 폼 유효성 검사와 데이터 정리를 자동으로 처리합니다.
-
보안 기능:
- CSRF, XSS, SQL Injection 등의 공격으로부터 애플리케이션을 보호하는 다양한 보안 기능이 내장되어 있습니다.
- 사용자 인증, 권한 부여, 세션 관리 등의 기능을 손쉽게 구현할 수 있습니다.
-
확장성:
- Django는 다양한 플러그인과 서드파티 라이브러리를 통해 기능을 쉽게 확장할 수 있습니다. Django REST Framework를 사용하여 RESTful API를 구축할 수도 있습니다.
<aside>
💡 웰드코리아는REST Framework를 채택하여 구현되고 있습니다.
</aside>
-
테스팅 프레임워크:
- 내장된 유닛 테스트 프레임워크를 통해 애플리케이션의 품질을 유지하고 테스트 자동화를 구현할 수 있습니다.
<aside>
💡 pytest 를 넘어서 장고만의 unittest를 사용하고있습니다.
</aside>