profile
잘 & 열심히 살고싶은 개발자

TIL 20210616 swagger(flasgger)에서 OpenAPI 3.0 사용 시 spec 작성법

https://github.com/flasgger/flasgger/ API 문서화용으로 swagger(flasgger)를 사용하고 있는데, OpenAPI 3.0을 적용한 이후로 POST, PUT메소드 등, request body가 필요한 API에서 request b

2021년 6월 17일
·
0개의 댓글

TIL 20210614 presigned url로 client side에서 직접 파일 업로드

현재 사용자가 파일을 업로드하면 s3에 저장되도록 하고 있는데, 파일이 5mb가 넘어가면 timeout이 발생한다는 것을 발견했다. 이는 현재 사용하고 있는 lambda 서버의 payload 용량이 6mb여서 업로드가 안되는 것으로 보였다. 이 포스팅에서 presi

2021년 6월 16일
·
0개의 댓글
post-thumbnail

TIL 20210608 vscode에서 pytest 사용시 moduleNotFoundError

현재 테스트 모듈로 pytest를 사용하고, IDE는 vscode를 사용하고 있는데 repository를 새로 받아서 유닛테스트를 돌리려고 하면 항상 moduleNotFoundError가 발생했다. 매번 발생할 때마다 검색하는게 너무 귀찮아서 간단하게 정리를 위한 기록

2021년 6월 16일
·
0개의 댓글

TIL 20210525 mongodb compound index

운영팀에서 사용하는 영상 관리 페이지는 현재 조회수 순으로 정렬되어 있고, 이에 맞추어 인덱스도 조회수를 기준으로 생성되어 있다. 이 부분을 최신 영상 순으로 정렬해서 보여달라는 요청이 들어와 mongodb의 인덱스를 수정해야 했다. 기존 인덱스는 다음과 같이 되어 있다. 처음에는 여기서 viewCount만 publishedAt으로 수정해서 머지하면 될...

2021년 5월 27일
·
0개의 댓글

TIL 20210521 API호출 시 메모리 크기?

회사가 운영하는 웹사이트가 버전업을 하면서 사용하던 DB도 MySQL에서 MongoDB로 변경되었기 때문에 마이그레이션이 필요하게 되었다. 마이그레이션 조작을 하는 것이 내 임무였는데, 어려운 것은 없고 환경 세팅 후 전임자가 미리 작성해 둔 코드를 실행하기만 하면 되

2021년 5월 25일
·
0개의 댓글

TIL 20210520 mongodb update_many

회사에서 운영중인 웹사이트가 버전업을 하면서 많은 시행착오가 있었다.그 중에서 로그인 관련 문제가 있었는데 사용중인 aws cognito에서 발급되는 username이 새 버전 db에 남아 있어서 발생하는 것으로 추측되었다.그래서 내가 맡은 일은 새 버전 db의 cog

2021년 5월 22일
·
0개의 댓글

TIL 11. gRPC (그리고 삽질)

서문 기업협업 중인 회사에서 진행중인 오픈소스 프로젝트에 참여하게 되었다. 그런데 CTO님이 REST 대신 gRPC를 써보면 경험도 되고 좋지 않겠냐고 하셨다. REST도 제대로 모르는데 gRPC?? 그게 뭐지? 하는 마음으로 하루 종일 gRPC가 뭔지, 파이썬&장고

2020년 11월 30일
·
0개의 댓글

Django 18. QuerySet API 4

들어가기 전에 이 포스팅에서 사용한 데이터들은 이곳 또는 공식문서가 원 출처임을 밝혀 둔다. 한편 쿼리셋 메소드는 종류가 많고 그 기능도 여러가지이므로 여기서 다 다루기는 어렵다. 이 포스팅에서는 기본적인 메소드 위주로 언급하고, 언급되지 않은 메소드에 대해서는 공식

2020년 11월 19일
·
0개의 댓글

Django 14. QuerySet API 3

들어가기 전에 이 포스팅에서 사용한 데이터들은 이곳 또는 공식문서가 원 출처임을 밝혀 둔다. 한편 쿼리셋 메소드는 종류가 많고 그 기능도 여러가지이므로 여기서 다 다루기는 어렵다. 이 포스팅에서는 기본적인 메소드 위주로 언급하고, 언급되지 않은 메소드에 대해서는 공식

2020년 11월 10일
·
0개의 댓글

Django 13. QuerySet API 2

