본문 바로가기

레퍼런스

(41)
장고(Django) 투표 앱 만들기. 이제 "프로젝트" 환경이 셋업됐습니다. 이제 제 작업을 할 준비가 된 것입니다. 장고에 쓰이는 각 어플리케이션은 특정 협약을 따르는 python 패키지로 이루어져 있습니다. 장고에는 앱의 기본 디렉토리 구조를 자동으로 생성하는 유틸리티가 제공되므로 디렉토리를 만드는 대신 코드 작성에 집중할 수 있습니다. 프로젝트 vs 앱 프로젝트와 앱의 차이는 뭘까요? 앱은 특정 기능을 하는 웹 어플리케이션입니다. 프로젝트는 설정과 앱의 모음입니다. 프로젝트는 여러 앱을 포함하고 있습니다. 앱도 여러 프로젝트에 있을 수 있습니다. $ python3 manage.py startapp polls 장고 투표 앱을 만들었습니다. 아래와 같은 디렉토리가 생기게 됩니다. 이 디렉토리는 투표 어플리케이션을 저장합니다.
장고(Django) 서버 시작. $ python3 manage.py runserver 파이썬3를 사용해서 개발서버를 시작합니다. 이 서버는 개발 중에만 사용해야합니다. 이제 웹 서버가 시작됐습니다. http://127.0.0.1:8000/을 시작해보세요. "Congratuations! " 웹페이지가 보일겁니다. $ python3 manage.py runserver 8080 위 문장을 활용해서 서버가 8080 포트에서 동작하도록 할 수 있습니다. $ python3 manage.py runserver 0:8080 위 문장을 활용해서 서버가 IP 0의 8080포트에서 동작하게 됩니다. 아래의 스크린샷처럼 동작합니다. 하지만 설정에서 호스트를 아직 허락하게 만들지 않아서 현재까지는 DisallowedHost 에러가 발생합니다.
장고(Django) 최초 설정 장고의 버전을 확인한 다음, 장고 프로젝트를 설정합니다. 최초로 생성된 파일들입니다. chem 폴더 안에 chem 폴더와 manage.py 파일이 있습니다. 장고의 공식 도큐먼트에 따르면, 가장 바깥쪽의 루트 디렉토리 chem/은 컨테이너입니다. 이름도 전혀 중요하지 않습니다. manage.py : command-line 유틸리티이며 장고 프로젝트와 다양한 방법으로 상호작용합니다. 안쪽의 chem/ 디렉토리는 실제 파이썬 패키지입니다. 이 안에 있는 패키지를 import하기 위해서는 chem.urls와 같이 사용합니다. chem/__init__.py : 여기가 파이썬 패키지라는 것을 알려주는 빈 파일입니다. chem/settings.py : 장고 프로젝트의 설정입니다. chem/urls.py : 장고 프..
Git 먼저 설정하고 시작합니다. 먼저 git 설정을 해주어야 한다. 다음과 같이 깃을 설정해 주었다. $ git init 위 코드를 통해서 Chemsolution 폴더를 git 저장소로 초기화해줍니다. $ git status 현재 상태를 파악할 수 있는 git status를 입력해서 git 저장소에 어떤 변화가 있는지 확인한다. 최초의 커밋을 실행했다.
pythonanywhere에서 Error: That port is already in use. 에러 떴을 때 다음과 같은 오류가 발생했습니다. $ ps aux | grep - manage 위 구문을 추천하신 분들이 많았다. 하지만 pythonanywhere에서 ps aux 구문이 전혀 듣지 않았습니다. 위 화면의 리로드를 누르면 해결이 됩니다. pythonanywhere 페이지에서 Web 탭으로 넘어가면 리로드를 할 수 있습니다.
고도엔진 튜토리얼 #26 3D 메시 임포트하기 (Importing 3D meshes) 서론 고도는 씬 천제를 임포팅 가능한 강력하고 유연한 3D 씬 임포터를 지원합니다. 많은 아티스트와 개발자들에게 충분하고도 남은 것입니다. 하지만, 많은 사람이 이 워크플로우를 싫어하며 단일 3D 메시를 임포트해 씬 안의 3D 고도 에디터 안에서 빌드하는 것을 더욱 선호합니다. (스켈레톤 애니메이션과 같은 진화된 기능이 있으며 3D 씬 임포터에는 없는 기능들이라는 것을 참고하세요). 3D 메시 임포트 워크플로우는 간단하며 OBJ 파일 형식을 써서 작동합니다. 임포트된 메시들은 결과적으로 MeshInstance에 사용자가 입력할 수 있는 .msh 이진 파일로, 편집된 씬의 어딘가에 위치할 수 있습니다. 임포팅 3D 임포팅 메쉬 메뉴를 통한 임포팅은 다음과 같습니다 : 메시 임포트 창을 엽니다 : 이 대화상..
고도엔진 튜토리얼 #25 3D 성능과 제한(3D performance and limitations) 서론 고도는 균형잡힌 성능 철학을 따릅니다. 성능의 세계에서는 유용성과 유연성을 위한 거래 속도로 구성되는 trade-off입니다. 몇몇 실용적인 예가 있습니다 : 많은 양의 오브젝트를 효과적으로 렌더링하는 것은 쉽지만 큰 씬을 렌더링 하는 경우 비효율적일 수 있습니다. 이를 해결하기 위해, 렌더링에 시각적 계산을 추가해 렌더링 효율성이 낮아지지만 동시에 렌더링되는 개체가 줄어들어 전반적인 효율성이 향상됩니다.렌더러가 필요한 모든 오브젝트를 위한 모든 자료(material)의 속성을 구성하는 것도 느립니다. 이를 해결하기 위해, 오브젝트는 자료의 값이 적은 순으로 정렬되어 있지만 이 정렬을 하느데도 값이 듭니다.3D 물리학에도 비슷한 상황이 생깁니다. 큰 값의 물리 물체를 다루는 데의 최고의 알고리즘은 ..
고도엔진 튜토리얼 #24 3D로의 초입(Introduction to 3D) 3D 게임을 만드는 것은 어려운 일입니다. 추가적인 Z 축은 간단한 2D 게임의 보통의 기술이 그렇게 도움이 되지 안습니다. 이 이동을 돕기 위해, 2D와 3D의 API가 매우 비슷하다는 것을 언급하는 것이 좋겠군요. 대부분의 노드는 2D와 3D 버전에서 같이 제공됩니다. 사실, 2D에서 해당하는 것과 똑같이 작동하는 3D 플랫폼 작성자 튜토리얼을 확인하거나 3D 동적 캐릭터 튜토리얼을 확인하는 것이 가치 있는 일일 것입니다. 3D에서, 수학적인 부분이 대부분 2D에 비해 복잡해졌습니다. 그러니 위키의 벡터 수학(수학자나 공학자가 아닌, 게임 개발자를 위해 창조된)도 확인해보세요. 3D 게임을 효율적으로 개발하는데 길을 닦는 것을 도와줄겁니다. 공간 노드(Spatial node) Node2D는 2D의 기..