분류 전체보기 17

파이썬) 스택으로 큐 구현하기 (Queue with stack)

스택 두 개로 큐를 구현해보자. 그 뭐더라.. 구현하다보니 그 게임이 생각난다. 버터링같은 거 요리조리 옮기는 거.. 그거 어렸을 때 중독돼서 진짜 빨리했었는데 ㅋㅋ class Queue: def __init__(self) -> None: # enqueue 할 때 쓸 스택 self.enqueue_stack = [] # dequeue 할 때 쓸 스택 self.dequeue_stack = [] def enqueue(self, data): # queue에 아이템 넣기 O(1) self.enqueue_stack.append(data) def dequeue(self): # 두 stack 모두 아이템이 하나도 없을 경우 raise Exception 하기 if len(self.enqueue_stack) == 0 an..

자료구조 2022.04.12

MSA 발표

회사 라이트닝 토크 시간에서 개발자분들+비개발자분들을 대상으로 마이크로서비스에 대해서 발표했다. 마이크로 서비스가 어떤 개념인지, 장점과 단점이 무엇인지, 타 회사의 사례는 어떤지(배달의민족), 우리 팀이 도입하려고 하는 이유가 무엇인지, 지금 어떻게 부분적으로 도입했는지에 대해 설명했다. 마이크로서비스에 대해서 발표한 이유는 사실, MSA의 필요성을 말하기 위해서 보다, 레거시 개선을 위한 시간 투자 라는 전사적인 공감대를 얻어내기 위해서였다. 다 그렇겠지만 지금은 항상 이 기능 개발이 끝나면 다음 새 기능을 개발해야 한다. 몇 년 전부터 있던 레거시 때문에 효율적인 개발이 힘들어도 시간이 없으니 당장 대충 기능 개발을 해버리게 된다. 음.. 신기능을 빨리 빨리 개발해서 시장에서 앞서 나가야 하니까 충..

카테고리 없음 2022.04.11

leetcode 1700 리트코드 1700번 파이썬 풀이

첫 번째 샌드위치를 원하는 사람이 아무도 없을 때 남은 모든 학생의 숫자를 리턴하면 된다. 스택이랑 큐 문제이지만 쓸 필요 없음.. 그냥 카운터 쓰면 간단하다. 스탑 컨디션 찾는게 어려웠다. 문제를 잘 이해 못했던 것 같다. 그러니까 결국 샌드위치의 순서는 바뀌지 않고, 첫 번째 샌드위치를 원하는 학생이 있으면 학생 줄은 순서가 어떻게 되던간에 원하는 학생이 와서 샌드위치를 가져갈 것이다. 하지만 샌드위치의 순서는 변하지 않기 때문에, 첫 번째 샌드위치를 원하는 학생이 없으면 나머지 샌드위치가 어떤 것이든 남은 학생들은 모두 샌드위치를 먹지 못한다. from collections import Counter class Solution: def countStudents(self, students: List[..

알고리즘 2022.03.27

FastAPI 와 서버리스(Serverless Framework), 깃헙 액션으로 CI/CD 구현하기

FastAPI + Serverless framework + Github Action 앞으로 FastAPI로 1) 코드를 작성한 후에 2) 깃헙에 푸시하면 3) 테스트 코드를 돌리고 4) 테스트 코드 통과 시에 aws 람다와 api gateway를 생성/업데이트 하는 플로우를 몇 개의 포스트에 걸쳐 정리하려고 한다. FastAPI로 api 를 구현하고, 람다와 api gateway 를 간단히 자동으로 생성하기 위해 serverless framework 를 사용하며, CI/CD 를 위해서 깃헙 액션을 사용할 것이다. 이번 포스트에서는 FastAPI로 간단한 api 를 생성해 볼 것이다. FastAPI 공식문서(https://fastapi.tiangolo.com/) 를 참고하면 FastAPI 를 처음 접하는 ..

FastAPI 2022.03.18

FastAPI 로 파이썬 마이크로서비스

FastAPI의 장단점 요즘 우리 팀은 모놀리틱 서비스를 마이크로 서비스로 바꾸려고 하고 있다. 그 중에서도 내가 맡은 프로젝트가 첫 스타트를 끊게 되었는데, 덕분에 팀원분과 함께 자유롭게 언어와 프레임워크, 배포 툴 등을 고를 수 있었다. 하지만 우리 회사는 거의 모두가 파이썬을 사용하고 있기때문에 마이크로서비스가 기술 선택에 있어 아무리 자유롭다고 하더라도 현실적으로 자바를 선택할 수는 없는 일이었다. 그리고 사실 프레임워크도 우리가 먼저 선택하기 전에 시니어분이 fastAPI 를 추천해주셨는데, 마침 나도 FastAPI 가 좋아보여서 즐거운 마음으로 전향할 수 있었다. FastAPI 는 파이썬 프레임워크 중 굉장히 새로운 (2018년 12월에 최초 출시되었다고함 겨우 네 살임!) 프레임워크이다. 이..

FastAPI 2022.03.13

깃헙 레파지토리 네이밍 컨벤션

레파지토리명을 짓는데도 네이밍 컨벤션이 있을까? 모놀리틱 서비스에서 마이크로 서비스로 이행하는 작업을 하면서 여러 개의 레파지토리를 생성해야 하는 일이 생겼는데, 레파지토리 이름을 어떻게 지을 것인가에 대한 의문이 있었다. 그래서 검색을 해보니, 브랜치, 커밋 등에 대한 가이드를 https://github.com/agis/git-style-guide 제공하는 문서인 깃 스타일 가이드는 있어도, 레파지토리 네이밍에 대한 문서는 따로 없었다. 그러던 중 이 사이트에서 괜찮은 글을 찾았다. https://moduscreate.com/blog/github-semantic-naming/ (이 문서에 포함된 유투브 링크도 참고) 아주 짧고 핵심만 잘 담은 영상이라 이것만 봐도 될 것 같다. https://www.y..

카테고리 없음 2022.03.02