-
Django 기본 설정
서론지난 시간까지 Django 를 오픈하는 과정까지 알아보았다.하지만 중요한 설정 몇 가지가 남아 있다. 기본 설정project mysite init.py asgi.py settings.py urls.py wsgi.py이 디렉토리 기준으로 settings.py 파일을 한번 살펴보자pythonimport osfrom pathlib import Path Build paths inside the project like this BASEDIR subdir.BASEDIR Pathfile.resolve.parent.parent Quickstart development settings unsuitable for production See httpsdocs.djangoproject.comen5.0howtodeploymentchecklist SECURITY WARNING keep the secret key used in production secretSECRETKEY djangoinsecure65mm5s3vymu7u6sdg8n0nfvk480wtugp2rc SECURITY WARNING dont run with debug turned on in productionDEBUG TrueALLOWEDHOSTS ... 생략TEMPLATES BACKEND django.template.backends.django.DjangoTemplates,DIRS os.path.joinBASEDIR, template,APPDIRS True,OPTIONS contextprocessors django.template.contextprocessors.debug,django.template.contextprocessors.request,django.contrib.auth.contextprocessors.auth,django.contrib.messages.contextprocessors.messages,,,, ... 생략 Internationalization httpsdocs.djangoproject.comen5.0topicsi18nLANGUAGECODE kokrTIMEZONE UTCUSEI18N TrueUSETZ True Static files CSS, JavaScript, Images httpsdocs.djangoproject.comen5.0howtostaticfilesSTATICURL staticSTATICFILESDIRS os.path.joinBASEDIR, staticSTATICROOT .static Default primary key field type httpsdocs.djangoproject.comen5.0refsettingsdefaultautofieldDEFAULTAUTOFIELD django.db.models.BigAutoField기본적으로 생성된 내용을 바탕으로 몇 가지만 수정이 되었다.아마 원본 생성된 파일과 비교를 해보면 그 차이를 비교할수 있겠다.생략된 부분은 건들지 않은 부분이다.수정한 부분을 위에서부터 설명을 한다면,DEBUG 는 말그대로 디버그를 사용할 것이냐 말것이냐이다.테스트 단계에서는 사용하는 것이 좋을 테고, 실제 운영시에는 끄는것이 몸에 이롭다.왜냐면 운영 상태에서 디버그가 켜져 있으면, 내부 파일 등 에러와 관련된 정보가 그대로 노출되므로 노출증 환자가 아니라면 필히 꺼져있나 확인하는 것이 좋겠다.SECRETKEY 의 경우 기본적으로 자동 생성된 키이다.해당 값은 git 이나 외부 드라이브에 업로드 되는 것을 방지하는 것이 좋다.따로 .json 파일로 빼거나 다른 외부 키 파일로부터 값을 읽어 사용하는 것으로 변경하면 좋으며,이는 나중에 포스팅 하도록 하겠다. 지금은 귀찮ALLOWEDHOSTS 이친구는 쉽게 설명해 어떤 사용자만 들어오게 할것이냐다. 이면 모든 접속을 허용하겠다는 의미이며, 당연하게도 홈페이지 등의 모두를 위한 서비스이라면 딱히 제한할 필요도 없다.배열이 빈칸이면 아무도 못들어 오며, ip 주소를 입력할 시 해당 ip로부터 접근을 허용한다. 근데 이거도 사실 굳이 특정 ip만 혀용하고 싶다거나 막거나 하는건 nginx 단계에서 막으면 되는 거라 굳이 따로 말고 따로 설정할건 없을 듯 하다.TEMPLATES 의 DIRS 값을 수정하였다.os.path.joinBASEDIR, template 의 데이터를 넣었는데이는 탬플릿, 즉 HTML 등의 소스파일이 있는 경로를 넣어 준 것이다.만약 소스파일명이 test 라면 뭘 바꿔야하는지는 알겠지 os.path.joinBASEDIR, test 이고, 친절하게도 알려주었다.STATICFILESDIRS, 와 STATICROOT 두 개를 추가 하였다.위에 TEMPLATES 경로 설정과 마찬가지로 STATICFILESDIRS 에도 os.path.joinBASEDIR, static 를 추가하였다.static 은 css 등의 파일을 넣어둔 장소이다.STATICROOT 는 왜 했는지는 나중에 설명하도록 하겠다. 이거도 귀찮이렇게 대강의 기본적인 설정이 마무리되었다.물론 할 건 더 많지만 고건 나중에 심화 학습으로 배우는 것이 이롭다.
2024-08-16 10:50:15
Public
-
Django 구성하기
Django 란 무엇인가인터넷 상에서 웹페이지를 보려면 Django 와 같은 프레임워크를 사용 해야한다. 프레임워크는 frame 틀, work 일하다 라는 정의를 검색해보면 알 수 있는데, 쉽게 말해 웹페이지 운영할 수 있는 툴 정도로 이해하면 좋을 듯하다.Django 는 python 기반의 프레임워크 이며, 다음 단계는 설정하는 방법을 다룬다. Django 구성하기Django 시작하기 라고 google 에 검색하면 보다 상세히 사용 방법을 알 수 있다.먼저 위에서 학습한 환경 설정 한대로 test라는 환경이 활성화되어 있다는 전제로 설명한다. pip install django당연하게도 Django 를 이용하기 위해 설치를 먼저 진행하여야 한다.위 명령어를 활성화된 test 환경에서 실행한다.다음으로 프로젝트를 시작하기 앞서 관리하기 편한 경로와 폴더를 지정한다.이후 cmd에서 지정한생각해둔 경로로 이동한다.또는 위 사진과 같이 해당 폴더를 보고있는 화면에서 경로 입력란에 cmd라 입력하면 해당 경로가 지정된 폴더로 이미 이동 되어 있다.이후 Django 시작하기 가이드 페이지의 설명을 요약하면 djangoadmin startproject mysite선행으로 설치한 django 라이브러리에 기본적으로 탑제되어 있는 기능인 djangoadmin 라는 명령을 불러와 mysite 라는 이름을 가진 프로젝트를 시작한다는 의미로 해석할 수 있다.해당 명령어를 입력하면, 명령어가 실행된 폴더에 mysite라는 이름을 가진 폴더가 자동적으로 생성된 것을 확인할 수 있다. python manage.py runserver이제 만들어진 프로젝트가 정상적으로 작동이 되는지 확인하기 위해 서버를 가동해보자. cmd창에서 mysite 폴더로 이동한 후 위 명령어를 입력하면, 위처럼 http127.0.0.18000 주소로 접속하면 된다는 메시지가 보이면 성공적으로 과정을 진행한 것이다.지금까지 Django의 프로젝트를 새로 생성해 보았다. 하지만 웹페이지라는 것이 한 페이지만 존재하지는 않지 않은가 페이지가 될 카테고리 개념을 추가해야 하는데 이때 Django 는 이 행위를 APP 이라 칭한다. python manage.py startapp polls위는 polls 라는 이름을 가진 app 페이지를 만드는 다는 의미로 해석할 수 있다.이를 진행하면, mysite 프로젝트 밑으로 polls라는 폴더와 몇 가지 파일이 자동적으로 생성된 것을 확인할 수 있다.
2024-08-12 16:02:42
Public
-
아나콘다 환경 구성하기
아나콘다란 무엇인가python 환경을 보다 효율적으로 관리하기 위한 툴 정도라 이해하면 편하다.예를 들어 A, B 프로젝트가 있는데 둘 다 python 언어를 사용한 프로젝트이라고 생각해보자.A에 필요한 라이브러리, B에 필요한 라이브러리 즉 환경이 상이한 상황에서 A, B 프로젝트를 한 개의 환경에서 작업할 경우 라이브러리들끼리 충돌로 인해 정상적인 작동이 안될 수 있는 상황이 발생할 가능성이 있다. 그러므로 환경을 각 프로젝트마다 분리하여 작업하는 것이 편리하다.추가로 편리한 점은 아나콘다로 구성도니 환경은 다른 시스템PC으로 이동 시에도 환경을 그대로 복사할 수 있는 장점이 있다.아나콘다 동생격인 미니콘다라는 친구도 있다. 이 친구는 무엇이 됐든 모르겠지만 자주 사용하는 대부분을 다 준비한 아나콘다와 달리 용량을 경량화한 친구이다. 목적은 같다. 아나콘다 환경 구축하기아나콘다 다운로드 또는 미니콘다 다운로드 라고 Google 에 검색하면 쉽게 다운로드 받을 수 있다.이후 파일을 다운로드한 후 인스톨러를 실행 시키면, 이것저것 막 설치를 시작하기 위해 Next 버튼을 꽤나 여러번 누르게 되는데, Add Anaconda to the system PATH enviroment variable 이라는 선택지가 보이는 단계에서는 모든 체크박스를 수락하는 것이 몸에 이롭다.이유는 즉슨 번거로운 윈도우 환경변수 설정을 직접 해야하는 수고로움을 치뤄야하기 때문이다.또한 무엇보다 매 업그레이드가 이루워 질때마다 설치 과정에서의 선택지가 유동적으로 위치가 바뀌기 때문에 해당 설치법은 찾아보아도 최신 버전의 설치화면은 조금씩 다른 것을 확인할 수 있다.물론 설정 내용 자체는 동일하다.설치가 완료되면 윈도우 검색에서 cmd를 입력하여 콘솔창을 한번 띄워 보도록 하자. conda위와같이 뭔가 주륵 뜬다면 정상적으로 설치가 완료 되었다는 뜻이다.다음 단계로는 하나의 환경을 생성해 보겠다. conda create n test python3.10라고 입력을 하면 test 라는 이름을 가진 환경을 python 3.10 중 가장 최신버전을 사용하여 생성 하겠다라는 의미로 해석할 수 있으며 conda activate test위와 같이 생성 후 생성된 환경의 이름을 활성화하면, test 활성화한 환경 이름이 괄호 안에 보이게 된다. 이로써 환경 준비는 완료가 되었다.
2024-08-12 15:52:38
Public
-
서버 기본 구조
데이터베이스란어떠한 정보를 저장하고 조회, 통계 등을 내기 위해 필요한 수단이다. 데이터 베이스라 검색을 하면 수 많은 종류들이 나오는데 대표적으로 많이 사용하는 SQL, NO SQL 두 가지 종류 정도만 알고 있어도 충분하다. SQL, NO SQL 의 차이점은 다음과 같다. SQL 각 테이블마다카테고리 관계가 있다고 해서 관계형 데이터베이스라 칭한다. 테이블 추로 인한 행위는 큰 상관은 없지만 기존에 있던 테이블에 딱 한사람만을 위한 정보를 추가 해야하는 상황에서는 해당 정보를 필요로 하지 않는 다른 사람은 쓸모없는 정보를 담아야 하므로 관리적 측면에서 좋지 못하다. NOSQL 각 정보는 구분이 없이 독자적으로 존재한다고 해서 비관계형 데이터베이스라 칭한다. 각각의 데이터는 언제든지 유동적으로 기존 설계에 없었던 개념을 추가, 제거가 용이하다.본 프로젝트는 MySQLSQL이라 불리는 관계형 데이터베이스를 사용할 예정이다. SSH 개념 익히기SSH key 란 서버의 공인인증서 같은 개념이다. 본인을 증명하는 인증서와 같다. 이때 ssh 에서는 개인키, 공개키는 하나의 세트로 이루어 지며, 공개키는 말그대로 공개적으로 노출이 되는 키이다. 개인키 또한 말 그대로 개인만이 가지고 있는 고유한 키이다. GCP에 등록시엔 공개키를 등록한다. git이란 무엇인가앞서 진행할 프로젝트를 관리할 저장소이다. 말 그대로 저장소의 기능을 하고 있으므로 웹 드라이브라고 생각할 수 있다. 웹 드라이브의 경우 단순히 데이터를 저장하는 공간이지만, git 의 경우 업로드한 코드가 몇월 며칠에 수정됐는지 어떤 파일은 언제 추가됐고, 언제 삭제됐는지 해당 프로젝트의 모든 기록이 담겨 있다. Server란 무엇인가자 이제부터 커피숍을 운영한다고 가정해보자. 커피숍을 운영하기 위해선 가게 자리를 얻어야 하는데 이때 자리가 좋은 한 상가 건물을 찾았다. 바로 이 상가 건물이 Server 인 셈이다. IP란 무엇인가그 상가에 가서 1층에 있는 한 공간을 세를 얻었다. 여기서 상가 건물을 외부 IP 라 한다. 1층의 어느 한 공간을 내부 IP 라 한다. 정리해보자면 주소지가 외부 IP. 동, 호수에 해당하는 정보는 내부 IP 인 셈이다. 도메인이란 무엇인가이제 상가에 한 공간을 세를 주니 장사할 준비가 되었다. 하지만 가게 홍보를 하자니 주소지가 대전 유성구 ...에서 커피를 팝니다. 라고 할 수도 없는 노릇이다. 그래서 편리하게 부를 수 있게 상호명을 정해서 쉬운 이름으로 홍보를 하자. 바로 이것이 도메인인 셈이다.
2024-08-11 20:41:23
Public