어 음.... 너무 많은 것들을 한 번에 배우려다보니
머리가 터질 것같다 그리고 프로그램이 너무 많다..
뭐가 좋은 건지 잘 모르겠기도 하고 정보도 많이 없어서
챗지피티와... 여러 자료들의 힘을 빌렸다
네이버 카페와 비슷한 커뮤니티가 어떤 것이 있을지 생각해보았는데
레딧이 생각나서 레딧의 소프트웨어 아키텍처를 참고했다!
NEXT.js는 백엔드와 프론트앤드가 한꺼번에 있음
certbot + let's encrypt 이건 https에서 인증서 개념
https를 사용하려면 공인인증서가 필요하고 이걸 돈주고 구매를 하는데
돈을 주고 구매를 못하는 기업들은 let's encrypt단체를 만들어서 발급해줌
단점 - 1년마다 갱신하는데 이건 3개월마다 갱신해야함, certbot을 사용해서 자동으로 인증서를 갱신해줌
아파치보다 엔진x를 요즘 많이 사용함
WAF의 역할도 가능 (mod sequrity - 웹공격방어(Nginx의 플러그인)
벡터DB - 이걸 사용하는게 맞음
pgBouncer - 데이터 서버에 접속할때 커텍션이 10이면 동시접속 10명까지 가능한데 이를 관리하는 도구인듯 (강사님도 잘 모르심..)
patroni - HA구성
DB는 자체적으로 리플리케이션 세팅이 가능해서 HA이 굳이 필요 없음
pgbackrest - 백업을 효율적으로해줌
grpc - http통신할때 데이터 양이 많은데 그거를 하나의 바이너리로 만들어서 데이터를 주고 받을 수 있도록 도와줌
was에 grpc넣었으니까 web서버에도 두면 서로 호환됨
Socket IO - 클라이언트가 서버에 리퀘스트하고 리스펀스를 받는데 이때 하는 프로토콜이 http임(http는 리퀘스트 해야지만 리스펀스를 줌 - 이게 단점) 이러면
알림을 발송해주지 못함(push 알림) 서버에서 뭐가 발생했을 때 알려주질 못함
그래서 클라이언트와 웹서버 구간에서 알림발송이 기술적으로 불가능해서 Socket IO사용(http2 표준 프로토콜)
Grafana - 자빅스 시각화
프로메테우스
Nginx - 스트리밍서버, 미디어 처리
파일처리는 flask 하지만 다른걸로도 파일처리 가능함 찾아보기!
+CI / CD - 통합구성도에서 구성할 수 있음
bacula - 백업솔루션 (백업서버)