Django, 장고 기초 강의가 끝이 나고 팀 프로젝트의 날이 밝았습니다.
아직 장고 기초도 미숙한 편이기에 너무 빨리 다가와버린 프로젝트가 두렵기도 했지만 꽤 설레기도 했다.
하지만 막상 프로젝트에 대한 설명을 들어보니 예상과는 다르게 조금은 험난한 프로젝트가 될 것이라는 생각이 들었다.
설명이 끝나고 우선적으로 팀원들과 이번 프로젝트의 SA를 설계하였다.
저번 프로젝트와 같이 Notion으로 전체적인 프로젝트 틀을 만들었고, 이후 API 및 ERD 설계와 Mockup 디자인을 해주었다.

우선 우리 팀의 이번 프로젝트는 영화 추천 웹 페이지이다.
웹 사이트에 회원가입을 한 뒤 로그인을 하여 메인 페이지로 들어가게 되면 선호 장르에 따라 영화를 추천해주는 웹 페이지를 만드고자 한다.
해당 영화들의 상세 내용을 볼 수 있고, 영화 댓글 및 평점을 남길 수 있도록 프로젝트의 모습을 설계하였다.
그렇게 나눠진 팀 역할에 대해서는 다음과 같다.
김주훈 : 메인 페이지
김성호 : 디테일 페이지
최희원 : 디테일 페이지
박진우(나) : 리뷰 작성 페이지
이렇게 역할 분담을 나눠두었고, 추후에 추가되는 사항이 생길 수 있다.
다음은 Mockup 디자인 설계이다.
웹 페이지 디자인은 넷플릭스와 비슷하게 만들어볼 생각을 하고 있고, Mockup 디자인은 다음과 같다.

다음으로는 API 및 ERD 설계이다.

아직은 설계 단계에 있지만 API 설계는 저번에도 잠깐 해봤었고 다른 팀들의 예시를 보며 알아가는 과정을 밟아서 그런지 꽤 그럴듯하게 작성되고 있다.
그리고 ERD 설계는 이번 장고 프로젝트부터 이렇게까지 사용해본 건 처음인 것 같다.
이전 프로젝트에서 몇 번 설계한 적이 있는 것 같으나 그때는 한참 관계 설정에 있어 미숙한 면이 많았고 사용 방법도 잘 몰라서 어영부영 사용하다 끝낸 감이 있는데, 이번에는 그래도 팀원들 모두가 설계에 힘써서 그런지 괜찮은 설계가 나온 것 같다.
그래도 아직은 보완 중에 있으니 최종적인 설계는 아닌 것을 명심하자.
-
이번에 Visual Studio Code(VSCode)를 이용하여 PowerShell(이하 파워셀)에서 가상 환경(venv)을 설정하고 장고 프로젝트를 설치해보는 연습을 해보았다.
그런데 해당 프로젝트를 만들기 위해 가상 환경을 설치하는 과정에서 다음과 같은 오류가 발생하였다.
위치 줄:1 문자:1
+ CategoryInfo : 보안 오류: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
해당 오류는 스크립트 보안 오류로 인해 발생하는 것인데, 다음 오류의 해결 방법에 대해 적어보겠다.
파워셀을 사용하다가 나타난 오류이기 때문에 'Window 검색 → PowerShell 검색 → 관리자 권한으로 실행'으로 파워셀을 실행해준다.

그리고 파워셀 안에 다음 문구를 입력해준다.
ExecutionPolicy
ExecutionPolicy는 스크립트 제한 설정이 어떻게 되어있는지 보여주는 명령어이다.
해당 오류가 발생한 사람이 관리자 권한으로 실행해준 파워셀에 ExecutionPolicy 명령어를 입력하면 다음과 같은 화면을 볼 수 있다.

여태까지 아무런 설정을 해주지 않았다면 기본적으로 Restricted 설정이 되어있을 것이다.
스크립트 제한 설정에는 다음과 같이 총 3가지의 제한 설정이 존재한다.
Restricted : 개별 명령은 허용하나, 스크립트 실행이 불가능하다.
Unrestricted : 악의적으로 스크립트를 실행할 위험이 있으나, 스크립트 실행이 가능하다.
RemoteSigned : 이미 실행한 스크립트나 로컬 컴퓨터에서 작성한 스크립트는 디지털 서명 없이 실행이 가능하다.
여기서 Restricted 설정이 되어있었기 때문에 VSCode에서 입력한 가상 환경이 정상적으로 만들어지지 않았던 것이었다.
그래서 설정을 바꿔주고자 다음 명령어를 적어주었다.
Set-ExecutionPolicy RemoteSigned
또는 Set-ExecutionPolicy Unrestricted
필자는 Set-ExecutionPolicy RemoteSigned 명령어를 사용해주었다.
Set-ExecutionPolicy Unrestricted 명령어를 사용해줘도 상관없긴 하나, '악의적~ 위험~'이라는 문구가 들어가 있어서 딱히 위험을 감수해가면서 사용하기 싫었기에 사용하지 않았다.
물론 위 두 개의 명령어를 사용해도 위에서 발생한 스크립트 보안 오류를 해결할 수 있다.
명령어를 적어줬다면 'y'를 입력해준 뒤 엔터를 눌러서 설정을 마무리해준다.
그리고 정상적으로 설정되었는지 확인하기 위해 ExecutionPolicy 명령어를 사용하여 확인해보도록 하자.

-
오늘은 새롭게 시작된 장고 프로젝트에 대해 팀원들과 상의하는 시간을 가졌다.
뭔가 프로젝트 일정이 하나둘씩 쌓여가면서 Mockup을 만들거나 설계하는 데 있어 이전과는 다르게 그렇게 많은 시간이 소요되지는 않는 것 같다.
그래도 아직은 완성단계에 있지 않고 추후에 프로젝트를 진행하면서 수정되는 부분이 있다면 추가하고 보완할 부분이 있다면 보완하면서 프로젝트를 완성해갈 예정이다.
이제 막 기초 강의를 끝낸 장고로 무엇을 어떻게 해야 할지 고민이긴 하지만 열심히 프로젝트에 임해보도록 하자.
:P
'TIL 및 WIL > TIL (Today I Learned)' 카테고리의 다른 글
| [TIL] 2022.06.08 (Django 추천 시스템 팀 프로젝트3) (0) | 2022.06.08 |
|---|---|
| [TIL] 2022.06.07 (Django 추천 시스템 팀 프로젝트2) (0) | 2022.06.07 |
| [TIL] 2022.05.31 (Django 기초3) (0) | 2022.05.31 |
| [TIL] 2022.05.30 (Django 기초2) (0) | 2022.05.30 |
| [TIL] 2022.05.27 (Django 기초1) (0) | 2022.05.27 |