본문 바로가기

CATEGORY16

[DSA] 1. 1-D Dynamic Programming TABLE OF CONTENTS SolutionBrute Force = Decision TreeMemoization(=Caching) = Backtracking(=dfs)(Base Case → Cache Hit → 내려가기 → 올라왔을때)DP = Bottom-UP Approach(=Memoization logic을 거꾸로 적용해서 표/그림/공식 제작)1. Climbing Stairs한번에 계단을 1개 혹은 2개씩만 올라갈 수 있을때 n개의 계단을 오를 수 있는 방법의 수를 구하라# O(n), O(n)class Solution(object): def climbStairs(self, n): if n == 1: return 1 if n == 2: .. 2024. 7. 12.
[DSA] 1. Data Structures and Algorithms TABLE OF CONTENTS 1. What is good code?무엇이 좋은 코드일까? => 2가지 조건을 만족시키면 된다. 바로 Readability와 Scalability이다. 하지만 대부분의 경우 Speed와 Memory는 trade-off 관계이다. 하나를 최적화 시키면 다른 하나가 안좋아진다는 말이다. 따라서 보통 Time Complexity를 최적화하는 경우에는 Space Complexity를 포기하고, HashSet이나 HashMap과 같은 추가적인 자료구조를 사용하면 되는 것이고, Space Complexity를 최적화 하는 방법은 Time Complexity를 포기하면 된다.  2. Big O그러면 Big O notation이란 무엇일까?빅오란 결국 복잡도를 표기하는 방법이다. 이렇.. 2024. 7. 12.
[Serverless With Golang] 4. Golang TABLE OF CONTENTS 1. Why Golang?k8s가 Go로 만들어졌으므로 Cloud환경에서는 Go가 굉장히 많이 쓰이게 된다. 또한 Go를 알면 실제로 k8s 아키텍쳐가 어떻게 돌아가고 동작하는지를 Code Level로도 파악할 수 있다. Golang(구글에서 개발)의 장점을 알아보자.Golang은 일단 Compile Language로서 C언어처럼 Machine Language로 Compile 과정을 통해 컴파일이 되어 Executable file로 생성이 되게 되어 Interpreter 언어에 비해 실행 속도가 빠르다.또한 Golang은 Java와는 다르게 Runtime이 필요없이 Binary file로 곧바로 배포가 되기 때문에 배포 속도도 빠르게 된다. 뿐만 아니라 Golang은 Go.. 2024. 7. 3.
[Serverless With Golang] 3. AWS Services for Serverless Service TABLE OF CONTENTS 1. What is the example of serverless web application?Serverless Framework로 만들어지는 Lamda와 함께 사용되는 AWS 서비스들이 어떻게 구성되는 케이스가 있는지 살펴보자.우선 Web Application을 Serverless로 구현했을 때를 생각해보자.백엔드의 경우 가장 먼저 Router53 즉 Domain이 있는 이 Route53 서비스를 이용해서 User가 이 특정 주소로 접근을 하게 되면 뒤에 있는 API Gateway를 통해서 Lambda가 수행이 되게 되고 이 Lambda는 DynamoDB에서 Data를 가지고 와서 User에게 전달하는 형식으로 구현하게 된다.또한 Frontend같은 경우에는 Cloud.. 2024. 7. 3.
[Serverless With Golang] 2. Serverless Framework TABLE OF CONTENTS  1. Can I use framework to make serverless architecture? 우선 서버리스를 배포하기 위한 Framework가 어떤게 있는지 확인을 해주자. python 진영에서는 Zappa라는 프레임워크를 사용한다.Terraform은 IaC를 하기 위해서 만든 것이고, Serverless 프레임워크를 사용하도록 하자.Serverless Framework는 서버리스 서비스(ex, AWS Lambda)와 연결되는 서비스들(가령, AWS EventBridge나 SNS나 API Gateway)을 구성하고, 각 환경에 맞게 작성한 작성한 코드를 쉽게 배포하고 관리하기 위한 프레임워크이다.Serverless framework의 plugin으로는 python.. 2024. 7. 3.
[Serverless With Golang] 1. Serverless Architecture TABLE OF CONTENTS 1. Which skills do DevOps engineer need? 아래는 DevOps 엔지니어가 반드시 갖추어야 하는 세가지 역량이다. 업무 / 개발 과정에서 불편한 부분을 어떻게 하면 효율적이고 편하게할 자동화할 아이디어를 생각해내서 자동화를 구현까지 하는 능력Third Party SaaS Solution과 연계를 해내는 구조를 만들어서 좀 더 효율적으로 개발할 수 있는 구조를 만드는 능력. 가령, 슬랙이나 모니터링에는 Datadoc 사용DevOps 엔지니어라고 해서 단순히 인프라를 구축하고 모니터링하고 트러블 슈팅하고 배포만 하는게 아니라 자동화를 하기 위해서는 실제로 개발의 영역까지 손댈 수 있어야 한다. 즉, DevOps 엔지니어는 개발이 가장 기본적인 소양.. 2024. 7. 2.