일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- cdk
- 딥러닝
- GCP
- 마이크로서비스
- go
- nnictl
- Dataproc
- 네트워크
- 구글클라우드플랫폼
- 클라우드
- 구글 클라우드
- golang
- 도커
- docker
- Kubernest
- DataFlow
- 코세라
- 구글클라우드
- Associate
- 자격증
- 쿠버네티스
- 클라우드 자격증
- AWS #빅데이터 #분석 #데이터
- cloud
- 머신러닝
- 구글
- coursera
- aws
- 구글클라우드서밋
- Today
- Total
목록프로그래밍 (9)
JD의 블로그
구글 검색 또는 아마존 검색창에 단어를 치게 되면 검색어와 관련된 검색어를 자동으로 완성해서 보여주는 것을 찾아볼 수 있었을 것이다. 이런 기능은 많은 제품에서 중요하게 사용되는 기능이다. 여기서는 많이 이용된 검색어 k개를 자동완성하여 출력하는 시스템을 설계해 보도록 하겠다. 1단계 문제 이해 및 설계 범위 지정 1. 사용자가 입력하는 단어는 자동완성될 검색어의 첫 부분이어야 하는지 중간 부분이어도 상관없는지 물어보기 EX) 첫 부분으로 한정한다. 2. 몇 개의 자동완성 검색어가 표시되어야 하는지 물어보기 EX) 5개 3. 자동완성 검색어 5개를 고르는 기준이 무엇인지 물어보기 EX) 질의 빈도에 따라 정해지는 검색어 인기 순위를 기준으로 4. 맞춤법 검사 기능도 제공해야 하는지 물어보기 EX) 아니다..
채팅 앱이라고 했을 때 사람들이 떠올리는 것은 제각각이다. 그러니 요구사항을 확실하게 해 두는 것이 중요하다. 예를 들어 면접관이 생각하고 있는게 일대일 채팅 앱일 때 그룹 채팅 앱을 설계하면 곤란하다. 1단계 문제 이해 및 설계 범위 확정 어떤 채팅 앱을 설계하려는지 확실히 해 두는 것이 중요하다. 현재 시장에 나와있는 앱을 보면 페이스북 메신저, 위챗, 왓츠앱처럼 1:1 채팅에 집중하는 앱들이 있는가 하면 슬랙 같은 그룹 채팅에 중점을 둔 업무용 앱이나, 게임 채팅에 쓰이는 디스코드 같이 대규모 그룹의 소통과 응답지연이 낮은 음성 채팅에 집중하는 앱도 있다. 1. 1:1 채팅 앱인지 그룹 채팅 앱인지 물어보기 EX) 둘 다 지원할 수 있어야 한다. 2. 모바일 앱인지 웹 앱인지 물어보기 EX) 둘 다..
뉴스 피드란 홈 페이지 중앙에 지속적으로 업데이트되는 스토리들로, 사용자 상태 정보 업데이트, 사진, 비디오, 링크, 앱 활동, 여러분이 팔로하는 사람들, 페이지, 또는 그룹으로부터 나오는 좋아요 등을 포함한다. 비슷한 유형의 문제로 "페이스북 뉴스 피드 설계", "인스타그램 피드 설계", "트위터 타임라인 설계" 등이 있다. 1단계 문제 이해 및 설계 범위 확정 뉴스 피드 시스템을 설계하라고 했을 때 최소한 어떤 기능을 지원해야 할지는 반드시 파악해야 한다. 1. 모바일 앱을 위한 시스템인지, 웹인지 아니면 둘 다 지원해야하는지 물어보기 EX) 둘 다 지원해야 한다. 2. 중요한 기능이 어떤 것이 있는지 물어보기 EX) 사용자는 뉴스 피드 페이지에 새로운 스토리를 올릴 수 있어야 하고, 친구들이 올리는..
알림 시스템은 많은 프로그램에서 채택한 인기 있는 기능이다. 이 기능을 갖춘 애플리케이션 프로그램은 최신 뉴스, 제품 업데이트, 이벤트, 선물 등 고객에게 중요할 만한 정보를 비동기적으로 제공한다. 알림 시스템은 단순히 모바일 푸시 알림에만 한정되지 않고 SNS 메시지, 이메일, 그리고 푸시 알림 이렇게 3가지로 분류할 수 있다. 1단계 문제 이해 및 설계 범위 확정 1. 어떤 종류의 알림을 지원해야 하는지 물어보기 EX) 푸시 알림, SMS 메시지, 그리고 이메일이다. 2. 실시간 시스템이어야 하는지 물어보기 EX) soft real-time 시스템이라고 가정한다. 알림은 가능한 빨리 전달되어야 하지만 시스템에 높은 부하가 걸렸을 때 약간의 지연은 무방하다. 3. 어떤 종류의 단말을 지원해야 하는지 물..
GPU를 HPC 연산 등에 활용하면서 높은 성능 향상을 체감하는 동시에 한정된 자원을 좀 더 효율적으로 사용하는 연구도 진행중이다. 이전에는 소프트웨어적인 해결책이 연구되었지만, NVIDIA의 지원 아래 하드웨어적 특성을 고려한 해결방안들이 제시되고 있다. 스트림(Stream), 하이퍼 큐(Hyper-Q)를 거쳐서 제시된 MPS의 개념에 대해서 간단히 살펴보자. MPS란? MPS(Multi-Process Service)는 다수의 프로세스가 동시에 단일 GPU에서 실행되도록 해주는 런타임 서비스다. 이전에 활용된 동시 실행 방식을 살펴보면 스트림(Stream) CUDA 실행을 위한 비동기 객체로, 각 스트림에 속한 작업끼리 순차실행이 강제되지만 서로 다른 스트림끼리는 동시 실행이 가능한 방법이다. 디바이스..
스터디로 하고 있는 가상 면접 사례로 배우는 대규모 시스템 설계 기초를 정리한 내용이다. 웹 크롤러는 로봇 또는 스파이더라고도 부른다. 검색 엔진에서 널리 쓰는 기술로, 웹에 새로 올라오거나 갱신된 콘텐츠를 찾아내는 것이 주된 목적이다. 여기서 콘텐츠는 웹 페이지일 수도 있고, 이미지나 비디오, 또는 PDF 파일일 수 도 있다. 웹 크롤러는 몇 개 웹페이지에서 시작하여 그 링크를 따라 나가면서 새로운 콘텐츠를 수집한다. 크롤러는 다양하게 이용된다. 검색 엔진 인덱싱 크롤러의 가장 보편적인 용례다. 크롤러는 웹 페이지를 모아 검색 엔진을 위한 로컬 인덱스를 만든다. 예를 들어 Googlebot은 구글 검색 엔진이 사용하는 웹 크롤러다. 웹 아카이빙 나중에 사용할 목적으로 장기보관하기 위해 웹에서 정보를 모..