코테를 준비하면서 자주 사용하는 알고리즘 & 함수를 정리합니다. Queue 선입 선출의 구조로 queue 라이브러리를 사용합니다. import queue data = queue.Queue() print(type(data)) queue에 데이터 넣기 data.put(2) data.put(3) data.put(4) 데이터 출력 print(data.get()) print(data.get()) print(data.get()) Stack 후입 선출 구조로 별도 라이브러리 없이 파이썬의 리스트를 사용합니다. stack = [] 데이터 넣기 stack.append(2) stack.append(3) stack.append(4) 데이터 출력 print(stack.pop()) print(stack.pop()) print(..
Swagger 프로젝트 내에 여러 API를 한번에 문서화하여 볼 수 있게하는 패키지이다. API 관리에 매우 용이하며, 앱에 적용하기 전에 테스팅을 할 수 있다. 장고에서 Swagger를 활용하여 Rest API Document를 생성하는 방법을 배우고 프로젝트에 적용시켰다. 라이브러리 장고에서 swagger를 사용하기 위해서 drf-yasg, djangorestframework를 설치해야 한다. drf-yasg는 장고로 정의 된 API를 문서화할 수 있는 패키지로 DRF - Yet Anoter Swagger Generator의 약자이다. 라이브러리를 설치해서 swagger 사용 환경을 세팅한다. pip install drf-yasg pip install djangorestframework 가상 환경에서..
DRF를 사용하기 위해서는 DRF의 동작 방식을 알아야 했다. DRF에서는 model - serializer - view - url 순으로 구현해야 한다. 개인 프로젝트를 진행하면서 작성한 코드로 해당 방식에 대한 동작을 살펴보겠다. user App 내에서 구현하였다. [model 구현] 모델은 데이터이다. class searchLog(models.Model): username = models.ForeignKey(Profile,on_delete=models.CASCADE,related_name='searchLogPost',to_field='username_id') log = models.CharField(max_length=50,db_column='log') model에서 serchLog라는 class를..
Django , DRF를 사용하다 보면 현재 시간을 데이터로 저장해야 할 때가 있다. DateTimeField 를 사용하면 되는데, auto_now 속성과 auto_now_add 속성을 구분해서 사용해야 한다. 인스타그램 클론코딩 개발중에 사용자가 올린 스토리의 시간을 기록할 필요가 있었다. #스토리 class Story(models.Model): storyId = models.BigAutoField(primary_key=True, help_text="Story ID") username = models.ForeignKey(Profile,on_delete=models.CASCADE,related_name='storyPost',db_column='username',to_field='username_id') ..
[문제 상황] 인스타그램, 페이스북 처럼 자주 사용하는 sns에서 프로필 이미지나 이름을 변경하면 내가 쓴 댓글이나 글에서의 나의 프로필 이미지 혹은 이름도 변경 되어야 한다. 내가 직면한 문제는 이미지 변경 시 다른 객체의 이름은 변경되었으나 프로필 이미지가 변경되지 않는 것이였다. 이름은 model 끼리 외래키(Foreign Key)로 연결 되어있어서 update 시 변경 되었지만 프로필 이미지인 image Field에는 아무런 조치가 되어있지 않았기에 방법이 필요했다. [해결 방법] 고민한 결과 번거롭지만 가장 좋은 방법은 user가 작성하는 것들인 like model (좋아요) , comment model (댓글) 등에 userImage Filed를 만들고 user model 에서 이미지 변경 시..