도도한 개발자

[TIL] 2023/08/20 본문

TIL

[TIL] 2023/08/20

Kiara Kim 2023. 8. 20. 23:00

🐈‍⬛ 오늘 공부한 내용

  • 수직적 규모확장 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