목록2023/12 (57)
넘치게 채우기
https://leetcode.com/problems/buy-two-chocolates/ Buy Two Chocolates - LeetCode Can you solve this real interview question? Buy Two Chocolates - You are given an integer array prices representing the prices of various chocolates in a store. You are also given a single integer money, which represents your initial amount of money. You m leetcode.com leetcode - Buy Two Chocolates 문제 유형 : 배열, 구현 문제 ..
필수 용어 색인 - 구글에서는 아는 모든 페이지를 색인에 저장한다. 구글에서 페이지의 색인을 생성했다는 말은 구글에서 페이지를 가져와서 읽고 색인에 추가하였다는 뜻이다. 크롤링 - 신규 또는 업데이트된 웹페이지를 찾는 프로세스. 구글은 링크, 사이트맵, 다른 방법으로 URL을 찾아낸다. 크롤러 - 웹에서 페이지를 크롤링한 뒤, 색인을 생성하는 자동 소프트웨어 구글봇(Googlebot) - 구글 크롤러의 이름. SEO - 검색엔진 최적화(Search Engine Optimization) 사이트가 구글에 색인되었는지 확인하는 법 site:example.com으로 검색하여 찾아낸다. 다만, 색인이 생성된 URL을 모두 반환하지는 않으니 유의하자. 사이트가 구글에 안 뜨는 경우 - 잘 연결되지 않음 - 개설된지..
시스템이 세 가지 컴포넌트(UI, 업무 규칙, 데이터베이스)로만 구성된다고 생각하기 쉽다. 몇몇 단순한 시스템에서는 이 정도로 충분하다. 하지만 대다수는 이보다 훨씬 많다. 움퍼스 사냥 게임 1972년 발매된 움퍼스 사냥을 생각해보자. 텍스트를 기반으로 하는 이 게임은 Go East 와 Shoot West와 같은 매우 단순한 명령어를 입력한다. 플레이어는 명령어를 입력하며, 컴퓨터는 플레이어가 보고, 냄새 맡고, 듣고, 경험할 것들로 응답한다. 텍스트 기반 UI는 그대로 유지하되, 게임 규칙과 UI를 분리해서 우리 제품을 여러 시장에서 다양한 언어로 발매할 수 있게 만든다고 해보자. 게임 규칙은 언어 독립적인 API를 사용해서 UI 컴포넌트와 통신할 것이고, UI는 API를 사람이 이해할 수 있는 언어로..
https://leetcode.com/problems/image-smoother/description/ Image Smoother - LeetCode Can you solve this real interview question? Image Smoother - An image smoother is a filter of the size 3 x 3 that can be applied to each cell of an image by rounding down the average of the cell and the eight surrounding cells (i.e., the average of the nin leetcode.com leetcode - Image Smoother 문제 유형 : 행렬 문제 난이도..
구글의 자동 순위 시스템은 기본적으로 사람들에게 도움을 주기 위해 제작된 유용하고 신뢰할 수 있는 정보를 인기 검색결과로 표시하도록 설계되었습니다. 크리에이터가 자신이 이러한 콘텐츠를 제작하고 있는지 평가할 수 있는 방법을 살펴보자. 콘텐츠 자체 평가하기 다음 질문을 토대로 콘텐츠를 평가하면 제작 중인 콘텐츠가 유용하고 신뢰할 수 있는지 판단하는 데 도움이 된다. 자신에게 이러한 질문을 받는 것 외에도 사이트와 관련이 없는 신뢰할 만한 사람에게 솔직한 평가를 받는 것도 좋다. 콘텐츠 및 품질 관련 질문 - 콘텐츠에서 고유한 정보나 보고, 조사, 분석 자료를 제공하는가? - 콘첸트가 주제와 관련하여 본질적이거나 완전하거나 포괄적인 설명을 제공하는가? - 콘텐츠가 뻔하지 않은 유용한 분석이나 흥미로운 정보를..
마지막 단계를 건너뛰기 부분적 경계를 생성하는 방법 하나는 독립적으로 컴파일하고 배포할 수 있는 컴포넌트를 만들기 위한 작업은 모두 수행한 후, 단일 컴포넌트에 그대로 모아만 두는 것이다. 쌍방향 인터페이스도 그 컴포넌트에 있고, 입출력 데이터 구조도 거기에 있으며, 모든 것이 완전히 준비되어 있다. 하지만 이 모두를 단일 컴포넌트로 컴파일해서 배포한다. 아무리 보아도 이처럼 부분적 경계를 만들려면 완벽한 경계를 만들 때 만큼의 코드량과 사전 설계가 필요하다. 하지만 다수의 컴포넌트를 관리하는 작업은 하지 않아도 된다. 추적을 위한 버전 번호도 없으며, 배포 관리 부담도 없다. 이 차이는 가볍지 않다. 일차원 경계 완벽한 형태의 아키텍처 경계는 양방향으로 격리된 상태를 유지해야 하므로 쌍방향 Bounda..
https://leetcode.com/problems/maximum-product-difference-between-two-pairs/description/ Maximum Product Difference Between Two Pairs - LeetCode Can you solve this real interview question? Maximum Product Difference Between Two Pairs - The product difference between two pairs (a, b) and (c, d) is defined as (a * b) - (c * d). * For example, the product difference between (5, 6) and (2, 7) is (5 *..
구글 검색 엔진에 잘 노출되려면, 우선 구글 검색이 어떻게 작동하는지에 대해 아는 것이 좋겠다. 나를 알고 적을 알면 백전백승 아니겠는가? 구글 검색엔진은 웹 크롤러를 이용한다. 웹 크롤러는 정기적으로 웹을 탐색하여 구글 색인에 추가할 페이지를 찾는다. 구글 검색결과에 표시되는 페이지의 대부분은 웹 크롤러에 의해 자동으로 추가되는 페이지다. 구글 검색의 3단계 크롤링: 크롤러라는 자동화된 프로그램을 이용하여 인터넷에서 찾은 페이지로부터 텍스트, 이미지, 동영상을 다운로드한다. 색인 생성: 페이지의 텍스트, 이미지, 동영상 파일을 분석하고, 대규모 데이터베이스인 Google 색인에 정보를 저장한다. 검색결과 게재: 사용자가 검색하면, 검색어와 관련된 정보를 반환한다. 크롤링 - 색인 생성 - 검색결과 게재..
프레젠터는 험블 객체 패턴을 따른 형태로, 아키텍처 경계를 식별하고 보호하는 데 도움이 된다. 험블 객체 패턴 험블 객체 패턴은 디자인 패턴으로, 테스트하기 어려운 행위와 테스트하기 쉬운 행위를 단위 테스트 작성자가 분리하기 쉽게 하는 방법으로 고안되었다. 아이디어는 매우 단순하다. 행위들을 두 개의 모듈 또는 클래스로 나누다. 이들 모듈 중 하나가 험블(humble)이다. 가장 기본적인 본질은 남기고, 테스트하기 어려운 행위를 모두 험블 객체로 옮긴다. 나머지 모듈에는 험블 객체에 속하지 않은, 테스트하기 쉬운 행위를 모두 옮긴다. 예를 들어 GUI의 경우 단위 테스트가 어려운데, 화면을 보면서 각 요소가 필요한 위치에 적절히 표시되었는지 검사하는 테스트는 작성하기 매우 어렵기 때문이다. 하지만 GUI..
https://leetcode.com/problems/design-a-food-rating-system/description/ Design a Food Rating System - LeetCode Can you solve this real interview question? Design a Food Rating System - Design a food rating system that can do the following: * Modify the rating of a food item listed in the system. * Return the highest-rated food item for a type of cuisine in the syst leetcode.com leetcode - Design ..