본문 바로가기

전체 글

(53)
알고리즘 초간단 정리 최근 알고리즘 문제를 계속해서 풀고 있다. 어떤 자료구조와 알고리즘을 사용하면 되겠다 하는 정도까지는 얼추 보이는데 빌트인 자료구조를 주로 이용하다 보니 직접 구현해야 하는 상황은 버벅이게 된다. 간단하게 정의와 파이썬에서 이용하는 법을 키워드로 정리한다. 리스트배열. 기본적으로는 같은 타입의 데이터가 연속적으로 위치하는 선형 자료구조.인덱스를 통해 빠른 접근이 가능.파이썬에서는 다양한 타입의 데이터를 저장할 수 있으며, 동적으로 크기가 조절됨.구현은 주로 [] 또는 list() 함수 이용.연결리스트각 노드가 데이터와 다음 노드를 가리키는 포인터로 구성된 선형 자료구조.삽입 삭제가 효율적.다음 노드는 이전노드를 통해서 접근하기에 n번째 요소 조회는 O(n).구현은 주로 collections.deque 이..
Git merge 전략 커밋(commit)과 브랜치(branch)와 병합(merge)은 서로 깊은 연관이 있다. 개인적으로는 이 세가지는 한세트로 여겨도 될 것 같다. 하지만 이 포스트는 merge 전략이므로 커밋과 브랜치는 가볍게 필요한 만큼만 짚고 가겠다. 커밋은 의미 있는 변경 내역을 기록하는 것이다. 소스코드는 수없이 변하고 그 변경 내역을 누적해서 기록한다. 커밋 하나 하나가 점이라면 그 점이 긴 선을 이루는 것이다. 브랜치는 어느 시점의 커밋으로 부터 분기된 가지이다. 보통 맨 처음 생성된 가지를 master 또는 main 브랜치라고 한다. 새로 생성된 브랜치는 기존 커밋 흐름에서 분리되어 별도의 커밋 흐름을 생성한다. 이 서로 다른 두 브랜치를 다시 하나의 브랜치로 통합하는 것이 병합(merge)이다. 이때 고려해..
[FastAPI] PUT과 PATCH 처리 오랜만에 포스팅한다. 몇달만에 다시 하려니 어색할 뿐이다. 그래도 다시 시작해야지.  RestAPI를 디자인 하다보면 고민하게 되는 부분이 있다. PUT과 PATCH를 언제 어떻게 사용해야 좋을까 하는 점이다. 원론적으로 따지면 리소스를 부분 수정 할 땐 PATCH를 사용하고 리소스 전체를 교체할 때는 PUT을 사용한다. 사실 PUT만 사용하는 경우도 많고 리소스 일부 수정도 PUT을 사용하는 경우도 많다. 당장 내가 다니는 회사에서도 업데이트는 거의 PUT만 사용하는 것 같다. 하지만 규약 관점에서 보자면 PUT과 PATCH는 서로 다른 용도이다. PUT은 '교체/대체(replace)'하는 메서드이다. 즉, 대상을 저장하기도 하고 변경하기도 한다. 자원이 없다면 생성하고 201(created) 응답을 ..