인프콘 2024
- 인프런 아키텍처 2024 ~ 2025
한 줄 요약
- 인프런 아키텍처 최적화와 글로벌 서비스 준비
발표 영상 상세 내용
1. 인프런 아키텍처의 현재 및 과거 리뷰
인프런의 아키텍처는 외부에서 볼 때 큰 변화가 없어 보이지만 내부적으로는 여러 개선이 이루어지고 있습니다. 과거 아키텍처는 MSA 전환 없이도 분산 복제된 환경으로 가고자 했고, 각 조직은 레거시 시스템을 복제하여 신규 시스템과 합쳐 점진적 개선을 목표로 했습니다. 그러나 이는 조직에 따라 달랐습니다. 어떤 조직은 기술 스택 전환이 이루어졌지만, 그렇지 않은 조직도 존재했습니다. 이는 글로벌 진출을 준비하면서 작은 조직이 국제화를 준비해야 했기 때문입니다.
인프런 서비스의 국제화를 위해 학습 서비스가 우선적으로 개선되었고, 모든 조직이 국제화에 참여하게 되었습니다. 이를 통해 각 조직은 자신의 제품뿐만 아니라 다른 조직의 제품까지 기술 스택 전환에 참여해야 했습니다. 이러한 과정에서 레거시 스택 전환의 속도는 조직에 따라 달라졌고, 예정된 프로젝트들은 드랍되어야 했습니다. 그러나 결과적으로는 서비스 전체의 레거시가 줄어들면서 긍정적인 변화를 맞이하게 되었습니다.
2. 국제화를 향한 인프런의 트래픽 비용 최적화
국제화를 준비하는 과정에서 인프런은 트래픽 비용을 크게 개선하는 목표를 세웠습니다. 해외 트래픽 비용을 줄이기 위해 이미지 트래픽 최적화가 중요한 과정 중 하나였습니다. 기존에 사용되던 png, jpg 이미지 포맷 대신 avif 포맷을 도입하여 이미지 크기를 대폭 줄였습니다. avif 포맷은 품질 손상 없이 고율 압축이 가능하여 트래픽 비용을 60% 이상 절감할 수 있었습니다.
또한, 제이슨 데이터의 CDN 캐싱을 통해 하루에 150GB, 한 달에 4.5TB에 달하는 트래픽을 크게 줄였습니다. 모든 페이지마다 제공되는 카테고리 정보 제이슨 데이터를 CDN 캐싱을 통해 효율적으로 관리함으로써 데이터베이스 부하를 줄였고, 엘라스틱 캐시 서버를 사용하지 않는 비용 절감 효과를 얻었습니다. 이러한 트래픽 비용 절감 노력은 국제화를 위한 기반 작업으로서 중요했습니다.
3. Next.js와 백엔드 API 프록시 설정
인프런은 Next.js를 사용하여 API 프록시 서버로 활용하며 국제화에 맞춘 아키텍처를 준비했습니다. Next.js 를 통해 외부 트래픽을 단일화하고, CSR 환경에서 API 호출을 처리하도록 설정했습니다. 그러나 분산 환경에서 Next.js 서버 외에도 다른 백엔드 서버가 API를 호출할 수 있어 세션 체크의 필요성이 대두되었습니다. 백엔드 서버 간에는 세션 체크 없이 인증 키만으로 소통하도록 설정하였고, 사용자에게 제공되는 API는 세션 체크를 통해 보안을 강화했습니다.
이를 위해 Next.js 의 Rewrite 옵션을 활용하여 API 패스를 구분하고, 클라이언트와 백엔드 간의 통신을 명확히 하는 방식을 도입했습니다. 이 과정에서 트래픽이 하는 리버스 프록시 도구를 사용하여 복잡한 라우트를 효과적으로 관리하고, 점진적으로 Next.js 로의 전환을 가능하게 했습니다. 글로벌 서비스 준비를 위한 인프라 작업을 통해 인프런은 다국어 지원을 위한 기반을 다지고 있습니다.
* 정리
avif 포맷은 고품질을 유지하면서도 저용량 파일을 제공하는 이미지 포맷으로, 웹페이지 로딩 속도를 개선하고 트래픽 비용을 절감하는 데 효과적입니다. 이는 구글을 비롯한 여러 플랫폼에서 점차 채택되고 있으며, 웹 성능 최적화의 중요한 요소로 자리 잡고 있습니다.
또한, CDN 캐싱은 정적 파일뿐만 아니라 API 응답 데이터를 효율적으로 관리할 수 있어, 서버 부하를 줄이고 응답 속도를 높이는 데 기여합니다. 이러한 기술들은 글로벌 서비스를 준비하는 과정에서 반드시 고려해야 할 요소들입니다.
'Conference' 카테고리의 다른 글
클린 스프링, 스프링 개발자를 위한 클린코드 전략(인프콘2024) (0) | 2025.01.28 |
---|---|
Spring AI, LLM(스프링캠프 2024) (0) | 2025.01.26 |