월부 백엔드 엔지니어(주니어) 기술 스택관련 내용을 정리해보았습니다.
1. Language: Java17 / Kotlin
- Java 17: Java의 LTS(Long Term Support) 버전으로 안정성과 성능이 개선된 최신 기능을 제공합니다. 특히, 새로운 언어 기능(예: 패턴 매칭, Sealed 클래스 등)과 함께 성능 최적화 및 메모리 관리 개선이 이루어졌습니다. 엔터프라이즈 환경에서 주로 사용되며, JVM 기반 애플리케이션에서 강력한 성능을 발휘합니다.
- Kotlin: JetBrains가 개발한 JVM 기반 언어로, Java와 완벽하게 상호운용이 가능합니다. 더 간결하고 안전한 문법을 제공하여 코드 생산성을 높여줍니다. 특히, NullPointerException(NPE) 방지 기능이 내장되어 있어 안정성을 강화합니다. 최근 Android 앱 개발이나 서버 개발에서도 많이 사용됩니다.
2. Framework: Spring Boot
- Spring Boot: 스프링 프레임워크를 더 쉽게 사용할 수 있도록 도와주는 확장 프레임워크입니다. 최소한의 설정으로 빠르게 애플리케이션을 시작할 수 있으며, 자동 구성(Auto Configuration) 기능을 통해 개발 속도를 크게 향상시킵니다. 마이크로서비스 아키텍처나 클라우드 네이티브 애플리케이션 개발에 적합합니다.
3. Database: MySQL, Redis
- MySQL: 오픈소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 신뢰성과 성능, 확장성이 뛰어납니다. 전 세계적으로 많은 개발자와 기업들이 사용하는 데이터베이스입니다. 특히 트랜잭션 관리, 데이터 무결성 등의 기능을 잘 지원하여 웹 애플리케이션에서 널리 사용됩니다.
- Redis: 오픈소스 인메모리 데이터 구조 저장소로, 주로 캐시, 세션 관리, 실시간 분석 등에 사용됩니다. 키-값(key-value) 데이터 저장 방식으로 매우 빠른 읽기/쓰기 성능을 자랑하며, NoSQL 데이터베이스로도 활용할 수 있습니다. 특히 실시간 처리가 중요한 시스템에서 주로 사용됩니다.
4. ORM: JPA, MyBatis
- JPA (Java Persistence API): 자바 애플리케이션에서 객체 관계형 매핑(ORM)을 위한 표준 인터페이스로, 데이터베이스 테이블을 자바 객체로 매핑해줍니다. 이를 통해 데이터베이스에 대한 직접적인 SQL 코드 없이 데이터 작업을 수행할 수 있습니다. Spring Data JPA는 JPA의 확장으로, 더 간편하게 사용할 수 있도록 도와줍니다.
- MyBatis: SQL을 직접 작성하면서도 ORM처럼 사용할 수 있는 프레임워크입니다. 복잡한 SQL 쿼리를 다룰 때 JPA보다 더 유연하게 사용할 수 있으며, SQL 맵퍼로써 SQL과 자바 코드를 쉽게 연결해줍니다. 대규모 데이터베이스나 복잡한 쿼리를 사용하는 경우에 유용합니다.
5. Monitoring: Pinpoint, Sentry
- Pinpoint: 대규모 분산 시스템에서 자바 및 PHP 애플리케이션을 모니터링할 수 있는 APM(Application Performance Management) 도구입니다. 시스템의 성능 병목을 추적하고, 서비스 상태를 실시간으로 모니터링하며, 성능 저하 원인을 분석할 수 있습니다.
- Sentry: 애플리케이션에서 발생하는 오류와 예외를 실시간으로 추적하고 모니터링하는 도구입니다. 특히 에러를 상세히 분석하고 알림을 통해 개발자에게 즉각적으로 통보할 수 있어, 빠른 문제 해결이 가능합니다.
6. CI/CD: GitHub Actions
- GitHub Actions: GitHub 리포지토리와 통합된 자동화된 CI/CD 도구로, 소프트웨어 개발 파이프라인의 빌드, 테스트, 배포 과정을 자동화합니다. 개발자가 커밋하거나 PR(Pull Request)를 생성할 때마다 자동으로 빌드 및 테스트가 실행되며, 특정 조건에 맞춰 애플리케이션을 자동으로 배포할 수 있습니다.
7. Infra: AWS
- AWS (Amazon Web Services): 아마존이 제공하는 클라우드 서비스 플랫폼으로, 전 세계적으로 가장 널리 사용되는 클라우드 인프라입니다. 서버(EC2), 데이터베이스(RDS), 스토리지(S3), 네트워크 등 다양한 클라우드 컴퓨팅 서비스를 제공합니다. 확장성, 안정성, 비용 효율성 면에서 뛰어난 클라우드 솔루션입니다.
8. ETC:
- JetBrains Ultimate Edition: JetBrains에서 제공하는 고급 통합 개발 환경(IDE)으로, IntelliJ IDEA Ultimate은 자바와 코틀린을 포함한 다양한 언어와 프레임워크를 지원합니다. 개발 편의성을 높여주는 강력한 기능을 제공하며, 코드 자동 완성, 디버깅, 버전 관리 통합 등 다양한 개발 지원 도구가 포함되어 있습니다.
- GitHub: 소스 코드 관리를 위한 분산 버전 관리 시스템(Git)을 기반으로 하는 플랫폼입니다. 협업 도구로도 매우 많이 사용되며, GitHub를 통해 코드 리뷰, 이슈 관리, CI/CD 파이프라인 설정 등을 처리할 수 있습니다.
- GitCopilot: GitHub와 JetBrains에서 제공하는 인공지능 기반 코딩 도구로, 개발자가 코드를 작성하는 중에 자동으로 코드 제안을 해줍니다. 생산성을 크게 향상시키는 도구로, 특히 자주 쓰는 패턴이나 반복적인 코드를 빠르게 생성할 수 있도록 도와줍니다.
- Slack: 팀 협업 및 커뮤니케이션 도구로, 실시간 메시지, 파일 공유, 프로젝트 관리 등을 통합하여 처리할 수 있습니다. 특히 알림 시스템과 다양한 개발 도구와의 연동 기능이 뛰어납니다.
- Confluence: Atlassian에서 제공하는 문서화 및 협업 도구로, 팀원들이 프로젝트 관련 정보를 관리하고 공유하는 데 사용됩니다. 위키 형식의 문서 관리 시스템으로, 개발 문서나 프로젝트 정보, 지식 공유 등에 유용합니다.
- Jira: Atlassian에서 제공하는 이슈 및 프로젝트 관리 도구로, 소프트웨어 개발 프로젝트에서 작업 트래킹 및 관리에 매우 유용합니다. Agile 방법론을 지원하며, 스프린트 계획, 버그 트래킹, 기능 개발 관리 등을 효율적으로 수행할 수 있습니다.
-
이와 같은 기술 스택은 현대적인 웹 애플리케이션과 분산 시스템의 개발 및 운영을 매우 효율적으로 관리할 수 있도록 도와줍니다.