Loading [MathJax]/jax/output/HTML-CSS/config.js

 

 

TLS Termination

원래 서버가 처리하던 TLS 암호화/복호화를 CDN 이 대신 수행하는 방식입니다. Redirect Service 는 트래픽이 매우 많고 요청이 단순하기 때문에, CDN 레이어에서 SSL 종료를 하면 서버가 암호화 작업을 하지 않아도 되어 부하를 줄일 수 있고, 글로벌 사용자 입장에서도 TLS 핸드셰이크가 CDN 엣지 서버에서 빠르게 처리되어 응답 속도도 개선됩니다. 또한, SSL 인증서 관리나 갱신을 CDN 에서 자동으로 해주기 때문에 운영 효율성도 좋아집니다.

 

사용자 ── TLS 암호화 ──> CDN (CloudFront, Fastly 등) ── HTTP 평문 ──> Redirect Service

 

Redis vs Cassandra

Redis는 key-value중심에 메모리에 들어갈 사이즈일때 효율 극대화

Cassandra는 RDB와 Redis중간정도에서 적당히 빠르고 메모리가 아닌 디스크기반이며 단순 key-value가 아니어도 SQL비슷한 느낌지원

 

Redis심화

Redis Cluster에서 채널개념

3개의 Redis server로 클러스터를 구성하면 이걸 Node라고 하는데, 

레디스키를 해시해서 어떤 노드에서 어떤 키를 처리할지 맵을 만들어서 클라이언트가 들고 있음

따라서 특정 키에 대한 처리는 특정 노드에서만 하고 클라이언트에서는 직접 이서버로 요청해서 key-value조회를 함(DNS같은것 필요없는 정적인 구조)

Pub/Sub개념

이건 Redis cluster에서는 모든 노드를 구독하지 않는한 전달이 안되서 비추,

단일노드 Redis나 Sentinel 구조에서는 kafka비슷하게 사용가능(근데 이거 키에 종속적인 개념은 아니다)

 

 

반응형

'System Architect' 카테고리의 다른 글

위임(delegate) 패턴  (0) 2024.02.17
Application  (0) 2023.10.28
graphQL  (1) 2023.10.12
gRPC  (0) 2023.10.11
시스템설계 Q&A 2  (0) 2023.09.20

 

인풋파싱

 

아래는 4개 숫자를 stdin에서 읽어오는 코드

import sys
input = sys.stdin.readline

# 입력 받기: H, W, N, M
H, W, N, M = map(int, input().split())

 

숫자하나 + 문자열리스트

3
MBC
KBS1
KBS2

인풋이 위와 같을때

import sys
input = sys.stdin.readline

# 채널의 수 N을 입력받음
N = int(input().strip())

# N개의 채널 이름을 리스트로 입력받음
channels = [input().strip() for _ in range(N)]

 

기본문법

 

기본 for루프

for y in range(H):

 

N+1개씩 건너뛰기

for y in range(0, H, N+1):  # 행을 N+1씩 건너뛰며 반복

 

 

주의사항들

 

재귀관련해서 메모아이제이션과 호출깊이가 깊을때 조정코드(N=1000이라도 아래코드 필요)

import sys
sys.setrecursionlimit(10**6)  #여기1

from functools import lru_cache
input = sys.stdin.readline

N = int(input().strip())

@lru_cache(maxsize=None) #여기2
def go(remain):
    if remain == 0:
        return False
    if not go(remain-1):
        return True
    if remain >=3 and not go(remain-3):
        return True
    return False
    
print("SK" if go(N) else "CY")
반응형

'Programming > Problem Solving' 카테고리의 다른 글

프로그래머스 - 점찍기  (0) 2025.03.09
프로그래머스 - 유사 칸토어 비트열  (0) 2025.03.09
cph  (0) 2024.07.21
double과 관련된 핸들링  (0) 2021.12.26
백준 4103 ATM  (0) 2020.05.05

단순구현부터 해봤는데 역시 TLE난다.

#include <string>
#include <vector>

using namespace std;
typedef long long ll;

// 뭐지 단순 구현문제인가.. long long이라 아닐거 같기도 하고 흠..
long long solution(int _k, int _d) {
    ll k=_k,d=_d;
    ll answer = 0;
    //일단 단순 구현해보자.
    for(ll a=0;a<1000000;a++)for(ll b=0;b<1000000;b++){
        if(k*k*a*a+k*k*b*b<=d*d) {
            //printf("(%d,%d),", a*k,b*k);
            answer++;
        }
        else break;
    }
    return answer;
}

 

 

#include <string>
#include <vector>
#include <cmath>

using namespace std;
typedef long long ll;

// 뭐지 단순 구현문제인가.. long long이라 아닐거 같기도 하고 흠..
long long solution(int _k, int _d) {
    ll k=_k,d=_d;
    ll answer = 0;
    //일단 단순 구현해보자.
    for(ll a=0;a<1000000;a++) {
        ll s = d*d-a*a*k*k;
        if(s<0) continue;
        double bb = sqrt((double)s)/(double)k;
        //if(bb<0) continue;
        //printf("%lld\n", bb);
        answer+=bb+1;
    }
    return answer;
}

이건 일부 케이스WA나네..

 

#include <string>
#include <vector>
#include <cmath>

using namespace std;
typedef long long ll;

long long solution(int _k, int _d) {
    ll k=_k,d=_d;
    ll answer = 0;
    for(ll a=0;a<=1000000;a++) {
        ll s = d*d-a*a*k*k;
        if(s<0) break;
        ll bb = sqrt(s)/k;
        answer+=bb+1;
    }
    return answer;
}

뭐지? 1000000포함안시킨거랑 double연산 때문에 WA났던거네?

double연산시 오류나는건 좀 그렇네.. 흠..

아이디어 자체는 chatGPT랑 동일하다.

 

 

#include <string>
#include <vector>
#include <cmath>

using namespace std;
typedef long long ll;

long long solution(int _k, int _d) {
    ll k=_k,d=_d;
    ll answer = 0;
    for(ll a=0;a<=1000000;a++) {
        ll s = d*d-a*a*k*k;
        if(s<0) break;
        double bb = (double)sqrt(s)/k;
        answer+=(ll)(bb+1e-9)+1;
    }
    return answer;
}

double은 위처럼 하면 되는거 보니, 형변환시 문제인거 같다. 2.0이 1.999로 되는등..

 

반응형

'Programming > Problem Solving' 카테고리의 다른 글

python 기본(PS용)  (0) 2025.03.14
프로그래머스 - 유사 칸토어 비트열  (0) 2025.03.09
cph  (0) 2024.07.21
double과 관련된 핸들링  (0) 2021.12.26
백준 4103 ATM  (0) 2020.05.05

+ Recent posts