들어가기 전에 이 포스팅에서 사용한 데이터들은 이곳이 원 출처임을 밝혀 둔다. 한편 쿼리셋 메소드는 종류가 많고 그 기능도 여러가지이므로 여기서 다 다루기는 어렵다. 이 포스팅에서는 기본적인 메소드 위주로 언급하고, 언급되지 않은 메소드에 대해서는 공식문서를 확인하면

2020년 11월 5일
·
0개의 댓글

Django 12. QuerySet API 1

소개 이전 포스팅에서는 장고의 QuerySet이 무엇인지를 아주아주 간단하게 알아봤다면, 이번에는 QuerySet에는 무엇이 있고 어떤 식으로 사용하는지 알아보고자 한다. 이 포스팅에서 사용한 데이터들은 이곳이 원 출처임을 밝혀 둔다. 한편 쿼리셋 메소드는 종류가 많

2020년 10월 28일
·
0개의 댓글

Django 11. ManyToManyField 2

"self" 데이터베이스에서 테이블이 자기자신을 참조한다고 한다면 이상할까? 자신을 참조해서 뭐하나 싶지만 필요할 때가 분명 있다. 인스타그램의 팔로우를 생각해보자. 한 유저가 다른 유저를 팔로우하는 데이터를 보관해야 할 때, 유저 테이블을 참조하는 Follow 테이블

2020년 10월 19일
·
0개의 댓글

Django 10. Query String in Django

1. Query String? 쿼리 스트링이란 url의 한 부분으로 특정(합의된) 매개변수에 값을 지정한 것이다. 보통 필드=값 으로 정의된다. 여기서 ?(물음표)는 separator로 쿼리 스트링에는 포함되지 않고 쿼리 스트링의 시작을 알려준다. 매개변수가 여러개일

2020년 10월 19일
·
0개의 댓글

Django 9. ManyToManyField 1

1. Many-to-Many relationship 데이터베이스의 Many-to-Many relationship(이하 다대다 관계)는 처음 접하는 사람들을 힘들게 한다. 한 테이블의 여러 레코드가 다른 테이블의 여러 레코드와 연결되어 있는 관계. 말만 들어서는 감이 오

2020년 10월 14일
·
0개의 댓글

Django 8. bcrypt를 통한 비밀번호 암호화

1. 인증(Authentication) & 인가(Authorization) 비밀번호 암호화에 관한 이야기를 하기 전에 웹에서의 인증과 인가에 대해 설명하고자 한다. 둘 다 API에서 자주 구현되는 기능들이다. 인증은 한 유저가 유효한 유저인지 검증하는 과정이다. 결국

2020년 10월 13일
·
0개의 댓글

파이썬 알고리즘-75 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이

String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요. str: 텍스트 return: 중복되지 않은 알파벳 길이 (숫자 반환) 예를 들어, str = "abcabcabc" return은 3 => 'abc' 가 제일

2020년 10월 12일
·
0개의 댓글

Django 7. 기본 개념 6(역할기반 허가&인증)

1. User Role Based Permissions & Authentication 웹사이트에는 사용자와 관리자가 있다. 이 두 그룹이 사용하는 페이지는 같은 부분도 있겠지만 관리자만이 사용하는 페이지도 존재할 것이다. EC사이트를 예로 들면 모든 주문에 대한 배송

2020년 10월 7일
·
0개의 댓글

Django 6. 기본 개념 5(회원가입, 로그인 인증)

1. User Registration (회원가입 페이지 템플릿은 이미 작성했다고 가정한다) 장고에는 기본적으로 회원가입을 위한 폼이 내장되어 있다.(UserCreationForm) 그래서 view에서 함수로 회원가입 페이지를 렌더하면 아래와 같은 내장 폼을 볼 수 있다

2020년 10월 6일
·
0개의 댓글

MySQL 4. Django와 MySQL 연결

1. ubuntu mysql 로그인 로그인 시 매번 sudo를 하는 것도 귀찮으므로 아래와 같이 설정 사실 패스워드를 ''(빈칸)으로 설정하는 것이라 실행하면 패스워드 입력하는 항목이 뜬다. 거기서 그냥 엔터 다시 눌러주면 되는 것 2. mysql 설치 mysqls

2020년 10월 6일
·
0개의 댓글

Django 5. 기본 개념 4(Inline Formsets, Filter Form)

1. Inline Formsets 장고에서는 폼셋을 제공하는데, 외래키로 연결된 1:N 관계의 데이터를 수정할 때 한번에 여러 데이터를 수정할 수 있게 해준다. 예를 들어 한 고객이 주문한 여러 주문을 한꺼번에 수정할 수 있게 된다. 그 중에서 이번에 다룰 폼셋은 In

2020년 9월 30일
·
0개의 댓글