-
Notifications
You must be signed in to change notification settings - Fork 5
BE기술 선택 근거
DinoDeveloper edited this page Dec 1, 2024
·
1 revision
-
npm
🥇- 가장 익숙하며, 압도적인 점유율로 활발한 커뮤니티 생태계에서 도움을 받을 수 있음.
-
NestJS
🥇- 가장 큰 대안인 Express에 비해 구조화된 아키텍처를 가짐. 이러한 구조는 개발자로 하여금 일관성있고 안전한 코드를 작성할 수 있는 예방책이 되고, 큰 프로젝트일 수록 이러한 예방책은 있는것이 좋다고 생각함.
- DI Container가 존재하는 프레임워크를 사용해보고 싶었음.
- JavaSpring과 가장 유사한 패턴과 구조를 가졌음. 팀원들 중 Java Spring 유경험자가 있었고, 비교적 빠른 적응을 위해 선택함.
-
Express
- 구조가 매우 간단하며, 높은 생산성을 가짐.
- 개발자가 거의 모든부분을 직접 핸들링 할 수 있음.
- 리소스가 가볍고, 빠른 성능을 보여줌.
-
TypeScript
🥇- 앞서 선택한 NestJS가 Typescript를 사용하는것을 중심으로 개발된 프레임워크임.
- 타입의 강제성을 부여하고, Interface, Enum 등 기존의 Vanilla js에는 존재하지 않는 다양한 OOP적 프로그래밍이 가능해짐.
- OOP를 따르는 것이 협업간 간편한 구조화, 높은 가독성(작업 효율성), 잘 형성되어있는 생태계 등의 이유로 타당하다고 생각함.
-
TypeORM
🥇- 전통적인 Object-Relational 매핑 방식을 가진 ORM으로, Spring의 JPA와 흡사한 구조를 가짐. (이 역시 JPA경험이 있는 캠퍼들이 있었음.)
- 여러가지 기본적인 CRUD쿼리를 위한 인터페이스를 제공함.
- Prisma가 제공하는 다양한 TypeORM의 한계점을 돌파하기 위한 부분들은, 필요성을 느낀 후 마이그레이션 해도 늦지 않다는 의견이 수립됨.
-
Prisma
- TypeORM과 같은 전통적인 ORM의 다양한 고질병(지연 로딩, 엔티티 모델 등...)을 해결하기 위해 다양한 기능들을 제공함.
- 더욱 높은 추상화 레벨로, DAO 계층에서 더 가독성 높은 코드를 작성할 수 있음.
RDBMS 자체는 어떤것을 사용해도 크게 상관없다는 의견이 주류였음.
-
MySQL
🥇- 대부분의 캠퍼가 사용해본 경험이 있는 DBMS를 사용하는 것이 6주라는 제한된 기간안에 생산성 측면에서 좋을 것이라 기대했고, 이 조건에 부합하는 것이 MySQL 뿐이었음.
-
PostgreSQL
- 논리적인 서버 분리가 가능함.
-
Redis
🥇- 다양한 데이터 타입을 지원하며, Pub/Sub 기능 역시 강력하게 지원함.
- 영속성을 지원하는 여러가지 방법이 존재함.
- 역시나 가장 안정적이고 널리 사용되는 기술이며, 많은 Best-Practice 레퍼런스들을 기대할 수 있음.
-
Naver Cloud Platform
🥇- 부스트캠프측에서 무료 크레딧을 제공함.
- 대부분의 기능을 지원하고 있음.
- 다만 비용이 조금 비싼편이라, 추후 크레딧이 모두 차감되면 AWS로 이전하자는 의견이 수립됨.
-
AWS
- 압도적인 점유율, 다양한 레퍼런스, 기술적 지원
- 비교적 저렴한 비용
-
Github Actions
🥇- Github 친화적이며, 간단한 스크립트만으로 다양한 동작들을 구현할 수 있음.
- 마켓플레이스서 다양한 액션들을 제공함.
- Github Actions를 사용해본 경험이 있는 캠퍼가 있었음.
- 비교적 다양한 커스터마이징을 제공하는 Jenkins에 비해 우리 서비스는 Github Actions 만으로도 원하는 동작을 모두 구현할 수 있으리라 생각함.
-
Jenkins
- GitHub 뿐만 아닌 다양한 SCM도구와 통합이 가능
- 전통적인 CI/CD 파이프라인 구축용 도구이며, 그에 따라 방대한 양의 레퍼런스와 커뮤니티가 존재함.
URL: https://denamu.site/
TEAM E-MAIL: boostcamp9web05@gmail.com
NOTION: team notion
FIGMA: team figma
- 🏃♂️ k8s pod 사용해보기
- 🏃♂️ Promise 동작 이해하기
- 🏃♂️ SMTP를 가볍게 알아보자
- 🏃♂️ postman test는 어떻게 하는 걸까?
- 🏃♂️ 쿠키와 보안 가볍게 이해하기
- 🏃♂️ Nest.js 이해하기
- 🏃♂️ Nest 환경에서 로깅 시스템을 구축해보자
- 🏃♂️ CI/CD 흐름 이해하기
- 🏃♂️ 인프라 흐름 이해하기
- ☄️ Single 스레드 VS Multi 스레드
- ☄️ MySQL 풀텍스트 인덱스로 검색 구현하기
- ☄️ NGINX를 사용해 프록시 서버 구축하기
- ☄️ VPC 및 Subnet을 활용한 클라우드 서버 구축
- ☄️ PM2를 사용해 여러개의 서비스를 한번에 실행하기
- 🐟 react-testing-library 기본 사용법
- 🐟 framer-motion 기본 사용법
- 🐟 SEO에 대해서 알아보자
- 🐟 여러가지 디자인 라이브러리 및 shadcn
- 🐟 웹 접근성이란?
- 🍎 Message Queue
- 🍎 Polling vs Server Sent Event vs WebSocket, QUIC
- 🍎 HTTPS
- 🍎 Redis
- 🍎 NodeJS ORM 차이점
- 🍎 외부에서 내부 DB 접속법
- 🍎 환경변수 모듈들
- 🌱 Motion과 CSS Grid의 레이아웃 차이 분석 및 PostCard 컴포넌트의 높이 불일치 해결하기
- 🌱 브라우저 팝업 차단으로 인한 문제와 해결책
- 🌱 타입을 활용해 API로 전달되는 날짜 안전하게 포맷팅하기
- 🌱 연속 실행이 필요한 비동기 작업에서의 고민
- 🌱 Server-Sent Events를 이용해 실시간으로 트렌드 게시글 표시하기
- 🌱 Fetch 기반 mock API를 axios-mock-adapter로 마이그레이션 하기
- 🌱 useInfiniteScroll hooks로 구현하는 무한 스크롤
- 🌱 이미지 lazy loading
- 🌱 clsx와 tailwind-merge로 구현하는 className 유틸리티 함수
- 🌱 우리 팀의 환경에서 적합한 패키지 매니저는 무엇일까?
- 🌱 프론트엔드 테스트 도입기
- 🌱 React Query로 상태 관리와 성능 최적화하기 1: React Query 소개
- 🌱 React Query로 상태 관리와 성능 최적화하기 2: useQuery
- 🌱 React Query로 상태 관리와 성능 최적화하기 3: useInfiniteQuery
- 🌱 React Query로 상태 관리와 성능 최적화하기 5: useQuery, useMutation 차이