백엔드 시니어 개발자의 코틀린 입문 강좌 100% 활용 후기
6년 차 백엔드 개발자가 직접 수강하고 작성한 강지회 코틀린 입문 강좌 후기입니다. 실무 관점의 장단점, 자바와의 문법 비교, 개발 팁을 구체적으로 정리했습니다.
백엔드 개발자로 6년 정도 일하다 보니 인프라에 대한 이해 없이는 진정한 코드 최적화가 불가능하다는 사실을 깨달았다. 클라우드 컴퓨팅 기술이 보편화되면서 이제 개발자에게 AWS는 선택이 아닌 필수 역량이 되었다. 여러 유료 강좌를 섭렵하며 얻은 결론은, 복잡한 아키텍처를 이해하기 전 가장 기초가 되는 EC2 인스턴스 생성부터 VPC 가상 네트워크 설계까지의 흐름을 잡는 것이 무엇보다 중요하다는 점이다. 본 포스팅에서는 실제 실무에서 마주하는 인프라 이슈와 이를 해결하기 위한 AWS 핵심 서비스 활용법을 정리했다.
AWS 리전은 전 세계에 분산된 물리적 데이터 센터의 집합이며, 가용 영역(AZ)은 리전 내에서 독립적인 전력과 네트워크를 갖춘 격리된 위치를 의미한다. 서비스의 가용성을 높이기 위해서는 반드시 다중 가용 영역에 인프라를 분산 배치해야 한다.
서울 리전(ap-northeast-2)을 기준으로 설계할 때, 하나의 AZ에 장애가 발생하더라도 서비스가 유지될 수 있도록 로드 밸런싱 설정을 병행하는 것이 일반적이다. 처음 입문할 때 흔히 하는 실수가 모든 자원을 하나의 서브넷에 몰아넣는 것인데, 이는 클라우드의 장점인 고가용성을 스스로 포기하는 행위다. 실제 서비스 운영 시에는 최소 2개 이상의 가용 영역을 활용해 아키텍처를 구성한다.
VPC(Virtual Private Cloud)는 AWS 계정 전용 가상 네트워크로, 논리적으로 격리된 환경에서 리소스를 실행할 수 있게 해준다. 퍼블릭 및 프라이빗 IP 할당을 통해 외부 접근 여부를 엄격히 통제하는 것이 보안의 시작이다.
데이터베이스(RDS)나 내부 API 서버는 프라이빗 서브넷에 배치하고, 외부 트래픽을 받는 로드 밸런서나 배스천 호스트(Bastion Host)만 퍼블릭 서브넷에 두는 구조가 표준이다. 이때 라우팅 테이블을 통해 트래픽 흐름을 제어하며, 보안 그룹 설정을 통해 특정 포트만 허용하는 최소 권한 원칙을 준수해야 한다.

EC2 인스턴스는 클라우드에서 제공하는 확장 가능한 가상 서버로, 용도에 따라 다양한 EC2 인스턴스 타입을 선택할 수 있다. CPU 최적화, 메모리 최적화 등 워크로드 특성에 맞는 타입을 선택하는 것이 비용 최적화의 핵심이다.
서버 운영 및 디버깅 과정에서 수동으로 패키지를 설치하는 것은 비효율적이다. AWS CLI 설정을 통해 터미널에서 리소스를 제어하고, 도커 컨테이너 배포 방식을 채택하여 환경 일관성을 유지하는 것을 권장한다. 아래는 기본적인 AWS CLI 구성 및 EC2 접속을 위한 예시 코드다.
# AWS CLI 프로필 설정
aws configure
# 현재 실행 중인 EC2 인스턴스 목록 확인
aws ec2 describe-instances --query 'Reservations[*].Instances[*].[InstanceId,State.Name]' --output table
IAM(Identity and Access Management)은 AWS 리소스에 대한 접근을 안전하게 제어하는 서비스로, 루트 계정 사용을 지양하고 최소 권한을 가진 IAM 사용자를 생성해 관리해야 한다. 정책(Policy)은 JSON 형태로 정의되며, 특정 S3 버킷 관리 권한이나 특정 EC2 제어 권한만을 부여할 수 있다. 보안 사고의 80% 이상이 잘못된 자격 증명 관리에서 발생한다는 점을 명심해야 한다.

AWS Lambda 서버리스는 서버를 직접 관리하지 않고도 코드를 실행할 수 있는 환경을 제공하며, API 게이트웨이와 결합하여 이벤트 기반 아키텍처를 구현하기에 적합하다. 비용 최적화 가이드 관점에서도 상시 가동 서버가 필요 없는 소규모 태스크는 Lambda가 유리하다.
데이터 관리는 RDS 데이터베이스를 활용해 자동 백업과 패치 관리를 수행하며, Route 53 DNS 관리를 통해 도메인과 인프라를 연결한다. 시스템 상태는 CloudWatch 모니터링으로 실시간 감시하며, 트래픽 급증 시 오토 스케일링이 원활히 작동하도록 임계치를 설정하는 과정이 필요하다. 6.4초 정도의 짧은 지연 시간도 사용자 경험에 큰 영향을 미치므로 성능 튜닝은 필수다.
"Continuous and weekly updates" — 인프런 강의 상세 설명 중
학습 효율을 높이기 위해 시중의 강좌들을 비교해 보았다. 특히 실습 위주의 커리큘럼이 중요한데, 아래 비교표를 참고하면 도움이 될 것이다.
| 항목 | 입문용 실습 강좌 | 공식 문서 독학 |
|---|---|---|
| 학습 속도 | 빠름 (핵심 위주) | 느림 (방대한 양) |
| 실무 적용성 | 높음 (베스트 프랙티스 위주) | 보통 (이론 중심) |
| 트러블슈팅 | 강사 가이드 제공 | 직접 구글링 필요 |

AWS 인프라 구축은 단순히 기능을 구현하는 것을 넘어, 비용 효율적이고 보안이 강화된 클라우드 아키텍처를 설계하는 과정이다. AWS 프리 티어 활용을 통해 부담 없이 실습을 시작하되, 실제 운영 환경에서는 CI/CD 파이프라인을 구축하여 배포 자동화를 실현하는 것이 시니어 개발자로 가는 지름길이다. 처음에는 VPC 구성이나 IAM 정책 설정이 낯설겠지만, 직접 삽질하며 디버깅하는 시간이 결국 실무 역량이 된다.

6년 차 백엔드 개발자가 직접 수강하고 작성한 강지회 코틀린 입문 강좌 후기입니다. 실무 관점의 장단점, 자바와의 문법 비교, 개발 팁을 구체적으로 정리했습니다.
Express.js의 한계를 느끼고 NestJS로 전환을 고민 중이신가요? 6년차 시니어 백엔드 개발자가 윤상석 강사의 강의를 수강하고 실무 아키텍처에 적용해 본 솔직한 후기와 장단점을 공유합니다.
실무 프로젝트 적용을 위해 직접 수강한 쿠버네티스 마스터 강의 리뷰입니다. 백엔드 개발자 관점에서 본 장단점, CI/CD 구축 팁, 그리고 인프라 환경 구축 노하우를 공유합니다.