본문 바로가기

전체 글

(82)
장고와 MVT(23.04.25) 장고의 캐치프레이즈 마감을 맞추고 싶은 완벽주의자를 위하여 장고는 2005년 부터 시작된 파이썬 오픈소스 웹 프레임워크/풀 스택 프레임 워크로, 처음에는 뉴스 피드를 관리하기 위한 컨텐츠 관리 시스템으로부터 발전하였다. 장고의 장점 fully loaded. 웹개발에 필요한 다양한 도구들을 대부분 내장하고 있다. - 인증, 컨텐츠 관리, 사이트 맵, RSS 피드, 메일 보내기, form 등등 Admin(backoffice) - 재고변경, 계정복구/탈퇴, 통계 등을 위한 관리자 사이트가 이미 만들어져 있고 관련 API도 만들기 좋다. 많은 기능을 보유한 풀스택 프레임워크 강력한 ORM, 많은 사용자/커뮤니티 빠른 개발과 손쉬운 보안 MVT 패턴 JS의 MVC패턴과 유사하지만 이름이 다르다. Models: 데..
23.04.25 TIL - defaultdict, lambda, callable 요약: defaultdict, callable, __call__() 페어프로그래밍: 주차요금계산을 풀면서 다른사람의 정답코드를 보고 궁금했던 것들을 찾아 정리했다. 1. 주차요금계산 문제상황: 시간순으로 입/출차 기록과 요금표가 입력으로 주어질 때, 각 차량의 주차요금을 구하여 차량번호 기준 오름차순으로 정렬한 요금의 리스트를 반환해야한다. 시도-공통: 시간 처리, 반복문 사용, 남은 차 처리 def str_to_min(t): h, m = t.split(":") return int(h) * 60 + int(m) 먼저 split을 이용해 입/출차 시간을 분단위 정수로 바꾸어주는 함수를 정의한다. def solution(fees, records): parking = {} minuites = {} for re..
프로세스,스레드,멀티프로세싱, 멀티 스레딩 프로세스 프로세스는 기본적으로 메모리에 적재된다.(페이징을 통해 보조저장장치에 일부 저장되어있는 경우도 있다.) 사용자가 볼수 있는 공간에서 실행되느냐 아니냐에 따라 Foreground Process, Background process로 나뉜다. 백그라운드 프로세스중 대다수는 사용자와 직접 상호작용을하지 않고 정해진 일만 수행한다.(데몬/서비스) 포그라운드 프로세스가 백그라운드 프로세스로 전환될 때는 보통 사용자와 직접 상호작용을 할 수 있는 상태이다. 커널 영역에서의 관리 프로세스 제어블록(PCB) 프로세스 실행에는 CPU의 사용이 필요하지만 CPU는 한정된 리소스이다. 따라서 빠르게 번갈아 가며 한정된 시간동안만 사용해야하기 때문에 각 프로세스마다 고유한, 프로세스의 관련 정보를 저장하는 자료구조 P..
각 타입별 중요 메소드 23.04.24 1. 문자열 #### string #### # count : 서브 스트링의 등장 횟수를 센다. changsoo = "Hello Changsoo!" count_ = changsoo.count('o') print(count_) # 3 # find : 서브 스트링의 첫 시작지점을 반환한다. 없으면 -1 반환 find_ = changsoo.find('oo') print(find_) # 12 find_ = changsoo.find('o0') print(find_) # -1 # index : 서브 스트링의 첫 시작지점을 반환한다. 없으면 에러 find_ = changsoo.index('oo') print(find_) # 12 try: find..
23.04.24 TIL - DRF: serialize, renderer, response 오늘 한 것 강의를 듣다가 궁금한 것이 생겨서 하루 꼬리에 꼬리를 물고 찾아다녔다. 아래 내용이 오늘자 탐색의 결과이다. 21:00 현재 선발대 강의 내용 정리중 문제: test.py에서 response 까보기 문제상황은 다음과 같다. test.py에서 회원가입 API를 검증하려고 한다. 회원가입 API는 유효한 입력일 때 DB에 유저 데이터를 생성하고 응답에 생성된 유저데이터를 함게 실어 보낸다. 나는 test.py에서 입력된 user의 email과 응답에 실려온 유저데이터의 email을 비교해ㅗ고자 한다. 시도 1. response를 parse 해보기 우리가 까보려고 하는 email값은 response에 존재하며 이는 serializer에 의해 직렬화된 데이터일 것이다. 왜냐하면 우리가 views.p..
23.04.17~21 WIL 한주간 한 것들 DRF 4주차 까지 수강 완료 하루 한번 페어프로그래밍 한주간 배운 것중 인상 깊은 것 1. Django 팀 프로젝트 피드백 中 백엔드에서의 validation 서버는 클라이언트가 정상적으로 프론트 엔드를 통한 접근만 한다고 가정해서는 안되다. 가장 단순하게는 POSTMAN을 이용한 접근도 프론트엔드를 거치지 않고 접근이 가능하다. 따라서 부적절한 ID나 이메일 주소등을 걸러내기위한 검증 작업은 프론트엔드에서 뿐만 아니라 백 엔드에서도 진행하는 것이 좋다. DRF에서는 Serializer를 통해 간단하게 검증을 진행할 수 있으므로 습관화 하자. serialized = MySerializer(data=request.data) if serialized.is_valid(): serialized..
23.04.21 TIL 21일에 한 것 페어프로그래밍 장고 강의 4주차 수강 세션로그인 vs 토큰 로그인 수강(링크) 새로 배운 것: 오브젝트의 필드참조와 모델 클래스의 필드 참조 DRF를 이용해 좋아요 기능을 구현하는 내용을 따라가던 중 위와같은 오류가 발생했다. 문제의 발생 원인은 위와같이 object의 속성값을 참조하는것이 아니라, 오타로 인해 모델 클래스의 필드 속성을 참조하고 있었던 것이었다. 단순한 오타로 인한 오류이지만 궁금했다. 모델 클래스의 필드를 참조하면 뭐가 튀어나올까? : Descriptor 위와같이 참조하면, descriptor 객체가 나온다. 역참조가 아닌 일반적인 필드의 경우 해당 객체의 fields 속성에 접근해서 null, blank와 같은 속성에 접근할 수 있다. descriptor 클래스는 객..
세션인증과 토큰인증 백엔드 개발자의 필수덕목 인증(가입,로그인,...) DB Request에 대한 Response처리: API개발. 예외처리 배포 세션인증이 무엇인가? django_session에 유저 정보와 세션 정보를 저장. 사용자 인증정보 서버에 전달. 인증처리 후 세션 생성 사용자는 쿠키로 세션 id를 받아온다. 이후 요청에 항상 세션 id 이용 전달받은 세선 id+저장중인 세션정보 이용해 인증 만료시 1부터 다시. 세션 인증의 문제 - 서버에서 정보를 관리한다. 매요청마다 인증을 위해 DB에 쿼리해야하고 DB가 두개 이상, 서버가 두개 이상인 경우 사용이 힘들다. 토큰 인증 DB에 저장하지 않아 자원이 절약된다. SECRET_KEY로 암호화된 토큰을 전달하면, 사용자는 토큰을 이용해 인증한다. ex - JWT(JS..