📑
LTS(Long Term Support)
어떤 패키지를 선택하고 설치할 때는 반드시 호환성을 고려해야한다.
LTS 버전은 장기 지원이 보장되는 것으로, 보안 업데이트, 버그 수정, 백포트된 기능 업데이트 등이 이루어진다.
지원되는 버전 정보가 해당 소프트웨어나 기술 제품의 사이트에 나와있으므로 그곳에서 확인하면 된다.
의존성
장고 하나만 설치했을 뿐인데 asgiref, sqlparse 그리고 typing extensions까지, 새로운 것들이 같이 설치된 것을 발견할 수 있다. 이렇게 내가 직접 깔지도 않았는데 자동으로 설치된 것들은 의존성을 위해 함께 설치된 것들이다.
*의존성(dependency): 코드에서 두 모듈 간의 연결을 말한다. 객체지향언어에서는 두 클래스 간의 관계를 의미하기도 하며, 일반적으로 둘 중 하나가 다른 하나를 어떤 용도를 위해 사용된다.
- 이 의존성을 위해 함께 설치된 것들은 장고와 버전이 맞아야하는데 (장고와 동일한 버전이어야 한다는 의미가 아님. 해당 버전에 맞는 버전이어야 한다.) 해당 버전 정보를 저장하는 것이 pip freeze > requirements.txt 명령이다. requirements.txt.라는 파일에 현재 설치된 목록을 명시하는 것으로, 설치 후에 항상 해주도록 한다. 만들어진 requirements.txt 파일은 pip install -r requirements.txt 명령을 통해 읽어오고 해당 버전에 맞게 모두 설치된다.
Django Project
- 장고는 프로젝트 단위로 움직인다.
- '프로젝트를 시작한다' == '하나의 프로그램을 만들기 시작한다'
- 프로젝트를 시작하기 위해서 필요한 단계
가상환경 생성 python -m venv venv
→ 가상환경 활성화 source venv/Scripts/activate
→ Django 설치 pip install django==4.2
→ 의존성 파일 생성 pip freeze > requirements.txt
프로젝트 생성
django-admin startproject 프로젝트 이름 생성 디렉토리 ⇒ 생성 디렉토리를 생략하면 현재 위치에 프로젝트 이름의 폴더가 만들어지면서 생성됨.
또는
django-admin startproject 프로젝트 이름 . ⇒ [ . ]은 현재 폴더를 의미하며 현재 폴더를 프로젝트 폴더로 사용해서 생성됨.
폴더 안쪽으로 이동
cd 프로젝트가 생성된 디렉토리명
Django 개발 서버 실행
python manage.py runserver
장고 프로젝트 생성 시 자동으로 함께 생성되는 파일들
• settings.py : 프로젝트의 설정을 관리하는 곳
• urls.py : 어떤 요청을 처리할지 결정하는 곳
• __init__.py : 하나의 폴더를 하나의 파이썬 패키지로 인식하도록 하는 파일
→ 3버전 이상으로 가면 없어도 됨. 3버전 이하에서도 동작하도록 호환성을 위해 지키는 규칙.
• wsgi.py : 웹 서버 관련 설정 파일
• manage.py : Django 프로젝트 유틸리티 (조종기)
ALGORITHM CODE KATA
Ⅰ. 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는
(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다. (school.programmers.co.kr)
def solution(n):
answer = 0
fac = [1] * (n + 1)
for i in range(2, len(fac)):
fac[i] = fac[i - 1] * i
twoMaxCount = n // 2
for r in range(twoMaxCount + 1):
answer += fac[n] // (fac[n - r] * fac[r])
n -= 1
return answer % 1234567
⇨ 이항계수(nCr) 이용.