Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
문제 https://leetcode.com/problems/find-median-from-data-stream/description/ Find Median from Data Stream - LeetCode Can you solve this real interview question? Find Median from Data Stream - The median is the middle value in an ordered integer list. If the size of the list is even, there is no middle value, and the median is the mean of the two middle values. * For exam leetcode.com 풀이 난이도: Hard ..
Python의 streamlit 라이브러리를 사용하면 간단한 구현만으로도 빠르게 웹서비스를 만들어낼 수 있다. 물론 구현과 실행이 간단하더라도 웹서비스로서 동작하려면, 서버 역할을 하는 컴퓨팅 자원에서 코드가 동작해야 한다. 이를 위해 AWS EC2를 GUI로 보여주는 Cloud9 서비스에서 간단하게 웹서비스를 동작시켜 보자. EC2에 streamlit 실행시키기 python을 설치하고 두 가지 명령어를 실행하면 바로 웹서버가 동작한다. 하지만 바로 서버 ip로 연결하면 접속이 안 될 수 있다. 이는 EC2의 네트워크 보안이 외부 접속을 기본적으로 차단하도록 생성되어 있기 때문이다. 따라서 인스턴스의 보안그룹에 들어가서, 인바운드 규칙을 자신의 ip 혹은 anywhereIPv4로 설정해 주자. strea..
AWS Lambda란? AWS Lambda는 AWS의 클라우드 Serverless 서비스이다. 서버리스(serverless)란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행할 수 있도록 하는 클라우드 네이티브 개발 모델입니다. 서버리스는 서버가 없다기보다는 추상화를 통해 신경 쓸 필요가 없어지는 것이다. 서버는 AWS가 관리하여 탄력적으로 스케일 업/다운이 진행된다. 특히, 트리거를 통해 실행되기 때문에 실행된 만큼만 비용을 지불하면 된다. 만약 대학교의 홈페이지 공지가 올라오는 것을 이벤트라고 하면, 이를 트리거로 등록하여 크롤링을 진행하여 slack 봇으로 메시지를 전달하는 lambda 코드를 작성해 보자. AWS Lambda로 학교 공지사항 크롤링하기 일단 Lambda 함수를 생성해..
문제 https://leetcode.com/problems/top-k-frequent-elements/description/ Top K Frequent Elements - LeetCode Can you solve this real interview question? Top K Frequent Elements - Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order. Example 1: Input: nums = [1,1,1,2,2,3], k = 2 Output: [1,2] leetcode.com 풀이 난이도: Medium 숫자 배열에서 가장 많..
이 글은 데이터 중심 애플리케이션 설계 서적(마틴 클레프만 저)를 읽고 정리한 내용입니다. 데이터 중심 애플리케이션 설계 : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 데이터베이스의 트레이드오프 데이터베이스가 하는 일을 단순히 하면 데이터 저장과 그 데이터를 요청 시 반환하는 일이다. 특정 workload 유형에 좋은 성능이 나게끔 조정하려면 저장소 엔진의 대략적인 이해가 필요하다. 특히 트랜잭션 workload 최적화와 분석 workload최적화 엔진은 차이가 크다. 예를 들어 동영상 데이터에서의 재생 횟수와 같이, 키당 쓰기 수가 많다면 쓰기에 느린 설계는 좋지 않을 것이다. 일반적으로 파일 추가 작업은 매우 효율적이라서, 데이터베이스들의 log들은..
이 글은 데이터 중심 애플리케이션 설계 서적(마틴 클레프만 저)를 읽고 정리한 내용입니다. 데이터 웨어하우스 대기업에서는 왜 데이터 웨어하우스를 운영할까? 그 질문에 답하기 위해서는 OLTP와 OLAP 데이터 베이스 모델의 설계 차이를 알아야 한다. 기본적으로 commercial transacation 처리에는 RDBS가 적합하다. 클라이언트가 낮은 지연시간으로 빠르고 읽고 쓰기를 가능하게 해야 한다. 이러한 온라인 트랜잭션 처리를 OLTP(Online Transcation Processing)라고 한다. 하지만 최근에 많이 거론되는 데이터 분석에는 OLTP는 적합하지 않다. 데이터 분석은 커머셜 트랜잭션과는 다르게, 수많은 데이터를 읽어 통계를 제공하는 방식이다. 이러한 사용 패턴은 온라인 OLAP(O..
문제 https://leetcode.com/problems/word-search-ii/description/ Word Search II - LeetCode Can you solve this real interview question? Word Search II - Given an m x n board of characters and a list of strings words, return all words on the board. Each word must be constructed from letters of sequentially adjacent cells, where adjacent cells are leetcode.com 풀이 난이도: Hard 단순한 접근으로는 시간초과가 발생하는 문제이다. DF..
문제 https://leetcode.com/problems/design-add-and-search-words-data-structure/ Design Add and Search Words Data Structure - LeetCode Can you solve this real interview question? Design Add and Search Words Data Structure - Design a data structure that supports adding new words and finding if a string matches any previously added string. Implement the WordDictionary class: * WordDictionar leetcode.c..
Elastic stack Elastic stack는 데이터 분석에 필요한 모든 유형의 데이터를 실시간으로 검색, 분석 및 시각화할 수 있는 Elastic 사의 오픈소스 데이터 분석 플랫폼이다. Elastic stack은 크게 4가지 기술로 구성되어 있다. Elastic Search Kibana Logstash Beat 이 중에 핵심 기술인 Elastic Search는 NOSQL을 사용하는 검색 엔진이다. 따라서 단순히 사용한다면 NOSQL DB로도 활용할 수 있지만, Elastic Search의 장점을 구조를 통해 알아보자. Elastic Search Elastic Search는 간단히만 보면 3가지로 구성된다 NOSQL Search Engine REST API elastic search는 NOSQL D..
릿코드의 문제 중에서 Trie(트라이) 또는 Prefix Tree를 구현하는 문제가 나온다. 문제 https://leetcode.com/problems/implement-trie-prefix-tree/description/ Implement Trie (Prefix Tree) - LeetCode Can you solve this real interview question? Implement Trie (Prefix Tree) - A trie [https://en.wikipedia.org/wiki/Trie] (pronounced as "try") or prefix tree is a tree data structure used to efficiently store and retrieve keys in a dat..