2022.12 회고

jomminii·2022년 12월 30일

remember

목록 보기
1/2

기술적 깨달음

  • Mysql enum 컬럼을 not null 로 선언하고 아무 값도 넣지 않으면. Enum 의 첫번째 값을 값으로 넣어버림
    -> if you declare NOT NULL then it gives the first value from the ENUM.

  • Makefile 을 통해 반복적으로 사용하는 쉘 스크립트를 미리 작성해 둘 수 있음

  • git이 pre-commit hook 과 같은 hook 을 제공하고 이를 활용해서 일련의 프로세스를 진행할 수 있다는 걸 알았음
    -> pre-commit 단계에서 테스트를 진행하거나 lint 를 확인하는 등

  • 로그를 남길 때 하나의 요청에서 온다라는 걸 명확히 하기 위해 trace id (UUID 등) 을 공용으로 넘겨 구분할 수 있음

  • decorator 에 @wraps 를 사용하면 데코레이터가 달린 함수를 실행하는 함수로 인식하게 해줌. wraps 안쓰면 데코레이터를 함수로 인식

  • contextmanager. with 구문을 사용할 수 있게 만들어주는 decorator
    -> generator 함수에만 사용할 수 있음
    -> yield 까지가 실제 실행되는 부분이고 블록이 끝난 후 finally 를 통해 마지막 로직 실행

  • python의 is, is not. 은 == != 와 같지 않다.
    -> == 이건 값 비교, is 는 메모리 id 비교

  • DB read, write 뭘 쓰느냐에 대한 고찰
    -> 해당 쿼리가 조회라고 해서 read 를 쓰는게 아니라, 해당 트랜잭션 안에서 해당 쿼리 앞단에 write 가 있었으면, 이 결과값을 사용하기 위해선 반영 시간을 고려해서 write 를 써주는게 맞을 수 있다

  • fastapi - guicorn vs uvicorn
    -> fastapi 는 ASGI 를 따르는 uvicorn 으로 서버를 띄우는게 맞으나 uvicorn 은 프로세스 매니저로서의 역할은 아직 잘 하지 못함
    -> WSGI를 따르는 gunicorn 으로도 uvicorn 의 workers 를 다룰 수 있음
    -> workers 를 효율적으로 관리할 필요가 있다면 gunicorn 으로 사용하는게 좋을 수 있음
    -> [FastAPI] gunicorn, uvicorn workers 뭘 써야하나


전반적 깨달음

  • 커뮤니케이션의 중요성
    -> PM과 기획 단계에서부터 본인들이 생각하고 있는 개념들을 서로에게 설명했으나 결과적으로는 이해하는게 달라 QA 에서 이슈가 발생함
    -> 내가 이해하는게 맞는지 더 정확하게 짚고 넘어가는 과정이 필요함

  • QA 의 TC 를 미리 공유 받으면 전체적인 개발 프로세스가 빨라질 수 있을거라고 생각함
    -> 서로 생각하는 기능들이 다를 수 있고, 미리 서로의 관점을 파악하면 이후 빠트릴 수 있는 이슈 들을 미리 처리하여 (개발 → QA 이슈 → 재 개발 → QA) 의 핑퐁을 덜할 수 있을 것

  • 특정 기능을 어느 플랫폼에서 개발하는게 맞는가에 대한 고찰
    -> 특정 기능(ex) 수동 재고연동)을 우리 시스템에 담을 것인지 연동을 받고 있으면서 재연동을 필요로 하는 시스템에 담을 것인지에 대한 고민
    -> 사용자의 입장에서 자주 사용하는 메뉴에 담을 것인가
    -> 시스템 플로우 상 있어야할 법한 곳에 위치시켜야 하는가
    -> 작업공수가 적게 드는 시스템에 적용해야하는가
    -> 이번 작업은 작업 공수가 드는 시스템에 적용하게 되었지만 실제로는 사용자의 입장에서 고려하는게 좀 더 맞을 수도 있다고 생각함

profile
고민은 격렬하게, 행동은 단순하게

0개의 댓글