Django를 처음 들어보고 있는데 상당히 편리하고 강력한 프레임워크인 것 같다. 직접 사용해보니 좋은 점이 꽤 많은데, 내가 알기로 현업의 백엔드 개발은 Django를 많이 안쓰고 다른 언어를 더 많이 사용한다고 알고 있다. 그래서 왜 그런지 이유를 찾아보니,
확장성과 대규모 트래픽 처리
Django는 단일 서버에서 운영되는 중소규모 프로젝트에는 적합하지만, 초대형 트래픽을 처리해야 하는 경우 Node.js, Go, Java(Spring)과 같은 경량 프레임워크가 더 선호된다. Django는 Python 언어를 기반으로 하기 때문에 상대적으로 실행 속도가 느려 실시간 성능이 중요한 애플리케이션(예: 채팅, 게임, 스트리밍 등)에는 적합하지 않을 수 있다.
프론트엔드-백엔드 분리 트렌드
현대 웹 개발은 프론트엔드(React, Angular, Vue.js)와 백엔드를 완전히 분리하는 추세를 따르고 있다. Django는 전통적으로 서버 사이드 렌더링(SSR)을 기반으로 하지만, 이런 트렌드에서는 REST API나 GraphQL 백엔드로서 Flask, FastAPI와 같은 간소화된 프레임워크가 더 선호된다.
기능의 무거움
Django는 많은 기능을 기본으로 제공하지만, 프로젝트가 간단한 경우 오히려 비효율적일 수 있다. Flask와 같은 경량 프레임워크는 불필요한 기능 없이 필요한 부분만 추가할 수 있어 단순한 애플리케이션에 더 적합하다.
대규모 산업 표준
엔터프라이즈급 애플리케이션에서는 Java(Spring Boot), .NET 등이 더 많이 사용된다. 이들은 안정성과 대규모 지원이 중요한 대기업 프로젝트에서 선호된다. Django는 스타트업과 중소규모 프로젝트에 더 적합한 경향을 보인다.
Python의 한계
Python은 개발 생산성이 높지만, 실행 속도가 느려 고성능이 필요한 애플리케이션에서는 Go, Rust, Node.js와 같은 언어가 더 적합하다.
위와 같은 이유 때문에 현업에서는 다른 언어를 많이 쓴다고 하는데, 현재는 Python을 위주로 공부하고 있어서 Django밖에 모르지만 나중에는 Node.js나 Java같은 언어들도 공부해봐야겠다.
Django 오류
강의를 들으면서 Django실습을 진행해봤는데, 중간에 templates 폴더가 인식되지 않는 오류가 있었다. 그래서 30분~1시간동안 계속 오류를 찾아보고 코드 철자 틀린지도 확인해보았는데, 결론부터 말하면
app 등록을 하지 않아서
였다... Django는 앱을 생성하고 나면, App을 등록해야지 사용이 가능하고
python manage.py startapp articles(앱이름)
으로 사용이 가능한데, 그 다음에 settings.py에 들어가서 앱이름을 추가해주어야 한다.
위 그림에서 마지막 articles가 앱 이름인데, 이곳에 앱을 등록하지 않아서 나중에 실습을 할 때 articles 폴더 내의 templates라는 폴더를 찾지 못했다.
오류 창에서는 templates라는 폴더가 없다고만 해서 철자도 확인해보고 폴더 위치를 봐도 문제가 없었는데, 열심히 구글링해본 결과 App 등록을 안해서였다는 것을 알게 되었고 고쳐본 결과
잘 동작하는 것을 알 수 있다. 앞으로 App등록을 꼭 하도록 하자 ㅠㅠ
Django를 공부하면서, 여러가지 강력한 프레임워크들에 대해서 알아보고 있다. 처음부터 모든 것을 구축하기는 힘들기 때문에, 남이 만들어놓은 것을 가져다가 잘 쓰는것이 중요하다고 했는데 왜 그런지 알 것 같다. 구현하기엔 너무 복잡하지만 구현된 후에는 사용이 매우 간편해서인데, 어떻게 하면 더 효율적으로 간단하게 사용할 수 있을지 고민해봐야겠다. 내일도 화이팅
'공부노트' 카테고리의 다른 글
1/8, 서른 세번째 날의 TIL(NLP) (2) | 2025.01.08 |
---|---|
1/7, 서른 두번째 날의 TIL(Django) (1) | 2025.01.07 |
1/3, 서른 번째 날의 TIL(Medium - Baker) (10) | 2025.01.03 |
1/2, 스물 아홉 번째 날의 TIL (5) | 2025.01.02 |
12/30, 스물 여섯 번째 날의 TIL(Dockerfile) (3) | 2024.12.30 |