목록분류 전체보기 (768)
우노
Terraform이란? 테라폼(Terraform)은 코드로 인프라를 관리하는 IaC(Infrastructure as Code)도구입니다. IaC는 작성용이성, 재사용성, 유지보수 등의 장점을 가집니다. 하시코프(HashiCorp)가 제공하는 프로젝트 중 하나이며, AWS, Azure, GCP 같은 다양한 서비스들을 지원합니다. 하시코프는 인프라스트럭처와 관련된 다양한 오픈소스 프로젝트를 운영하는 회사입니다. 대표적으로, 개발 환경을 관리하는 Vagrant, 서비스 디스커버리 도구 Consul, 비밀 정보 관리 도구 Vault와 같은 프로젝트들이 있습니다. 테라폼은 HCL이라는 언어로 .tf 파일에 인프라스트럭쳐를 선언적으로 작성합니다. 주요 구성 요소 provider resource state local..
Terraform 및 Terraform Cloud 설정 Terraform 설치 Install | Terraform | HashiCorp Developer brew tap hashicorp/tap brew install hashicorp/tap/terraform Terraform Cloud 계정 생성 Terraform Cloud Workspace 생성 CLI-driven workflow로 생성 이를 통해, 로컬 환경에서 CLI로 작업을 진행해도, Terraform의 실질적인 실행 및 백앤드는 Terraform Cloud가 됩니다. Terraform Cloud Workspace Overview 진행 Terraform Cloud 토큰 생성 및 등록 터미널 → terraform login 명령어 입력 → yes..
문제 링크 https://leetcode.com/problems/game-play-analysis-i/description/ 풀이 각 플레이어의 첫 로그인 날짜를 출력하는 문제입니다. GROUP BY와 MIN을 사용해 해결할 수 있습니다. 코드 SELECT player_id, MIN(event_date) as first_login FROM Activity GROUP BY player_id
문제 링크 https://leetcode.com/problems/rising-temperature/ 풀이 어제의 온도보다 오늘의 온도가 더 높은 날짜를 모두 찾는 문제입니다. SELF JOIN을 사용해 해결할 수 있으며, ON 절에서, 이전 날짜와의 차이가 1일이며, 오늘의 온도가 더 높은 데이터들을 추출하면 됩니다. 코드 SELECT L.id AS 'id' FROM Weather AS L JOIN Weather AS R ON DATEDIFF(L.recordDate, R.recordDate) = 1 AND L.temperature > R.temperature
문제 링크 https://leetcode.com/problems/rank-scores/ 풀이 점수 순위를 매기는 SQL 쿼리를 작성하면 되는 문제입니다. Window Function의 DENSE_RANK()를 사용해 해결할 수 있습니다. DENSE_RANK()는, 동일값인 경우엔 동일 순위를 부여하고, 이후 순위는 연이어서 부여하는 기능입니다. 1 2 2 3 전체 쿼리는 아래와 같습니다. 전체 쿼리 SELECT score, DENSE_RANK() OVER(ORDER BY score DESC) AS 'rank' FROM Scores
문제 링크 https://leetcode.com/problems/second-highest-salary/ 풀이 두 번째로 높은 급여가 존재한다면 출력하고, 존재하지 않는다면 NULL을 출력하는 문제입니다. WHERE 절에 서브쿼리를 사용해, salary의 최대값보다 작은 salary들 중 최대값을 출력하면 됩니다. 코드 SELECT max(salary) AS SecondHighestSalary FROM Employee WHERE salary < ( SELECT max(salary) FROM Employee )
문제 링크 https://leetcode.com/problems/department-top-three-salaries/ 풀이 부서 별 급여 3순위에 드는 사원들을 출력하면 되는 문제입니다. Window Function의 DENSE_RANK와 JOIN을 사용해 해결할 수 있습니다. DENSE_RANK()는, 동일값인 경우엔 동일 순위를 부여하고, 이후 순위를 연이어서 부여하는 기능입니다. 1 2 2 3 먼저, 아래와 같은 서브쿼리를 작성합니다. SELECT id, name, salary, departmentId, DENSE_RANK() OVER(PARTITION BY departmentId ORDER BY salary DESC) AS salary_rank FROM Employee | id | name | ..
문제 링크 https://leetcode.com/problems/department-highest-salary/ 풀이 각 부서에서 급여가 가장 높은 직원을 찾는 SQL 쿼리를 작성하면 됩니다. Window Function과 JOIN을 사용해 해결할 수 있습니다. 먼저, 아래와 같은 서브쿼리를 작성합니다. SELECT id, name, salary, departmentId, MAX(salary) OVER(PARTITION BY departmentId) AS max_salary FROM Employee | id | name | salary | departmentId | max_salary | | -- | ----- | ------ | ------------ | ---------- | | 1 | Joe | 7..
문제 링크 https://leetcode.com/problems/consecutive-numbers/ 풀이 연속으로 세 번 이상 나타나는 모든 숫자를 찾는 SQL 쿼리를 작성하면 되는 문제입니다. Window Function과 LEAD를 사용해 해결할 수 있습니다. 먼저, 아래와 같은 서브쿼리를 작성합니다. SELECT num, LEAD(num, 1) over(ORDER BY id) AS next, LEAD(num, 2) over(ORDER BY id) AS nextafter FROM Logs | num | next | nextafter | | --- | ---- | --------- | | 1 | 1 | 1 | | 1 | 1 | 2 | | 1 | 2 | 1 | | 2 | 1 | 2 | | 1 | 2 |..
문제 링크 https://www.acmicpc.net/problem/3078 풀이 문제에 대한 설명이 길지만, 결국 등수의 차이가 K보다 작거나 같으면서 이름의 길이가 같은 친구 쌍이 얼마나 있는지를 찾는 문제입니다. 해당 문제는 슬라이딩 윈도우 알고리즘을 사용해 해결할 수 있습니다. 딕셔너리를 사용해, k 크기를 가지는 윈도우 내에 존재하는 학생들을 {이름 길이 : 인원} 형식으로 저장합니다. 윈도우를 오른쪽으로 한 칸씩 이동하며, 윈도우에서 빠지는 학생은 딕셔너리에서 제거하고, 윈도우에 추가되는 학생은 딕셔너리에 추가합니다. 이때, 추가되는 학생의 이름 길이와 동일한 길이가 딕셔너리에 존재한다면, 친구 쌍의 개수를 +1 해줍니다. 코드 import sys from collections import d..