TIL (28) 썸네일형 리스트형 23.05.16 TIL 실수로 이미 배포하고 있던 EC2 인스턴스를 날려버려서, 처음부터 다시 배포를 하고, 그 김에 겸사겸사 배포중 마주친 오류들을 정리하였다. 1. EC2 배포 중 - Gunicorn 작동 안함 Runserver를 직접 해보면 이상이 없는데, Gunicorn을 작동시키려고 하면 오류가 발생 EnvironmentFile=/home/ubuntu/DRF_Community_WebSite_Project/.env 해결 gunicorn이 서버 어플리캐이션을 동작시키기 위해 필요한 SECRET_KEY가 보관되어있는 환경변수를 인지하지 못한 것으로 보인다. 따라서 이를 해결하기 위해 gunicorn의 서비스 실행 파일의 내용을 다음과 같이 작성하면 된다. [Unit] Description=gunicorn daemon Aft.. 23.05.15 TIL 팀 프로젝트의 발표 준비 및 문서 최신화, 피드백 받기,KPT회고작성을 하였다. 1. 문서 최신화 ERD: User와 Article간에 좋아요, 북마크 관계가 추가되었고, 유저간의 팔로우 관계가 many to many로 추가되었다. 작성자와 작성된 글을 필드로 가지는 Comment 테이블도 추가되었다. API: API 명세서 [API 명세서 A new tool for teams & individuals that blends everyday work apps into one. www.notion.so](https://www.notion.so/f40bf5bef3a94a21a9df6588f21e39c2) 북마크 기능등 추가된 기능들에 대한 API문서가 최신화되어 결과보고서에 반영되었다. 2. 기능 구현 결과 .. 23.05.12~14 TIL 여러 추가 기능 구현과 JS를 이용한 토큰 리프레시 구현을 하였다. 1. Pagination과 generics 페이지네이션을 구현하기 위해서는 두가지 방법을 사용할 수 있다. Django에서 지원하는 paginator 사용 from django.core.paginator import Paginator ... # get view all_post = Posting.objects.all() all_post = all_post.order_by('-created_at') page = int(request.GET.get('page', '1')) paginator = Paginator(all_post, 5) post_list = paginator.get_page(page) # 이후 시리얼라이즈 ... paginato.. 23.05.11 TIL 오늘은... 팀 프로젝트를 진행하였다. 팀프로젝트에서 회원탈퇴와 내 회원정보 조회, 내 회원 정보 수정(비밀번호 수정)기능의그 테스트 코드를 픽스 하고 였다. 프로필 페이지 조회 및 수정 기능과, 팔로우/팔로워 기능, 팔로우한 사람의 글 모아보기 기능을 구현하였다. 1. 테스트코드 class UserBaseTestCase(APITestCase): """ 회원가입과 로그인이 필요한 기능들을 위한 부모 클래스입니다. """ @classmethod def setUpTestData(cls) -> None: cls.user = User.objects.create_user( username="zxcvbnasdf_", email="abcd@naver.com", password="asdf1234!!", ) cls.us.. 23.05.10 TIL 오늘은... 팀 프로젝트를 진행하였다. 팀프로젝트에서 회원탈퇴와 내 회원정보 조회, 내 회원 정보 수정(비밀번호 수정)기능을 구현하고 그 테스트 코드를 작성하였다. 1. 탈퇴 구현 def put(self, request): user = request.user user = get_object_or_404(User, id=user.id) serializer = UserSignOutSerializer(user, request.data) if serializer.is_valid(): user.is_active = False user.save() return Response({"message": "signout_success"}, status=status.HTTP_200_OK) return Response(ser.. 23.05.09 TIL 오늘은... 팀 프로젝트를 진행하였다. 1. DRF를 통해 token인증을 이용한 회원 가입 및 로그인 기능을 구현하였다. 2. test 코드를 작성했다. 1. python 버전 맞추기 각 팀월들의 로컬환경에 설치된 파이썬 버전이 모두 달랐다. 따라서 3.8.6 버전에 맞추어 가상환경을 설정하고 싶었는데, 어떻게 해야하는지 방법을 찾기 어려웠다. 시도 1 . -3.8.6 옵션 검색해 본 결과 3.8.6 버전 설치 후 아래와 같은 명령어를 통해 해결할 수 있다는 정보를 찾을 수 있었다. python3 -3.8 -m venv venv '-'를 1개도 써보고 2개도 써봤는데 둘 다 안된다. 시도 2. -py 명령어 검색해보니 아래와 같은 명렁어를 통해 해결할 수 있다는 정보도 있었다. py -3.8 -m ve.. 23.05.02 TIL 오늘은... AWS 강의를 3주차까지 수강하고 정리 하였다. 정적 메서드와 클래스 메서드에 대해 배웠다. 0. 인스턴스(instance) 메서드 클래스에 그냥 메서드를 선언하면 해당 메서드는 인스턴스 메서드로 취급이 된다. 객체에서 이 인스턴스 메서드를 호출하면 반드시 첫번째 매개 변수로 인스턴스가 넘어와야한다(이것이 바로 self가 필요한 이유이다). 만약 클래스로부터 호출할 경우 다른 객체를 첫번째 인자로 넣어줘야한다. 인스턴수 메서드는 이 self를 통해 인스턴스 속성(attribute)에 접근하거나 다른 인스턴스 메서드를 호출할 수 있다. 또한 self를 통해 클래스 속성에 접근하거나 클래스 메서드를 호출할 수 있다. class AriticleCreateTest(APITestCase): def s.. 23.05.01 TIL 오늘은... 1. 개인과제 해설 강의 2. 페어프로그래밍(링크) 를 하고 밀린 강의 내용등을 정리하였다. 1. 개인과제 해설 강의 정리 1-1. 글 상세보기/리스트보기 같이 처리하기 def get(self, request, todo_id=None) default parameter를 이용하면, 해당 인자를 넘겨주지 않는 경우에도 에러가 발생하지 않고 처리가 가능하다. 이후 if문을 이용해 None이면 전체 글의 리스트를 조회하고 todo_id가 자연수이면 해당 글을 상세보기하는 식으로 구현할 수 있다. 1-2. View 작성 팁: 주석과 return response로 시작하기 class UserView(APIView): def post(self, request): ''' 회원 가입(email, passwo.. 이전 1 2 3 4 다음