728x90
알고리즘 스터디
오늘은 구현 문제이다. 구현문제는 잘못하나 놓치면 시간이 오래걸린다.
https://www.notion.so/1ef67f8e832780919652c5006290122c
https://www.acmicpc.net/problem/20165
static void f(BufferedReader br) throws Exception {
StringTokenizer st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken()) - 1;
int y = Integer.parseInt(st.nextToken()) - 1;
String d = st.nextToken();
int n = 0;
if(!visited[x][y]) n = map[x][y];
while(n > 0){
if(!visited[x][y]) {
count++;
visited[x][y] = true;
}
if(n==1 && visited[x][y]) break;
x += dx[di.get(d)];
y += dy[di.get(d)];
n--;
if(x<0 || y<0 || x>=N || y>=M) break;
if(!visited[x][y]) n = Math.max(n, map[x][y]);
}
}
n==1 일 때, 해당 부분이 이미 쓰러져있다면 다음으로 넘어갈 필요가 없기 때문에 break를 해주었다.
이부분을 찾는데 10~20분 걸렸다.
북 스터디
북스터디 첫날!
https://github.com/HI-dle/system-design-interview-book-study/issues/3
[01장]_사용자 수에 따른 규모 확장성 · Issue #3 · HI-dle/system-design-interview-book-study
발표자 페이지 발표자 비고 1~4 한지훈 단일 서버 (1p~), 데이터베이스 (4p~) 5~10 강혜주 수직적 규모 확장 vs 수평적 규모 확장 (5p~) 11~13 박지은 캐시 (11p~) 13~16 황하온 콘텐츠 전송 네트워크(CDN) (13p~)
github.com
다 같이 읽고 질문을 남긴다음 파트를 나누어 발표를 준비해 오기러 하였다.
오늘의 읽은 키워드는 규모 확장성 관련 설계에 대한 내용이 대부분이다.
- 단일 서버 - 스케일 업, 스케일 다운
- 데이터베이스 - 독립적 확장
- 데이터베이스 다중화: 주(master)-부(slave) 관계
- 로드벨런서: 부하 분산 집합(load balancing set)에 속한 웹 서버들에게 트래 픽 부하를 고르게 분산하는 역할
- 응답시간 개선
- 캐시(cache): 캐시는 값비싼 연산 결과 또는 자주 참조되는 데이터를 메모리 안에 두고, 뒤 이은 요청이 보다 빨리 처리될 수 있도록 하는 저장소\\
- 캐시할 데이터 종류, 크기, 액 세스 패턴에 맞는 캐시 전략을 선택
- 콘텐츠 전송 네트워크(Content Delivery Network, CDN): 정적 콘텐츠를 전송하는 데 쓰이는, 지리적으로 분산된 서버의 네트워크
- ex 클라우드프론트 (Cloudfront)와 아카마이(Akamai)(원본 서버는 웹 서버일 수도 있고 아마존(Amazon) S3 같은 온라인 저장소일 수 있다)
- 캐시(cache): 캐시는 값비싼 연산 결과 또는 자주 참조되는 데이터를 메모리 안에 두고, 뒤 이은 요청이 보다 빨리 처리될 수 있도록 하는 저장소\\
- 무상태 웹 계층
- 상태 정보를 보관하는 서버는 클라이언트 정보, 즉 상태를 유지하여 요청들 사이에 공유되도록 한다.
- 클라이언트로부터의 요청은 항상 같은 서버로 전송되어야 한다는 문제가 있다
- 로드밸런서 뒷단에 서버를 추가하거나 제거하기도 까다로워진다.
- 클라이언트로부터의 요청은 항상 같은 서버로 전송되어야 한다는 문제가 있다
- 무상태 아키텍처는 HTTP 요청은 어떤 웹 서버로도 전달될 수 있다.
- 웹 서버는 상태 정보가 필요할 경우 공유 저장소(shared storage)로부터 데이터를 가져온다. 따라서 상태 정보는 웹 서버로부터 물리적으로 분리되어 있다.
- 전 세계 어디서도 쾌적하게 사용할 수 있도록 하기 위해서는 여러 데이터 센터(data center)를 지원하는 것이 필수다
- 상태 정보를 보관하는 서버는 클라이언트 정보, 즉 상태를 유지하여 요청들 사이에 공유되도록 한다.
728x90
'TIL' 카테고리의 다른 글
[TIL] 2025.05.16 (금) (0) | 2025.05.17 |
---|---|
[TIL] 2025.05.15 (목) | 입력값 반복문 순서를 주의하자.. (0) | 2025.05.15 |
[TIL] 2025.05.13(화) (0) | 2025.05.13 |
[TIL] 2025.05.12 (0) | 2025.05.12 |
[TIL] 2025.03.10 서브모듈, 서브트리 (0) | 2025.03.10 |