Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Archives
Today
Total
관리 메뉴

heyday2024 님의 블로그

팀과제 + DB에 대해서 본문

프론트엔드 부트캠프

팀과제 + DB에 대해서

heyday2024 2024. 11. 18. 22:38

뉴스 피드 프로젝트 

오늘 팀원들과 yarn 버전 충돌로 인한 문제로 오랜 시간을 소비하게되었는데, 이 경험을 통해 코드 컨벤션 때 코드 스타일이나 파일 구조 등을 서로 맞추는 것뿐만 아니라 사용할 yarn의 버전 등을 확인하는 것도 중요하다는 것을 깨달았다.

  • 프로젝트 시작 전 팀원들과 Yarn 버전을 맞추는 것은 필수.
  • 버전 차이에 따른 의존성 문제를 방지하기 위해 반드시 협의 필요.

 

<기능구현이나 스타일을 위해 사용한 라이브러리와 관련 요소들>

 

1. react-markdown

  • 기능: Markdown 포맷으로 작성된 텍스트를 HTML로 변환 및 표시.
  • 사용 목적:
    • 뉴스 피드에서 텍스트 내용을 Markdown 형식으로 작성하여 사용자 친화적인 방식으로 렌더링.
    • 지원 기능:
      • 헤더, 리스트, 링크 등 기본 Markdown 문법.
      • 코드 블록도 렌더링 가능.

2. highlight.js

  • 기능: 코드 하이라이팅 기능 제공.
  • 사용 목적:
    • Markdown 코드 블록을 시각적으로 강조.
    • 다양한 프로그래밍 언어 지원.
    • 뉴스 피드에 추가된 코드 블록이 읽기 쉽게 표시되도록 스타일 적용.

3. Grid 활용

==> 뉴스 피드의 카드 레이아웃 구성을 위해서 사용함(한줄에 카드 2개...)

  • 목적: 반응형 디자인 구현을 위해 카드들을 그리드 형태로 정렬.
  • 구현 요소:
    • grid-template-columns: 카드들을 균등하게 나열.
    • gap: 카드 간 간격 설정.
    • media query: 화면 크기에 따라 열의 개수를 동적으로 조정.

데이터베이스 (DB)

1. 관계형 데이터베이스 (RDB)

  • 데이터를 테이블(Table) 구조로 저장하며, 행(Row)열(Column) 기반.
  • 특징:
    • 고정된 스키마 필요.
    • SQL 사용 (검색, 삽입, 수정, 삭제 작업).
    • ACID 특성 준수로 데이터 무결성과 일관성 보장.
    • 수직적 확장 (서버 성능 개선).

2. 비관계형 데이터베이스 (NoSQL)

  • 유연한 데이터 구조 지원: 문서(Document), 키-값(Key-Value), 그래프(Graph) 등.
  • 특징:
    • 스키마 유연.
    • 수평적 확장이 쉬워 대규모 데이터 처리에 유리.
    • 데이터 중복 허용.

4. RDB vs NoSQL 비교

구분관계형 데이터베이스 (RDB)비관계형 데이터베이스 (NoSQL)

데이터 구조 정형화된 테이블 구조 (행/열 기반) 유연한 데이터 구조 (문서, 키-값 등)
스키마 고정된 스키마 필요 스키마 유연
데이터 관계 테이블 간 관계 명확히 정의 관계가 없거나 간접적으로 관리
확장성 수직적 확장 수평적 확장
일관성 높은 데이터 무결성 (ACID 준수) 데이터베이스 종류에 따라 다름
사용 사례 금융, ERP 등 정확성이 중요한 시스템 빅데이터 분석, 소셜 네트워크 등

Supabase와 데이터베이스 트렌드

  • Supabase: AWS 기반으로 운영되며 비용 효율적.
    • 최근 인기가 다소 감소하는 추세.
  • 수평 확장이 대세이며, 복잡한 데이터 관계는 RDB, 단순한 데이터는 NoSQL 선택.

컨벤션 및 권장 사항

  • 테이블 이름: 복수형 사용 (e.g., users, posts).
  • 컬럼 이름: snake_case 사용 (e.g., user_id, created_at).
  • 필수 컬럼은 NOT NULL 설정해 데이터 무결성 보장.
  • 명명 규칙:
    • 함수: update_user_level, delete_inactive_users.
    • 트리거: after_insert_user.

내가 담당하는 Mypost 페이지 작업을 끝내면 다른 팀원분과 Home페이지에도 쓰일 카드에 댓글과 좋아요 기능까지 넣게 될 것 같다. 화이팅....!!