[IMGenie] 결과 페이지 추가와 카카오톡 공유하기
·
프로그래밍/부스트캠프 AI
계속 이미지니에 집착하는 감이 있지만, 만드는게 또 재밌다. 이번엔 카카오톡 공유하기를 만들어보았다. 하는 김에 음악을 들려줘야 하니, 친구에게 보여줄 결과 페이지도 만들었다. 카카오톡 공유하기는 이렇게 되고 결과 보러가기를 누르면 대충 아래와 같다. 결과 보러가기는 사실 쿼리 파라미터로 이미지정보와, 곡 정보를 보내주는 방식이다. 기간은 단순히 2일 걸렸다. 끗.
[Imgenie] https와 쿠키를 도입했음
·
프로그래밍/부스트캠프 AI
이미지니 서비스 개발은 거의 막을 내렸지만 어쨌거나 나에겐 해야할 것이 있었다. 별로 대단한 것은 아니지만, 아침 스터디에 도언니의 "그래도 한번 올려보는게 어때?"라는 말을 듣고 글을 써본다. 이번글은 개발에 있어서 유용한 정보를 제공하는게 아니거나와 내용도 사실 별로 없다는 것을 유의해주셨으면 좋겠다. 🍪 쿠키 도입 기존에는 jwt로 사용자 인증을 담당했었다. 요청헤더에 토큰이 없으면 재발행 하게했다. 그런데 jwt는 보통 사용자 인증을 안전하게 구현하기 위해 쓰이는데, 우리 서비스에는 이렇게 까지 할 필요가 없었다. 쿠키를 도입하면 헤더에 넣지 않아도 자동으로 전송되고 더 일반적인 방법인 것처럼 보였다. 다른 개발자분의 의견도 쿠키를 도입하는 계기가 되었다. 사실 프로그래머가 아니더라도 어릴때부터 ..
[Imgenie] 회고
·
프로그래밍/부스트캠프 AI
Imgenie는 네이버 커넥트재단에서 운영했던 부스트캠프 AI Tech의 최종 프로젝트로 만들었던 프로젝트다. 사용자가 이미지를 넣으면 노래를 추천해주는 서비스인데, 부캠이 끝나고도 미련이 남아 계속 개발을 했었다. 이 글은 이제 적어도 나는 얼추 마무리를 지어야 할 때가 온 것 같아 적는 회고글이다. 서비스는 아직 운영중이다. http://imgenie.co/ 이 링크로 들어오면 해볼 수 있다. 서비스에 대한 소개는 깃허브 저장소 혹은 노션 페이지를 참고하시면 되겠다. 🎯 초기 개발 목표 처음 개발할때는 프로젝트에 대해 걱정과 자신감 모두 마음속에 품고 있었다. 걱정은 이미지로 부터 음악을 추천해주는게 가능한 일인가? (성능에 대한 평가가 가능한가?) 싶었고, 그동안 우리 팀원들이 다들 잘해주셨기 때문..
파이썬, if문보다 try~expect이 더 좋다?
·
프로그래밍/파이썬
파코기(파이썬 코딩의 기술) 책을 읽다가 Better way 16에서 내가 알고 있던 것과 다른 내용이 나와서 글을 쓴다. 😵‍💫 발단 counter 딕셔너리의 값을 증가시키는 코드를 짜려고 한다. 아래 두 후보 중 어느 것이 맞을까? # 1번 후보, counter[key]에 +1을 하기 전에 key가 있는지 확인하고 간다. if key in counter: counter[key] = 0 else: counter[key] += 1 # 2번 후보, counter[key]에 +1을 하고 없다고 에러가 뜨면 예외를 처리한다. try: counter[key] += 1 except KeyError: counter[key] = 1 이 책을 보기 전의 나는 "당연히 1번이지! 예외는 말이야~ 원래 오래 걸린다~~ 이..
MongoDB의 Date와 python의 datetime
·
프로그래밍/파이썬
1️⃣ 발단 Imgenie 서비스에 mongo db를 달아주고 있던 중, 테스트 코드에서 아래와 같은 오류가 발생했다. 이 오류는 아래 함수에서 발생한 것인데, 저장 전의 auth 객체와 와 실제 db에 저장된 found 객체가 다르다는 것이였다. def test_find_by_refresh_token(self): user = self.__user() auth = self.__auth(user, "123") found = self.auth_repository.find_by_refresh_token(auth.refresh_token) assert auth == found ## 여기서 발생! 2️⃣ 이유 파이썬 datetime의 마이크로초의 값이 다른것이 문제인데 found객체의 마이크초 일부가 없는 걸 보..
[Movie Rec] S3Rec의 모듈화 시도
·
프로그래밍/부스트캠프 AI
이번 Movie Rec은 5월 중순부터 6월 중순까지 이어지는 네이버 AI 부캠 대회이다. 과정에서 성능적인 향상은 이끌어내지 못했지만 깊게 고민해봤던 시도가 있어 적어두었다. 개발한 코드는 다음 레포에서 볼 수 있다. https://github.com/boostcampaitech5/level2_movierecommendation-recsys-03 💬 간단한 모델 소개 S3Rec은 SASRec에 side info를 사전학습시켜 user-item간 interaction을 학습, 추론 시키는 모델이다. 사전학습할때는 아래 4개의 방식으로 학습하며, loss는 weight를 다르게 해서 더한 값을 쓴다. 📝 기존 구조 레포주소: https://github.com/aHuiWang/CIKM2020-S3Rec/tr..
[DKT] Github Action 테스트 도입
·
프로그래밍/부스트캠프 AI
🤔 발단 이전 프로젝트(Book recommendation) 때부터 자동화된 테스트를 도입하고 싶었다. 그래서 이전에도 사용해본 적 있는 "Github Action"을 꼭 써보고 싶었는데, 이번에 여러 문제를 겪으며 적용해보았다. 💥 문제1 - wandb logger 우리는 지금 당장은 통합테스트를 수행할 것이다. 그리고 Github Action을 이용할 것이기 때문에 API KEY가 필요한 것은 배제해야 한다. -> 그것이 이번 문제의 주인공인 wandb가 되겠다. 📝 @patch 모킹은 좋은 방법이 아니지만, 어쩔 수 없이 써야 할 때가 있기 마련이다. 파이썬은 그래서 @patch라는 모킹 데코레이터 함수를 제공해주고 있다. @patch(패키지.함수) 와 같은 형태로 테스트 함수에 달아주면 된다. 아..
[DKT] lgbm에 label을 feature로 넣으면...
·
프로그래밍/부스트캠프 AI
🧐 사건의 발달 nmf으로 latent feature를 만들어낸 후, lgbm에 학습한 성능 보고를 하려 글을 쓰려던 참이였다. 아래와 같은 피쳐 대조군을 만들어 학습을 돌리고 features: - KnowledgeTag - userID - Timestamp - testId - assessmentItemID - answerCode 아래와 같은 실험군을 돌릴려고 했다. (latent feature 추가) features: - KnowledgeTag - userID - Timestamp - testId - assessmentItemID - answerCode - userLatentFactor1 - userLatentFactor2 - userLatentFactor3 - assessmentLatentFactor..
2jun0
'프로그래밍' 카테고리의 글 목록 (6 Page)