분류 전체보기

·PS
문제 설명즉, a-b-c-d-e인 관계가 있는지 없는지를 확인하면 되는 문제이다. 주요 로직1. dfs 탐색 + 백트래킹초기에는 dfs로만 했는데 이러면 단순히 연결된 컴포넌트의 개수를 구하는 문제가 되고, 친구 관계를 찾지는 못한다.따라서 depth라는 변수를 통해서 깊이가 5까지 되면 해당 친구관계가 존재한다는 사실로 문제를 풀었다. 정답 코드#include using namespace std;int n,m,a,b;bool flag = false;vector adj[2005];int visited[2005];void dfs(int here, int depth){ if(depth == 5){ flag = true; return ; } visited[here] = 1; for(auto next ..
·백엔드/Database
🌿 캐시(Cache)와 캐싱(Caching)캐시(Cache)란?캐시란 원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소를 의미한다. 캐싱(Caching)이란?캐싱이란 캐시(임시 데이터 저장소)에 접근해서 데이터를 빠르게 가져오는 방식을 의미한다. 현업에서는 아래와 같이 이야기한다."이 API는 응답 속도가 너무 느린데? 이 응답 데이터는 캐싱 해두고 쓰는게 어때?" 이 말을 풀어서 이야기하면, 'API 응답 결괄르 원본 저장소보다 빠르게 가져올 수 있는 임시 데이터 저장소에 저장해두고, 빠르게 조회할 수 있게 만드는 게 어때?'라는 의미다. 🌿 데이터를 캐싱할 때 사용하는 전략Cache Aside ( = Look Aside, Lazy Loading) 전략데이터를 조회할 때 주로 사용하는 ..
·백엔드/Database
🌿 Redis 기본 명령어 익히기레디스의 조회 성능을 개선할 때 꼭 필요한 명령어 7가지에 대해서 알아보자.이 후 레디스를 쓰면서 추가적으로 필요한 기능이 있으면 그때그때 찾아서 사용하면 된다. 1) 데이터(key-value) 저장하기띄어쓰기 해서 저장하려면 쌍따옴표로 묶어주면 된다# set [key] [value]$ set day6:psj vocal$ set day6:kyp "main dancer" 2) 데이터 조회하기 (key로 value 값 조회하기)만약 없는 데이터를 조회하는 경우, nil이라고 출력된다.# get [key]$ get day6:psj$ get day6:kyp$ get day6:kyh // nil 3) 저장된 모든 key 조회하기$ keys * 4) 데이터 삭제하기 (key로 데..
·백엔드/Database
🌿 Redis 란?Redis를 인터넷에 검색하면 아래와 같다.Redis는 Remote Dictionary Server의 약자로, '키-값' 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)이다.- 위키 백과 - 조금 더 쉽게 풀어 설명하면,Redis는 데이터 처리 속도가 엄청 빠른 NoSQL 데이터베이스이다.더보기여기서 NoSQL이란, key - value의 형태로 저장하는 데이터베이스이다. Redis는 여러 장점을 가지고 있지만, 아래 장점은 무조건 기억하고 있어야 한다.Redis는 인메모리(in-memory)에 모든 데이터를 저장한다.그래서 데이터의 처리 성능이 굉장히 빠르다. MySQL과 같은 RDBMS의 데이터베이스는 대부분 디스크에..
·PS
문제 설명 간단하게 설명하자면, n명이 있을 때 두 팀(스타트와 링크)으로 나눈다. (각 팀의 인원은 한 명 이상 존재해야함, 같을 필요는 없음)각 팀별로 능력치를 구해서 그 능력치의 차이의 최솟값을 구하는 문제이다.능력치는 팀에 속한 모든 쌍의 능력치의 합이다.(즉, 1번과 2번이 속했을 때 능력치는 S(1,2) + s(2,1)이다.) 주요 로직1.팀을 나누는 모든 경우의 수에 대해서 탐색해야 한다.-> 팀을 나누는 모든 경우의 수를 구하는 방법은 비트마스킹 또는 백트래킹이 있다. 정답 코드비트마스킹#include using namespace std;int n,ret = 987654321;int arr[25][25];vector a, b;int go(vector v){ int sum = 0; for(i..
·백엔드/AWS
🌿 최소 권한의 원칙(PoLP)란?최소 권한의 원칙(PoLP, Principle of Least Privilege)이란, 무언가에 액세스할 때 필요한 최소한의 권한만 가지도록 제한하는 보안 원칙이다. 이 원칙에 따라 불필요한 권한을 제거하면, 보안 사고를 어느 정도 예방할 수 있다. 지금까지 구성한 인프라 중 Bastion Host의 보안 그룹을 살펴보자.현재 모든 IPv4에 대해 22번 포트와 80번 포트로 접속할 수 있게 허용해둔 상태이다. 즉, 어디서든 Bastion Host에 SSH로 접속할 수 있게 권한을 열어둔 상태이고, 누구든 80번 포트로 요청을 보낼 수 있게 권한을 열어둔 상태이다. 현재 최소 권한의 원칙을 지키지 않고 세팅을 하였다. 🌿 보안 그룹(Security Group)이란?..
·백엔드/AWS
🌿가용성(Availability), 시스템 이중화, 가용 영역(Availability Zone) 가용성이란 시스템이 서비스를 정상적으로 제공할 수 있는 가능성을 의미한다. 서비스에 장애가 발생할 가능성이 극히 작은 시스템을 가용성이 높은(고가용성) 시스템이라고 한다. 가용성이 높고 낮음은 서비스의 정상 가동률(%)로 표시된다.가용성 99.99%라는 경우, 99.99% 시간을 정상적으로 이용 가능한 시스템을 말한다. 가용성을 높이기 위해서는 서비스 사용 불가능 시간을 최대한 발생시키지 않게 하고, 설령 발생하더라도 그 시간을 짧게 만들어야 한다. 다운 타임을 줄이는데 가장 중요한 설계 방법 중 하나가 시스템 이중화이다. 시스템 이중화는 시스템의 일부분을 사용할 수 없게 되어도 다른 시스템을 이용하여..
·PS
문제 설명 간단히 요약하면 1번부터 N번 까지의 도시들을 모두 다 방문할 때, 외판원의 순회에 필요한 최소 비용을 찾는 문제이다. 주요 로직1. 도시의 수가 최대 10개이고, 각 행렬의 성분의 최대 값은 1,000,000이므로 비용의 최대 값은 10,000,000이다. 최소값의 초기값은 10,000,000 보다 크게 잡아야 한다.2. 백트래킹을 사용해서 모든 경우의 수에 대해서 탐색해야 한다. 정답 코드#include using namespace std;int n, ret = 987654321;int w[15][15], visited[15];void go(int num, int cnt, int sum){ if(cnt == n-1){ if(w[num][0] == 0) return ; ret = mi..
·백엔드/AWS
🌿NAT 게이트웨이란?NAT 게이트웨이는 외부 인터넷에서 서브넷으로 접근할 수는 없지만, 서브넷에서 외부 인터넷으로 접근할 수 있게 해주는 장치이다. 인터넷 게이트웨이는 '외부 인터넷 ↔ 서브넷'으로 양방향 통신이 가능하지만, NAT 게이트웨이는 '서브넷 → 외부 인터넷' 으로 단방향 통신만 가능하다. 더보기1. '외부 인터넷 → 서브넷' 방향의 통신 - 서브넷에 포함된 EC2 인스턴스의 백엔드 서버로 API 요청 - 서브넷에 포함된 EC2 인스턴스에 SSH로 접속 2. '서브넷 → 외부 인터넷' 방향의 통신 - 서브넷에 포함된 EC2 인스턴스에서 외부 API 호출 - 서브넷에 포함된 EC2 인스턴스에서 소프트웨어 설치NAT 게이트웨이를 직관적으로 설명해보자면, 내부에서 외부로만 ..
·백엔드/AWS
🌿VPC 란?VPC란 가상의 네트워크 공간(컴퓨터들끼리 서로 통신하는 공간)을 의미한다. VPC를 조금 더 직관적으로 설명을 하면 모눈종이처럼 생긴 땅덩어리라고 생각하면 된다.땅덩어리의 각각의 칸은 IP 주소를 가지고 있다. 즉, VPC는 여러 개의 IP 주소들을 가지고 있다.AWS에서 EC2, RDS, ELB의 리소스를 생성하는 순간 VPC 안에 배치된다.VPC의 크기를 정할 때는 IP 주소의 범위로 정한다.만약, 10.10.0.0 ~ 10.10.0.31까지의 범위를 사용한다고 하면, 10.10.0.0/27로 표현한다. (CIDR 표기 방식) 그렇다면 VPC를 많이 사용하는 이유는 뭘까?보안이 핵심적인 이유이다. EC2, RDS와 같은 서비스도 다른 컴퓨터와 통신을 해야하기 때문에 반드시 VPC 위에..
-minari-
'분류 전체보기' 카테고리의 글 목록