소프트웨어 구성도

단비·2025년 5월 21일
1
post-thumbnail

지난 날의 후기🖥️

어 음.... 너무 많은 것들을 한 번에 배우려다보니
머리가 터질 것같다 그리고 프로그램이 너무 많다..
뭐가 좋은 건지 잘 모르겠기도 하고 정보도 많이 없어서
챗지피티와... 여러 자료들의 힘을 빌렸다


네이버 카페와 비슷한 커뮤니티가 어떤 것이 있을지 생각해보았는데
레딧이 생각나서 레딧의 소프트웨어 아키텍처를 참고했다!

다른 분들이 발표하셨던 내용 정리

Web 서버

NEXT.js는 백엔드와 프론트앤드가 한꺼번에 있음
certbot + let's encrypt 이건 https에서 인증서 개념
https를 사용하려면 공인인증서가 필요하고 이걸 돈주고 구매를 하는데
돈을 주고 구매를 못하는 기업들은 let's encrypt단체를 만들어서 발급해줌
단점 - 1년마다 갱신하는데 이건 3개월마다 갱신해야함, certbot을 사용해서 자동으로 인증서를 갱신해줌
아파치보다 엔진x를 요즘 많이 사용함
WAF의 역할도 가능 (mod sequrity - 웹공격방어(Nginx의 플러그인)

DB서버

벡터DB - 이걸 사용하는게 맞음
pgBouncer - 데이터 서버에 접속할때 커텍션이 10이면 동시접속 10명까지 가능한데 이를 관리하는 도구인듯 (강사님도 잘 모르심..)
patroni - HA구성
DB는 자체적으로 리플리케이션 세팅이 가능해서 HA이 굳이 필요 없음
pgbackrest - 백업을 효율적으로해줌

WAS서버

grpc - http통신할때 데이터 양이 많은데 그거를 하나의 바이너리로 만들어서 데이터를 주고 받을 수 있도록 도와줌
was에 grpc넣었으니까 web서버에도 두면 서로 호환됨
Socket IO - 클라이언트가 서버에 리퀘스트하고 리스펀스를 받는데 이때 하는 프로토콜이 http임(http는 리퀘스트 해야지만 리스펀스를 줌 - 이게 단점) 이러면
알림을 발송해주지 못함(push 알림) 서버에서 뭐가 발생했을 때 알려주질 못함
그래서 클라이언트와 웹서버 구간에서 알림발송이 기술적으로 불가능해서 Socket IO사용(http2 표준 프로토콜)

모니터링서버

Grafana - 자빅스 시각화
프로메테우스

미디어서버

Nginx - 스트리밍서버, 미디어 처리
파일처리는 flask 하지만 다른걸로도 파일처리 가능함 찾아보기!

+CI / CD - 통합구성도에서 구성할 수 있음
bacula - 백업솔루션 (백업서버)

0개의 댓글