AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

프론트엔드에서 풀스택으로의 전환: 아키텍처 사고법 정복

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

DevOps

대상자

프론트엔드 개발자 → 풀스택 개발자 전환을 준비하는 개발자. 중급 이상의 실무 경험을 가진 개발자에게 추천.

핵심 요약

  • 아키텍처 사고법문제 해결의 방향성트레이드오프 분석을 기반으로 한다.
  • 기능 요구사항비기능 요구사항(예: "업로드 속도 2초 이내")을 명확히 정의하여 기술적 결정을 내린다.
  • 시퀀스 다이어그램, 컴포넌트 다이어그램, 엔티티 다이어그램을 통해 서비스 간 상호작용을 시각화한다.
  • 분리된 책임(Separation of Concerns) 원칙을 적용하여 코드의 가독성확장성을 유지한다.

섹션별 세부 요약

1. 문제 정의와 제약 조건 분석

  • 사용자의 문제, 성공 기준, 예산, 시간, 팀 구성 등 제약 조건을 명확히 파악한다.
  • PRD(제품 요구사항 문서)를 분석하여 실제 요구사항기술적 결정을 연계한다.

2. 요구사항 정의

  • 기능 요구사항: "사용자가 파일을 업로드하면 XP를 얻는다."
  • 비기능 요구사항: "80%의 사용자에게 업로드 속도는 2초 이내."
  • 이 요구사항은 스토리지, 캐싱, 로드 처리 등 기술적 결정에 영향을 준다.

3. 데이터 및 상호작용 흐름 시각화

  • 시퀀스 다이어그램: 사용자 → 프론트엔드 → API → 서비스 → 데이터베이스
  • 컴포넌트 다이어그램: 인증, 캐시, 외부 서비스 등의 박스형 구조
  • 엔티티 다이어그램: 테이블 또는 문서 구조와 관계 정의
  • 이 단계는 시스템 설계의 핵심이며, 코드 작성보다 더 많은 시간을 할애해야 한다.

4. 책임 분리 원칙 적용

  • 프론트엔드에서 컴포넌트, , API 호출의 분리와 유사하게, 백엔드에서도 라우트, 서비스, 데이터베이스를 분리한다.
  • 이는 테스트 가능성코드의 확장성을 높인다.

5. 아키텍처 트레이드오프 분석

  • 모노리스 vs 마이크로서비스: 모노리스는 배포가 간단하지만 확장성에 한계, 마이크로서비스는 유연하지만 복잡성 증가.
  • SQL vs NoSQL: PostgreSQL은 구조적, MongoDB는 유연하지만 스케일링 시 검증 어려움.
  • 자체 호스팅 vs PaaS: Vercel은 빠른 배포 가능, 자체 호스팅은 DevOps 관리 필요.
  • 간단한 로직 vs 확장성: 단기적으로는 간단한 로직이 빠르지만, 장기적으로는 추상화된 모듈 설계가 유리.

결론

  • 아키텍처 사고법최적의 기술 선택을 위한 핵심이며, 현재 문제와 제약 조건을 기반으로 결정해야 한다.
  • 작은 내부 대시보드 예시에서 볼 수 있듯, 복잡한 마이크로서비스보다 간단한 모노리스가 초기에 더 효율적일 수 있다.
  • 코드는 추후 따라오고, 아키텍처 사고법기술적 결정의 핵심이다.