GIF via giphy
그래프 문제에 점점 익숙해지고 있는 것 같다. 여러 문제들을 접하면서 나름대로 코딩테스트를 합격하기도 하고 떨어지기도 하는데 그때마다 나를 제일 괴롭히는 문제는 의외로 구현인 것 같다. 구현문제를 푼 횟수가 적기도 하지만 머리속에 있는 생각을 코드로 옮기는게 생각보다 훈련이 덜 되어있다. 이제부터는 구현문제를 좀 많이 풀어보자.
부족한 문제 : 구현, 기하학, 다이나믹 프로그래밍
def get_paginated_board_data(page_num: int, author: UserModel, is_mine: str) -> Tuple[List, int]:
if is_mine == "True":
페이지네이션을 가져온다.
else:
페이지네이션을 가져온다.
return paginated_boards, total_count
그래서 우선 검색된 데이터를 가져오는 함수를 만들었는데 쿼리, 페이지네이팅 부분 말고는 다 동일한데 이거 맞나 싶다. 내일은 위 함수 전체를 좀 손 봐야할 것 같다. 우선 is_mine처리가 되어있는 함수를 분할하고 Q객체로 query를 달리하면 될 것 같다. 막상 하려니까 관련된 테스트코드며 뭐며 손봐야할 게 너무 많아서 오늘은 우선 내가 필요한 함수를 만들어서 점검을 했다. 내일은 저 함수를 좀 분할하고 중복된 부분을 제거하면서 재사용성을 높일 수 있을지 고민해봐야겠다. 함수를 만들어서 추가로 작업을 하려고 보니까 elasticsearch의 search 함수가 업데이트 이후로 바뀌었는지 deprecated 경고를 자꾸 띄웠다. 그래서 최신 버전에 맞게 위에서 아래로 변경해주었다.searched_data = client.search(
index="mail_box",
headers=headers,
body={
"sort": ["_score"],
"from": page_num,
"size": MAX_PAGE,
"query": {"match": {search_type: search_word}},
},
)
searched_data = client.options(headers=headers).search(
index="mail_box",
from_=page_num,
sort=["_score"],
size=MAX_PAGE,
query={"match": {search_type: search_word}}
)
도커파일 없이 env 설정으로 단일 컨테이너를 띄워서 테스트코드를 돌리고 싶었는데 그렇게 하니까 자꾸 connection abort가 떠서 로컬 docker파일로 env를 맞춰주고 거기서 테스트를 돌리니까 잘 되는 것 같다.