Django-3

Stark Ned·2024년 4월 1일

서비스를 구현하며 겪은점

1. 프로젝트 구조

2. SPRING 과의 유사성과 상이함

  • 기존에 사용해왔던 SPRING MVC와 유사한 Django의 MVT패턴 모델은 동일하되 V -> T(Template) , C ->V(View) 처럼 기능은 유사하되 명칭이 다를수 있다.

  • SPRING JPA vs Django ORM

위의 사진은 서비스를 구현하며 작성해던 코드중 하나이다.
이처럼 SPRING 의 JPA와 다른부분들은 분명 있지만 편리한 ORM기능을 경험 할 수 있었다.

3. 장고 관리자

4. URL 하드코딩 대신 URL 별칭

  • URL 링크의 구조가 자주 변경된다면 템플릿에서 사용한 모든 URL들을 일일이 찾아가며 수정해야 하는 리스크가 발생한다. 이러한 문제점을 해결하기 위해서는 해당 URL에 대한 실제 링크 대신 링크의 주소가 1:1 매핑되어 있는 별칭을 사용해야 했다.

5. 그리드

  • 내가 구현할 기능을 위해선 그리드가 필수였다. 오픈소스 그리드를 검색 해보며 다양한 그리드를 보았지만 이번 프로젝트는 나 혼자서만 사용할 서비스였기 때문에 리얼그리드의 개발자 기능으로 구현 하였다.

6. 셀레니움과의 연동

  • 구현 기능들 중 대 다수가 셀레니움을 기반으로 한 요청과 응답을 통한 기능들의 유기성이 중요하였다.
    그래서 view에서 구현한 셀레니움 기능의 모듈들을 어떻게 문제없이 연동 할 수 있을지 생각을 해 보았다.

  • 위의 사진처럼 지속적인 버튼 속성 관리를 위해 localStorage를 사용 해서 css를 관리 하였으며

  • 데이터 로딩이 오래 걸려 그걸 기다리며 작업을 진행하면 안될 떄에는 로딩바를 위의 코드처럼 구현하였다.

느낀점

위에서 정리한 겪은점들은 일부지만 이번에 Django 를 학습하며 정말 많은걸 느꼈다. 장고는 웹 프로그램을 정말 쉽고 빠르게 만들 수 있도록 도와주며 다양한 기능들과 사용자 편의를 제공하는 프레임워크이라는 생각을 하였다.
나중에 기회가 된다면 쿠키를 활용한 JWT인증방식이나 , 보안 기능(SQL 인젝션, XSS, CSRF)등 도 구현 해 보고싶다.

참고: https://wikidocs.net/6606, https://wikidocs.net/72407
profile
Escape

0개의 댓글