분야 |
기술스택 |
선정이유 |
---|
Common |
TypeScript |
컴파일 타임에 에러를 검출하여 서비스 과정에서 발생할 수 있는 오류를 최소화했습니다. |
ESLint |
코딩 컨벤션에 위배되거나 안티 패턴을 미리 검출하여 에러 발생 요소를 줄였습니다. |
Prettier |
기본적인 코딩룰 적용으로 가독성 향상 및 코드 양식을 통일했습니다. |
Front-End |
React |
컴포넌트 기반의 UI 구현으로 재사용성을 높이고 상태 관리를 통해 성능을 최적화했습니다. |
Redux |
API 요청 최소화 및 컴포넌트간 공유하는 상태를 효율적으로 관리하여 리렌더링을 최적화했습니다. |
styled-components |
CSS in JS를 통해 컴포넌트와 스타일 간의 의존성을 제거하여 컴포넌트 단위의 재사용성을 향상했습니다. |
Vite |
esbuild를 통한 빠른 번들링과 HMR을 통해 생산성을 향상했습니다. |
material-UI |
안드로이드 시스템에서 검증된 신뢰성과 리액트와의 호환성을 바탕으로 생산성을 향상했습니다. |
Storybook |
공통 UI 컴포넌트 제작 시 컴포넌트를 독립적으로 만들고, 테스트하는 과정을 통해 생산성을 향상했습니다. |
Back-End |
NestJS |
Express.js 대비 낮은 자유도로 협업에 적합한 프레임워크로 판단했고, IoC, DI, AOP를 통해 유지보수성을 높였습니다. |
MariaDB |
활성화된 커뮤니티를 통해 여러 레퍼런스를 이용, 개발 중 발생하는 여러 문제들을 해결했습니다. |
TypeORM |
Raw query로 작성하는 것보다 용이하고 추후 다른 DBMS로 쉽게 전환 가능한 라이브러리로, 이를 이용해 유지보수성을 높였습니다. |
Swagger |
명확한 HTTP API 명세를 통해 프론트엔드/백엔드의 원활한 협업을 이뤘습니다. |
Passport |
OAuth2 인증 방식 적용에 용이한 라이브러리로, 서버 자체 토큰 및 42 인트라 인증에 사용했습니다. |
Infra |
nginx |
로컬 개발환경에서 리버스 프록시를 통한 프론트/백엔드 서버 라우팅으로 개발의 편의성을 높였습니다. |
AWS |
비용효율적이고 신뢰도가 높은 웹서비스로 판단, EC2/RDS/S3/CloudFront 등의 솔루션들을 사용하여 신속하고 안정적인 서비스 환경을 구성했습니다. |
PM2 |
서버 앱 프로세스의 명확한 관리와 무중단 서비스에 사용했습니다. |
Docker |
컨테이너를 통해 통일된 로컬 개발환경을 설정하여 개발의 호환성을 높였습니다. |
Github Actions |
CI/CD를 통해 테스트, 배포를 자동화하여 무중단 서비스를 지원, 효율성과 효과성을 높였습니다. |