개발 일지

Django opensource project FBV, CBV, 기능 구현 기반, prod blog

bluebamus 2021. 6. 12.

fastcampus와 책들을 통해 학습은 했는데 내 스스로가 배운 것들에 대해

정확하게 이해를 하고 있는지 의문이 들었다.

 

학습 과정들에 대해서도 직관적이지 않고 겉만 대충 훓고 간다는 생각도 들었다.

 

나와 같은 고민을 하고 있는 사람도 분명 있을거란 생각에 프로젝트를 해봐야 겠다고 생각했다.

 

해당 프로젝트는 총 4개로 진행이 될 것이다.

 

* 해당 프로젝트는 django를 실무적으로 개발하는데 있어 빠른 환경 개발환경 구축이 제공되는 오픈소스를 기반으로 진행된다.

 - 기본 기능

   - settings.py 분리

   - 라이브러리 및 env를 이용한 보안 

   - static, media 설정 

   - 외 기능 추가 중

   - 저장소 : https://github.com/bluebamus/devspoon-django-basic-dev-env

 

1. FBV 기반 Web-site (완료)

 - 로그인

 - 글쓰기/삭제/업데이트

 - 리스트/페이지네이션

 - 댓글 관리

 - N:M 관계, 파일 업로드( 좋아요, tag 관리)

 - form/modelform 구현

 - decorator을 이용한 login 상태 확인

 - delete state tag 기반으로 실재 데이터 삭제 없이 데이터 삭제 관리 기법

 - 외 기능 구현

 - 저장소 : https://github.com/bluebamus/django_function_based_web_site

 

2. CBV 기반 Web-site (준비 중)

 - 1번 template, model, url 등 view 파일을 제외하고 view와 관련된 파일들만 교체

 

3. django 기능 구현

 - 1, 2번은 view에 대해 집중을 했다면, 해당 프로젝트는 실재 상용 수준의 서비스에 요구되는 기능을 구현해보는데 목적을 가진다.

 - redis, mysql, postgressql, Nosql, celery, channel 등 동기/비동기 및 큐잉과 데이터베이스 연동과 ORM에 대해 집중할것이다.

 - 해당 프로젝트는 완료라는 목표 없이, 새로운 기술을 습득하면 지속적으로 반영해 나갈 계획이다.

 

4. prod blog

 - 실재 상용 수준의 서비스를 목적으로 한 blog 솔루션

 - SEO, Meta Tag, 구글 애널리시스, 보안, oauth2를 이용한 외부인증 등의 서비스 수준의 기능들을 구현해본다.

 - slack, email, kakao, SMS 등의 back office 모니터링 기능을 구현한다.

 - 크롤링을 이용한 데이터 수집, 데이터 분석, 다양한 그래프 구현 기능을 구현한다.

 - 멀티 파일 업로드, 다이나믹 폼 등 까다로운 기술을 구현한다.

 - Test 코드를 작성하고 jenkins/codebuilder와 github/gitlab/bitbucket을 이용한 빌드/테스트/배포 자동화를 구현한다.

 - Ajax를 이용하여 비동기 Full-Stack 서비스를 구현한다.

 

원래, 상용 서비스 4개 구현하는 것을 목적으로 하였으나, 기술의 이해와 구현 능력 향상에 집중을 하고

이후 오픈소스 프로젝트를 진행해 나갈 계획이다.

 

원래 계획은 Vue, React, 안드로이드 기반 Rest-Api 서비스로  e-commerce, 온라인 강의, Gmarket과 같은 중계 사이트를 만들 계획이었다.

 

해당 프로젝트들 중 기본 기능만 구현된 e-commerce는 오픈소스로 진행할 계획이 명확하게 있으나

다른 프로젝트의 경우는 private 프로젝트로 진행할지도 모르겠다.

댓글