본문 바로가기

전체 글

TIL 2022.08.08 DRF Q method(검색 기능 구현), query debugger Q method 여러가지의 조건에 해당하는 값을 조회하기 위한 method 검색기능을 이용할 때 사용할 떄 유용하다. 우리 프로젝트에서는 태그를 완성한 다음 검색을 진행하기 때문에 많은 기능은 이용하지 않고 단순히 or 구문만 이용해서 검색기능을 만들었다. from django.db.models import Q # project/ class ProjectAPIView(APIView, PaginationHandlerMixin): ... # 모든 게시물 출력 def get(self, request): filter = request.GET.get("filter", None) skills = request.GET.getlist("skills", None) print(skills) # 검색 if skills !=.. 더보기
WIL 2022.08.05 SIDE PRO - KPT 회고 1. 프로젝트 기간, 팀 구조 주제 : 사이드 프로젝트 공유 플랫폼 (with. 커피챗) 기간 : 2022.07.07 (목) ~ 2022.08.04 (목) 팀 구성 : 김선민 (Github), 김민기 (Github), 박재현 (Github), 황신혜 (Github) 시연 영상 : https://www.youtube.com/watch?v=Imbu132BxTA 2. 프로젝트명 개발자를 위한 사이드 프로젝트 공유 플랫폼 서비스 (with. 커피챗을 곁들인) 3. 프로젝트 Github ( + 설명) https://github.com/SeonminKim1/SidePro-BE GitHub - SeonminKim1/SidePro-BE: 사이드 프로젝트 공유 플랫폼 with 커피챗 - BE 사이드 프로젝트 공유 플랫폼.. 더보기
TIL 2022.07.22 알고리즘 강의 정리 시간복잡도 입력값과 문제를 해결하는 데 걸리는 시간과의 상관관계를 말합니다! 입력값이 2배로 늘어났을 때 문제를 해결하는 데 걸리는 시간은 몇 배로 늘어나는지를 보는 것이죠. 우리는 시간이 적게 걸리는 알고리즘을 좋아하니 입력값이 늘어나도 걸리는 시간이 덜 늘어나는 알고리즘이 좋은 알고리즘이겠죠? 공간복잡도 입력값과 문제를 해결하는 데 걸리는 공간과의 상관관계를 말합니다! 입력값이 2배로 늘어났을 때 문제를 해결하는 데 걸리는 공간은 몇 배로 늘어나는지를 보는 것이죠. 우리는 공간이 적게 걸리는 알고리즘을 좋아하니 입력값이 늘어나도 걸리는 공간이 덜 늘어나는 알고리즘이 좋은 알고리즘이겠죠? 점근표기법 알고리즘의 성능을 수학적으로 표기하는 방법입니다. 알고리즘의 “효율성”을 평가하는 방법입니다. 점근 표기.. 더보기
TIL 2022.07.21 Django 북마크(좋아요)기능 모델링 ManyToMany # article/models.py class Project(models.Model): ... bookmark = models.ManyToManyField(User, related_name="bookmarks", blank=True) ... API 작성 # project//bookmark/ class BookmarkAPIView(APIView): # 북마크 클릭 시 def post(self, request, project_id): project = Project.objects.get(id=project_id) bookmark = project.bookmark.all() if request.user in bookmark: project.bookmark.remove(request... 더보기
TIL 2022.07.18 Toast UI editor Javascript 구현 게시글 작성 시 마크다운 형태로 작성할 수 있도록 toast ui 를 순수 javascript만을 이용해서 구현 우선 첫번째로 CSS import 전체적인 body 내용 프론트엔드와 백엔드를 구분해서 개발하였기 때문에 fetch API에서 호출할때 지정한 url 의 back_end_url은 _base.js에 저장되어있어서 별도로 정의해주어야함 fetch api 이용하여 백엔드 호출 시 s3에 파일 업로드되며 s3에 업로드된 url 주소가 json형태로 반환되도록하여 callback함수에 해당 url을 통해서 이미지 출력될 수 있도록 구현 게시 글 쓰기 html보기 markdown보기 더보기
TIL 2022.07.18 AWS S3파일 업로드, IAM 생성 import boto3 import my_settings # 상수값이 담겨있는 .py # project/upload/ class UploadS3(APIView): # S3에 이미지 업로드 후 URL 리턴 def post(self, request): file = request.data["file"] print(file) s3 = boto3.client('s3', # 각 상수에 IAM 으로 생성한 KEY들을 저장해두면 # aws configure를 따로 설정해주지 않아도 업로드가 된다. aws_access_key_id = my_settings.AWS_ACCESS_KEY, aws_secret_access_key = my_settings.AWS_SECRET_KEY, region_name = my_settings.. 더보기
TIL 2022.07.14 DRF APIView Pagination APIView 를 상속받아 구현하는 CBV 클래스의 경우는 settings.py에서 pagination 설정을 적용해도 작동되지않는다. 이를 구현하기 위해선 별도의 pagination을 적용해줘야만 한다. pagination.py 를 새로 만들어서 아래의 클래스들을 정의해줘야한다! # article/pagination.py from rest_framework.pagination import PageNumberPagination class BasePagination(PageNumberPagination): # 페이지 사이즈를 지정할 query_param 문자열 지정 ex) /?page_size=5 page_size_query_param = 'page_size' class PaginationHandlerMi.. 더보기
TIL 2022.07.13 SidePro - S.A, 모델링 👉 1. 프로젝트 기간 2022.07.07 (목) ~ 2022.08.04 (목) 👉 2. 팀 구성 김선민, 김민기, 박재현, 황신혜 👉 3. 프로젝트 주제 주제 : 온라인 커피챗을 곁들인 개발자 사이드 프로젝트 모아보기 서비스 👉 4. 프로젝트 메인 기능 1. 사이드 프로젝트 게시판 (조회, 생성, 수정, 삭제) 2. 커피챗 실시간 Socket 통신 온/오프라인 3. 유저 Tag / 주제 기반 협업 필터링 👉 4. 프로젝트 진행 방식 화면 기획 (Figma) : 링크 (완료) API 설계 (Notion) : 링크 (완료) 일정 관리 (갠트 차트) : 링크 (완료) 기능 구현 관리 (Git Issue) : 링크 (진행중) 👉 5. 화면 와이어프레임 및 기능 범위 정의 (진행중) 화면 화면 이름 기능 첫 화.. 더보기