이번에 졸업 프로젝트를 진행하게 되면서, 팀원들과의 논의 끝에 django rest framework라는 프레임 워크를 채택하게 되었다. django와 비슷하지만 기능이 조금 추가된 프레임 워크이다.

Django라는 환경 자체에 대한 소개를 몇가지 하고자 한다. 프레임 워크 자체가 개발 환경을 쉽게 구축할 수 있도록 돕는 목적의 sw,오픈소스지만 특히 django는 python언어를 사용하기에 최적화 되어 있는 것이 맞았다.
내 주언어가 python이고 백앤드 메인 개발자로 채택되어서.. 다같이 django를 공부하게 되었다.😅


django는 다양한 편집기에서 프로젝트를 생성할 수 있지만, 우리는 근본 vscode에서 하기로 했다. 팀에 react언어를 아주 잘하는 능력자가 있어 프론트 엔드는 js언어로 사용했다(그 분 주언어).

프로젝트를 생성하면 두려워지는 양의 파일 생성을 볼 수 있는데, 그 중 내가 많이 사용하게 된 파일은 models.py,views.py,urls.py,settings.py이렇게 4가지의 파일이다. 오늘은 이 파일들의 사용법에 대해 얘기해보고자 한다.


얘기하려는 이유는 간단하다. 나도 처음에 헷갈렸어서.
먼저 models.py를 보자
django는 framework답게 기본 데이터 베이스(dbsqlite3)를 제공한다. 데이터 베이스에 내가 추가하고자 하는 테이블, 테이블의 컬럼들을 정의할 수 있다.
예를 들어 email,id,pwd,name이라는 컬럼이 들어있는 UserInfo테이블을 만들고 싶다면

class Userinfo(models.Model): #유저 모델
    name = models.CharField(max_length=10)
    id = models.CharField(max_length=20)
    pwd = models.CharField(max_length=20)
    email = models.EmailField(primary_key=True)

models.py에 이렇게 정의한다. 이 밖에도 묶일 수 있는 특성이 있다면 얼마든지 model로 정의할 수 있다.
그러니까 models.py는 이런 model들이 모여있는 파일이다.

💡 하지만 기본으로 제공되는 DB는 저장에 한계가 있다.솔직히 실제 유저가 들어와서 사용하려면 아무리 최소화해도 쉽게 되지 않는 느낌.. mysql로 제대로 된 DB를 사용하는 게 아무래도 좋다. 나도 완성 마지막 단계에서 교체했다 👌


다음으로는 urls.py이다. 이 파일에서는 우리가 개발하는 웹 사이트에서 제공하고자 하는 모든 페이지 경로를 정의하고 이어준다. 만약 make_prompt라고 페이지 이름을 짓고 이 경로를 설정해 주고 싶다면

path('make_prompt/', MakePrompt.as_view(),name='make_prompt'),

urls.py에 urlpattern[]안에 위처럼 추가해주면 된다.

물론 MakePrompt는 view파일에서 따로 정의한 함수이다. import해서 사용해야 한다.🤭


이제 settings.py를 보자. 말 그대로 다양한 설정을 추가할 수 있는데, secret key를 가져오거나, install내용을 추가하거나,jwt토큰을 허용할 때, 연결할 DB를 교체할 때도, 웹 주소가 바뀌어서 다시 허용해주어야 할 때도 전부 settings.py에서 작업해 주어야 한다. 코드가 길어 다 첨부할 수 없지만, settings에서 변경해주어야 하는 부분이 생길 때마다 체크해 주기를 바란다.


마지막으로 views.py파일이다.
백엔드 개발자의 메인 파일로, 대부분의 기능을 여기서 구현한다. 우리 프로젝트의 경우 프롬프트 생성/검색 자동화/ 로그인 요청/ 파일 다운로드/ 문자열 파싱 등 대부분의 주요 기능을 여기에서 구현했다.
각자의 프로젝트 내용에 따라 기능은 다르겠지만, 우리 프로젝트의 예시 코드이다.
<실제 사용>


이외에도 django에는 공부할 내용이 많다. 하지만 django로 개발을 시작하는 사람이라면 반드시 알아야 힘들지 않을 필수 요소들을 소개해 보았다. 나는 시행착오가 많이 걸렸지만 이 정리 글을 보는 사람들은 시행착오 시간이 줄기를 바라면서 마친다.

profile
호기심으로 시작해, 논리적으로 개발하는, 백엔드 개발자 임지희 입니다. 소개에 있는 포트폴리오 및 github에서 프로젝트 상세내용과 코드를 보실 수 있습니다:)

0개의 댓글