[MySQL] With 문SQL을 사용하여 대량의 데이터를 다루는 경우, 임의의 결과를 정의하고 사용하는 경우임시 테이블을 만들어 해당 테이블에 값을 저장할 수 있다. WITHwith절은 동일한 SQL이 반복되어서 사용될 때 성능을 높이기 위해 사용된다.실제로는 temp라는 임시테이블에 저장되는 가상의 테이블이다.with as ( )with절은 임시테이블을 사용하여 저장해놓은 데이터를 액세스하기 때문에, 메모리를 차지한다.여러 개의 with절을 동시에 돌리면 임시테이블에 부하가 발생해 다같이 느려진다. with절은 다음과 같은 두가지 방식이 이용된다. 1) materialize기본 with절 사용 시 적용되는 것으로 temp를 사용한다. 2) inlinetemp 테이블을 생성하지 않고 inli..
[프로그래머스][SQL][Lv02] 조건에 맞는 사원 정보 조회하기(서브쿼리) 풀이 FROM 절의 서브 쿼리를 사용하여 score 데이터가 있는 동적인 테이블을 생성한다. 먼저 사원 별로 2022년도의 평가 점수를 검색 한다. SELECT SUM(score) AS score, emp_no FROM hr_grade GROUP BY emp_no 위 쿼리를 FROM 절의 서브쿼리로 사용한 뒤, hr_employees 테이블과 임시 테이블의 emp_no가 같은 데이터만 검색할 수 있도록 조건을 걸어준다. 점수를 기준으로 내림차순으로 정렬 뒤 limit으로 1순위를 뽑아낼 수 있다. 정답 SELECT s.score, e.emp_no, emp_name, position, email FROM hr_employees ..
[MySQL] ROUND(), TRUNCATE() 숫자 데이터를 다룰 때, 소수점 자리를 처리해야하는 경우가 있다. MySQL에서 반올림과 버림 기능을 사용하기 위해 각각 ROUND()와 TRUNCATE() 함수를 사용할 수 있다. 반올림 ROUND ROUND() 함수를 사용하면 반올림을 사용할 수 있다. ROUND(소수, 나타내고 싶은 자리 수) 만약 소수점 3번째 자리에서 반올림을 하고싶다하면 다음과 같이 나타낼 수 있다. SELECT ROUND(123.4567, 2) -- 123.46 음수도 사용이 가능하다. SELECT ROUND(123.456, -1) -- 120 버림 TRUNCATE TRUNCATE() 함수를 이용하면 특정 자리 수 이하를 버릴 수 있다. TRUNCATE(숫자, 나타내고 싶은 ..
[AWS] ECR 로그인 & 빌드 및 푸쉬 ECR(Elastic Container Registry)은 AWS의 관리형 컨테이너 이미지 레지스트리 서비스다. 도커 허브와 비슷한 개념으로 보면 된다. ECR은 S3로 이미지를 관리하기 때문에 고가용성을 보장하고 IAM 인증을 통해 권한 관리가 가능하다. Docker CLI 및 AWS CLI를 통해 컨테이너 이미지를 ECR에 빌드 및 푸쉬가 가능하다. ECR에 이미지를 빌드 및 푸쉬하는 과정을 알아보자. 로그인 aws ecr get-login-password 프라이빗 ECR에 대한 권한이 있는 IAM 사용자로 위 명령어를 사용하면, 로그인이 된다. aws ecr get-login-password --region --profile mfa | docker logi..
[프로그래머스][SQL] 조건에 맞는 개발자 찾기 풀이프로그래밍 스킬 코드가 2진수로 이루어져있기 때문에비트 연산자를 사용하여 판별을 할 수 있다. & 연산자: A & B 일 때, A 비트의 값이 0이면 B 비트 값에 상관없이 0A 비트의 값이 1이면 B 비트의 값에 따라 0 또는 1A 와 B 의 비트 값이 모두 1일 때만 1 정답SELECT id, email, first_name, last_nameFROM developersWHERE skill_codes & (SELECT code FROM skillcodes WHERE name = 'Python')OR skill_codes & (SELECT code FROM skillcodes WHERE name = 'C#')ORDER BY id;
[etc] 옵시디언(obsidian) 무료로 퍼블리시 하기 옵시디언은 마크다운 형식 으로 작성 할 수 있는 노트 앱이다. 원래 노트 앱으로 노션을 사용하고 있었는데, 사내망에선 노션이 접근이 안됐다. 원노트는 너무 불편하고, 대체제를 찾다보니 옵시디언이라는 소프트웨어를 선택했다. 옵시디언은 노션과 달리 로컬 환경에 저장이되어 오프라인 환경에서도 접근이 가능했다. 마크다운 형식으로 작성하기 편하고 다양한 플러그인이 많아 좋았지만, 내가 생각한 옵시디언의 단점은 노션에 비해 다른 사람에게 공유하기가 어렵다는 점이였다. 옵시디언을 퍼블리시 하려면 유료 기능을 사용했어야 했는데 무료로 퍼블리싱하는 여러가지 방법들이 있었다. 그 중 나는 my digital garden이라는 플러그인으로 퍼블리싱을 해보기로 했다...
[Git] 로컬 브랜치를 다른 이름의 원격 브랜치로 push 일반적으로 로컬 브랜치를 같은 이름의 원격 브랜치에 push하지만, 운영중인 브랜치일땐 바로 push를 하기 쉽지가 않다. 그럴 경우 로컬 브랜치와 원격브랜치의 이름을 콜론으로 구분하여 지정하면 다른 이름의 원격 브랜치로 push가 된다. 예를 들어 로컬 브랜치의 이름이 master고, 원격 브랜치의 이름이 new-branch라고 하면 git push origin master:new-branch 다음과 같이 push 하면 된다. 만약 원격 브랜치에 new-branch라는 브랜치가 없는 경우, 자동으로 생성된다.
[AWS] Lambda Connection Handler 앞선 포스팅에서 Client VPN을 구성하고 연결하는 과정을 진행해봤다. (https://heywantodo.tistory.com/304) AWS Client VPN은 Client VPN Endpoint를 통해 접속한 Clinet들의 목록을 확인하고, 정책의 업데이트 혹은 의도하지 않은 사용자의 접속이 감지 된 경우 강제 연결 종료를 시킬 수 있는 등의 다양한 관리 기능을 제공한다. Lambda Connection Handler Lambda Connection Handler를 이용하여 추가적인 보안 정책 및 VPN 운영 정책을 관리하고 적용할 수 있다. Handler는 AWS 람다 기능을 통해 구현되며, 사전에 정책들을 검토하고 정책이 통과되었을..
[AWS] Transit Gateway AWS Transit Gateway는 중앙 허브를 통해 VPC와 온프레미스 네트워크를 연결한다. 복잡한 피어링 관계를 제거하여 네트워크를 간소화한다. 클라우드 라우터 역할을 하므로 새로운 연결을 한 번만 추가하면 된다. 글로벌 확장 시 리전 간 피어링을 사용하면 AWS 글로벌 네트워크에서 AWS Transit Gateway를 하나로 연결 할 수 있다. 데이터는 자동으로 암호화되고 퍼블릭 인터넷을 통하지 않는다. AWS TGW 사용 이점 1. 간편한 연결 : AWS TGW는 클라우드 라우터 역할을 하므로 네트워크 아키텍처가 간소화된다. 네트워크 확장 시 증가하는 연결 관리로 인한 복잡성이 발생하지 않는다. 2. 가시성 및 제어 향상 : 중앙 콘솔에서 VPC 및 엣지 ..
[AWS] Client VPN (2) aws workshop studio의 [PRD] 2024 ConntectX for Partners - Hybrid Network using AWS VPN의 lab을 정리한 내용이다 https://heywantodo.tistory.com/304 앞선 포스팅에서 Client VPN을 생성하고, 생성한 Endpoint에 대한 VPC 연결을 완료했다. 생성한 Client Endpoint에 접속하기 위해선, 관리자가 배포한 인증서와 접속 프로그램이 필요하다. 접속 프로그램은 AWS Client VPN을 사용하며, 아래 링크에서 운영체제에 맞는 프로그램을 다운 받을 수 있다. https://aws.amazon.com/ko/vpn/client-vpn-download/ AWS Cl..
[AWS] Client VPN (1) aws workshop studio의 [PRD] 2024 ConntectX for Partners - Hybrid Network using AWS VPN의 lab을 정리한 내용이다 Client VPN AWS 리소스 및 온프레미스 네트워크의 리소스에 안전하게 액세스할 수 있도록 하는 관리형 클라이언트 기반 VPN 서비스다. Client VPN에서는 OpenVPN 기반 VPN 클라이언트를 사용하여 어떤 위치에서든 리소스에 액세스할 수 있다. AWS Client VPN은 완전 관리형의 탄력적 VPN 서비스로, 사용자 요구 사항에 맞추어 자동으로 확장하거나 축소가 가능하다. 시나리오는 다음과 같다 AnyCompany는 현재 서울에 본사(headquater, HQ)를 두고있으..
[AWS] On-Premises와 AWS간의 Hybrid DNS aws workshop studio의 [PRD] 2024 ConntectX for Partners - Hybrid Network using AWS VPN의 lab을 정리한 내용이다. 시나리오는 다음과 같다. Anycompany는 On-Premises사용자들을 위해 DNS서버(Domain : anycompany.corp)가 구성되어 있습니다. AWS에는 Route53을 이용하여 DNS(awsanycompany.corp)이 구성되어 있습니다. 1) On-Premises 및 AWS 시스템간의 도메인을 통한 접속을 하고자 합니다. 2) AWS시스템에 접속할 때, IPv4주소를 기억하지 않고 Domain(awsanycompany.corp)정보를 이용..