도도한 개발자
[TIL] 2023/08/20 본문
🐈⬛ 오늘 공부한 내용
- 수직적 규모확장 vs 수평적 규모 확장
- 데이터베이스 다중화
- 캐시와 CDN
- 메시지 큐
- 동기와 비동기
- 스프링 핵심 원리 - 빈 스코프
- 스프링 DB 1편 - JDBC 이해, 커넥션풀과 데이터소스 이해
🐾 느낀 점 & 배운 점
누누센세의 추천으로 <가상 면접 사례로 배우는 대규모 시스템 설계 기초> 책 초반부를 읽어봤다. 되게 술술 읽히고 심지어 재밌다. 읽으면서 기억하고 싶은 키워드를 위에 적어놨는데 그 중에서 메시지 큐와 비동기에 대해 구체적으로 이해하고자 따로 정리해봤다.
메시지 큐는 메시지 지향 미들웨어(MOM : Message Oriented Middleware)를 구현한 시스템으로 프로그램(프로세스) 간의 데이터를 교환할 때 사용하는 기술이다.
라고 하면 도통 무슨말인지 아직은 잘 모르겠다. 이 기술의 목적은 뭘까? 프로세스 단위로 처리하는 웹 요청에서 사용자가 많아지거나 데이터가 많아지면 요청에 대한 응답을 기다리는 수가 증가하다 나중에는 대기 시간이 지연되어 서비스가 정상적으로 되지 못하는 상황이 올 수 있다. 따라서 기존에 분산되어 있던 데이터 처리를 한 곳에 집중하면서, 메시지 브로커를 둬 필요한 프로그램에 작업을 분산시키기 위함이다.
책과 블로그에선 이메일 등록 및 비밀번호 설정 등 다양한 사례를 예로 들었는데 내가 이해한 대로 나도 사례를 생각해보았다.
인스타에 게시물을 올리면 브라우저에선 글이 등록되었다곤 하지만 바로 피드에 올라오지 않고 1~2초 후에 올라오는 것을 확인할 수 있다.
주로 시간이 오래 걸리는 대규모 작업에 유리하고, 동영상 인코딩 같은 변환 작업, 하나의 메시지를 보냈지만 여러 개의 작업이 필요한 경우 등 다양한 경우에 사용된다.
동기와 비동기라는 단어는 자주 들어봤는데 그 때마다 '그게 정확히 뭐지?'라는 의문만 가지고 찾아본 적이 없었던 것 같다. 찾아보니 그렇게 어려운 개념은 아니었다.
동기
- 데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것.
- 사용자가 데이터를 서버에게 요청한다면 그 서버가 데이터 요청에 따른 응답을 사용자에게 다시 리턴해주기 전까지 사용자는 다른 활동을 할 수 없으며 기다려야만한다.
비동기
- 데이터의 요청과 결과가 동시에 일어나지 않는 것.
- 서버에게 데이터를 요청한 후 요청에 따른 응답을 계속 기다리지 않아도 되며, 다른 외부 활동을 수행하여도되고 서버에게 다른 요청사항을 보내도 상관없다.
스프링 핵심원리는 끝냈고 이제 DB 들을 차례다. 영차영차~
💭 감정회고
오늘은 좀 살만한 날이었다. 에어컨을 틀었기 때문. 일찍 일어나겠다고 했으면서 전날에 2시에 자고 말이야,, 9시에 일어났는데 2시간 더 일찍 잤으면 7시엔 일어났을텐데 말이야,, 레벨 인터뷰는 한 목요일쯤부터 준비하면 될 것 같다(근거 없음). 그리고 옷소매 붉은 끝동 재밌다. 우리 해리 너무 귀엽다. 근데 내 감정회고는 진짜 아무말이나 끄적이는 일기 정도인 듯하다.
'TIL' 카테고리의 다른 글
[TIL] 2023/08/22 (2) | 2023.08.22 |
---|---|
[TIL] 2023/08/21 (2) | 2023.08.21 |
[TIL] 2023/08/19 (0) | 2023.08.19 |
[TIL] 2023/08/18 (0) | 2023.08.18 |
[TIL] 2023/08/17 (0) | 2023.08.17 |