전체 글

nembizzang의 공부 블로그입니다. 개발 블로그는 https://velog.io/@nembizzang
파이썬 웹개발

[장고 설계철학으로 시작하는 파이썬 장고 입문] 5. (실습) django template 시스템을 활용한 네이버 이메일 발송 시스템

✍ 실습 목표 - 템플릿 상속 문법 적용 - django-bootstrap5 라이브러리 적용 - 장고 템플릿 엔진을 통해 이메일 메세지 문자열을 조합하여, 메일 발송하기 1. 이메일 계정정보 설정하기 (1) 네이버 이메일 환경설정 변경 (2) 어플리케이션 접속을 위한 2단계 인증 관리 설정 변경 (3) 해당 application을 위한 환경변수 생성 일반적으로 계정정보들은 소스코드에 하드코딩 하지 않음. 환경변수를 쉽게 설정 및 변경하기 위해 프로젝트 최상위 폴더에 .env 파일을 생성하여 사용 .env 파일에서는 띄어쓰기를 하지 않아야하고, 절대 버전관리에 넣어서는 안된다.(.gitignore에 추가) 따라서 팀원 간 공유가 안되기에 개발머신마다 설정해주어야한다. 생성한 env를 적용하기 위해 djan..

파이썬 문제풀이

[프로그래머스 파이썬] 단어 변환

📌문제 출처 프로그래머스 LV 3 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❓ 문제 📗 풀이 코드 ''' words를 순환하며 각 단어끼리 알파벳 하나 차이만 나는 것들을 words_dict에 담아둔다. begin부터 시작해서 words_dict의 word를 하나씩 꺼내서 bfs 진행 ''' from collections import defaultdict,deque def solution(begin, target, words): def ..

파이썬 문제풀이

[프로그래머스 파이썬] 호텔 대실

📌문제 출처 프로그래머스 LV 2 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❓ 문제 📗 풀이 코드 ''' book_time을 ':'를 없애고 정수형태로 변경하고, 종료시간에 10분을 더한 후 heap 정렬한다. end_times이라는 heap 구조를 생성 book_time에서 heappop으로 시작 시간이 가장 빠른 손님을 뽑는다. 최초 손님의 경우 : room_cnt+1, eet(earlist_end_time)에 퇴장 시간 넣어주고 ..

파이썬 문제풀이

[프로그래머스 파이썬] 최고의 집합

📌문제 출처 프로그래머스 LV 3 https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❓ 문제 📗 풀이 코드 ''' 1) s를 n으로 나눈 몫(t), 나머지(r)을 구하여 t가 s-r개, t+1이 r개 있는 list를 return 2) 몫이 0이면 return [-1] ''' def solution(n, s): t,r = divmod(s,n) return [t]*(n-r)+[t+1]*r if t else [-1]

파이썬 문제풀이

[프로그래머스 파이썬] 연속된 부분 수열의 합

📌문제 출처 프로그래머스 LV 2 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ❓ 문제 📗 풀이 코드 ''' 1) k보다 크면 작거나 같아질 때까지 첫 인덱스를 키워가며 누적합에 포함된 인덱스를 앞에서부터 줄인다. 2) k보다 작으면 작거나 같아질 때까지 끝 인덱스를 키워가며 누적합에 포함된 인덱스를 뒤로 늘린다. 3) 위 과정에서 해당 인덱스까지의 누적합이 k인 경우를 찾으면, 기존 ans와 비교해서 전체 인덱스의 길이가 짧은 것을 정답..

파이썬 웹개발

[장고 설계철학으로 시작하는 파이썬 장고 입문] 4. (실습) django template 상속, bootstrap5 적용

✍ 실습 목표 - 템플릿 상속 문법 적용 - django-bootstrap5 라이브러리 적용 - 장고 템플릿 엔진을 통해 이메일 메세지 문자열을 조합하여, 메일 발송하기 1. template 상속 (1) app/templates/app 경로에 base.html 생성 - 자식 template에서 상속받아서 내용을 넣을 공간을 만들어주는 것이 필수 (2) 자식 template 수정 - 상속받을 부모 template과 동일한 내용을 반복하지 말자. 상속 코드를 쳐주고, 다른 내용은 제거하고, 부모 template의 공간에 들어갈 코드만 넣어주자. 2. django-bootstrap5 적용 (1) django-bootstrap5 설치 pip install django-bootstrap5 # 터미널에서 설치 * ..

파이썬 웹개발

[장고 설계철학으로 시작하는 파이썬 장고 입문] 3. (실습) django models.py 활용 DB 연결

1. models.py 수정 2. manage.py migrate 이용 DB 생성 및 연결 CLI에서 manage.py를 작동시켜 migrations 폴더를 만들고 migrate로 DB와 동기화를 시킨다. 그리고 sqlmigrate app 0001을 확인하면 어떤 쿼리가 작동하였는지를 확인할 수 있다. migrations 폴더에는 0001_initial.py라는 파일이 생성되어있고, django.db로부터 migrations, models 함수를 활용해 테이블을 생성하는 쿼리가 작동됨을 알 수 있다. 이로써 우측 DB 목록에서 id, title, content라는 컬럼을 가진 app_post라는 테이블이 생성된 것을 확인할 수 있다. 3. admin 계정에 post 등록 이전에 만든 superuser 계..

파이썬 웹개발

[장고 설계철학으로 시작하는 파이썬 장고 입문] 2. django 핵심 설계철학

1. 장고 프롤로그 1) 마감 시간이 있는 완벽주의자를 위한 웹 프레임워크 2) 바퀴를 다시 발명하지 마라 3) 시간이 가장 큰 비용이니, 장고를 누리고 시간을 아껴라 4) 고유한 개념 및 데이터는 한 곳에. 5) 중복(redundancy)은 X, 정규화(Normalization)은 O 2. 장고의 설계 철학 1) 일반 (1) 신속한 개발 : 21세기 웹 프레임워크의 핵심은 지루한 부분을 빠르게 만드는 것 (2) 느슨한 결합 : 장고 스택의 근본적인 목표는 "느슨한 결합, 탄탄한 응집" (3) 적은 코드 : 반복을 줄이고, 가능한 최소한의 코드를 사용하며, 다른 언어/프레임워크의 틀에 박힌 코드를 배제 (4) 반복하지 않기 : 중복은 줄이고, 정규화를 지향 / 파이썬의 특성을 활용하여 반복을 축소 / 반..

냄비짱
Until the Boiling Point