분류 전체보기
-
[Git]내가 원하는 커밋만 고르고 싶다(Cherry-Pick)Git 2023. 8. 2. 21:23
내가 올린 pull request에 다른 팀원의 commit이 섞여 버렸다고 연락이 왔다. 이미 올린 pull request에서 commit을 빼는 방법은 모르겠다… 일단 나의 git은 -master(팀의 마스터 레포지토리와 같은 상태) -MyPlaceSearch(내가 새로 만든 코드가 있는 브랜치) 이 상태였다 그런데 MyPlaceSearch에서 올린 PullRequest에 다른 팀원의 commit이 섞인것!! 이유는 아직 모르겠다…다음에 여쭤봐야지 그래서 알아낸 방법이 Cherry-Pick이었다 cherry-pick이란 케이크 위에 얹어져 있는 체리만 집어먹는 행위라는 의미로 ‘인기있는 특정 요소만 고른다’라는 뜻이다. 일단 사용 방법은 새로운 branch를 만들고 git cherry-pick [SH..
-
[Django]mypick_forest 복수 리턴 문제(Q 공부 등등)카테고리 없음 2023. 8. 1. 22:25
문제상황 아래와 같이, hashtag가 여러개이면 mypage/forest에 리턴이 그 수만큼 생기는 문제가 생겼다 근데 또 view의 serializer에서 hashtag는 없어서 리턴되는 값에는 hashtag가 없지만 그냥 나머지 정보는 다 똑같은 결과가 여러개가 등장한다 문제 원인 파악 일단 forest 객체가 여러개가 생성되는 것은 아니다. 그렇다는 것은 forest의 모델이나 create함수의 문제는 아니라는 것! 문제는 mypick_forest의 selector와 view에 있다는 것! 따라서 mypage/forest/selector의 selector 코드를 분석해보았다. class UserForestSelector: def __init__(self, user: User): self.user ..
-
-
[Django]쿼리 최적화(GroupConcat->select_related().prefetch_related()/Dto 공부)카테고리 없음 2023. 7. 26. 21:26
story_place_subquery = Story.objects.filter(id=story_id).values('place') same_place_story = Story.objects.filter(place=Subquery(story_place_subquery)).exclude(id=story_id).annotate( place_name=F('place__place_name'), writer_is_verified=F('writer__is_verified'), nickname=F('writer__nickname'), extra_pics=GroupConcat('photos__image')) for story in same_place_story: story.rep_pic = story.rep_pic.ur..
-
[Git]commit 하지 않고 checkout하면?Git 2023. 7. 26. 21:26
문제상황 브랜치를 만들고 작업하다가 잠시 master브랜치에서 확인해야할 것이 있어서 git checkout master 저장만 한 채로 master브랜치로 옮겨왔더니 ... 팀의 master브랜치와 동일해야할 나의 master브랜치가 작업 중이던 코드로 바뀌어 있었다. 발생 이유 "Git은 데이터 손실을 피하려 한다." 때문에 Branch A에서 작업하다가 커밋하지 않은 내용이 있을 때 Branch B로 checkout하면 git은 Branch A의 커밋되지 않은 변경사항을 체크아웃한 Branch B로 따라가져온다. 이는 git이 최대한 불필요한 데이터 손실을 피하고자 하기 위함이라고 한다. checkout시 변경사항을 버리고 가고 싶다면 git checkout -f 명령으로 체크아웃시 변경사항을 버리..
-
[Django]SamePlaceStoryApi 개발(exclude, 필드값 가져오기 등)카테고리 없음 2023. 7. 25. 22:35
스토리 id가 주어지면 그 스토리와 같은 장소에 대한 스토리 리스트를 반환하는 api를 개발하여야 한다. 먼저, 필요한 사항들을 확인해보자 리턴되어야하는 필드: story_id/rep_pic/title input: story_id 1. 주어진 스토리의 place_name가져오기(필드값 가져오기) 먼저, 주어진 스토리 안의 place_name을 알아내기로 하였다. Story.object.filter(id=story_id).value_list등 요상한 방법을 썼지만 사실 그냥 아래처럼 Story객체에 .찍고 뒤에 원하는 필드이름을 적으면 되는 것이었다. def list(self, story_id: int): place_name = Story.objects.get(id=story_id).place includ..
-
[Django]annotate/Concat/F가 궁금해요Django_BE 2023. 7. 24. 23:00
included_curation = Curation.objects.filter(short_curations__story__id=story_id).annotate( rep_pic=Concat( Value(settings.MEDIA_URL), F('photos__image'), output_field=CharField(), ), ) 여기에서 annotate부터의 코드가 어떻게 구성된것인지 살펴보자. annotate()메서드는 장고의 QuerySet API에서 활용되는 함수로, 데이터베이스 질의 결과에 추가적인 정보를 계산하여 결과에 포함시키는 역할을 한다. 예시 코드에서는 'rep_pic'이라는 새로운 필드를 계산하여 결과에 포함하고 있다. 'rep_pic'-> annotate()메서드를 이용하여 쿼리 결과..