heyday2024 님의 블로그
팀과제 + DB에 대해서 본문
뉴스 피드 프로젝트
오늘 팀원들과 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페이지에도 쓰일 카드에 댓글과 좋아요 기능까지 넣게 될 것 같다. 화이팅....!!
'프론트엔드 부트캠프' 카테고리의 다른 글
[React 심화] 인증, 인가 - 쿠키, 세션, 토큰, JWT (0) | 2024.11.27 |
---|---|
내가 만든 쿠키~~~~너를 위해 구웠지 (1) | 2024.11.25 |
클린 코드 (Clean Code) (1) | 2024.11.15 |
CORS에 대해서 (2) | 2024.11.14 |
[개인과제] 포켓몬 도감 만들 때 참고한 부분(1) (0) | 2024.11.13 |