스팩스페이스(team 나인스팩스) 협업 규칙 정하기 - 1

joyoung·2024년 6월 16일

협업 규칙

  • 컨벤션 정하기 (코드 컨벤션, 깃 컨벤션 라이브러리)
  • 보일러 플레이트 ( 프로젝트 세팅 , 환경설정 ,공용 라이브러리 )
  • baas (backend as a service) 조사 ( 포켓베이스 , 수파베이스 , 파이어베이스)
  • 데이타 베이스 분석 ( 네이버 주식 db )

convention 컨벤션 정하기 (코드 컨벤션, 깃 컨벤션 )

convention 컨벤션이란?

컨벤션(convention)이란 용어는 cum이라는 라틴어(together를 의미)에서 con과, 라틴어 venire(to come의 의미)에서 vene이라는 말에서 유래한 것으로 '함께 와서 모이고 참석하다'의 의미를 가지고 있다. 즉 컨벤션이란 다수의 사람들이 특정한 활동을 하거나 협의하기 위해 한 장소에 모이는 회의(meeting)와 같은 의미라 할 수 있으며 전시회를 포함하는 좀 더 포괄적인 의미로 쓰이기도 한다. 콘퍼런스(Conference)라고도 한다.

next.js 컨벤션 관련 블러그 참고자료들

코드 컨벤션

  1. 폴더명

    폴더명은 기본적으로 소문자 사용
    ex) app/about/page.tsx

  2. 컴포넌트 폴더명

    컴포넌트 폴더명의 경우는 파스칼 케이스 사용
    ex) app/components/About/index.tsx
    ex) app/components/About/About.tsx

  3. 폴더 관리

    토의) style , type , container , container 등의 폴더를 사전에 생성할 것인지

  4. 파일명

    토의) 파일명의 관한 규칙 정하기

  5. 함수명

    복수 인자를 받는 함수 + List 붙이기
    ex users -> userList

  6. import alias

    import 설정을 @/ 와 같이 절대 경로로 설정
    or
    ../../ 상대 경로 설정

  7. 타입 선언

    토의) interface , type 의 적절한 사용방법

type으로 상속받는 경우

type Person = {
  name: string;
  age?: number;
  job?: string;
}
type Developer = Person & {
  skill : string[]
}

interface 사용

interface Person{
  name: string;
  age?:number;
}
interface Developer{
  name: string;
  age?:number;
  skill : string[]
}

next.js 세팅 관련

  1. 캐싱 로깅 설정


/** @type {import('next').NextConfig} */
const nextConfig = {
  logging: {
    fetches: {
      fullUrl: true,
    },
  },
};

export default nextConfig;
  1. 테스트 라이브러리

    토의) 테스트 도구 사용 유무
    jest , vitest

  2. Git Hook

    토의) Git Hook 라이브러리 husky 사용 유무
    설치 및 설명 블러그
    https://velog.io/@jiynn_12/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%ED%98%91%EC%97%85%ED%95%98%EA%B8%B0-husky

데이타 베이스 baas 선택

후보군 ( pocket base , firebase , supabase ) 알아보기

  1. pocket base 포켓베이스

일단 포켓베이스는
개발 문서 초입부터 경고메세지의 내용처럼 아직 까지는 시기상조라고 판단됨
선택지에서 최대한 배제하는 쪽으로

  1. firebase 파이어베이스

장점

  • sns 인증 지원
  • next.js 지원
  • 파이어 베이스는 json 기반 nosql 서비스
  • 파이어베이스는 사용자가 많음 (관련 문서 많음)

단점

firebase 통신 함수 학습
개발 문서가 딱딱한 느낌 읽기 어려움
nosql기반이라 페이지네이션 구축에 힘이듬

  1. supabase 수파베이스

장점

  • sns 인증 지원
  • next.js 지원
  • 수파베이스는 PostgreSQL 데이타 베이스를 사용함
  • PostgreSQL 기반 데이타베이스를 관리에 대한 경험을 얻을 수 있다

단점

  • sql 문 사용으로 러닝커브가 발생
  • 비교적 최신 기술이라 정보들이 많지 않음

데이타 베이스 분석 ( 네이버 주식 db )

이번 프로젝트에서 사용한 데이타를 살펴보기


국내 주식과 , 해외주식은 요청 url이 다름

요청 URL 주소가 다름
국내 주식은 주식명이 아닌 주식코드로 적혀 있는것을 확인

해외 주식은 주식명과 알파벳이 적용
테슬라를 예를들면 TSLA.O 와 같은 구분기호가 붙음
다른 해외 주식의 경우에도 .A-Z 식으로 되어있음

tsla 리스폰 데이타

{
    "pollingInterval": 70000,
    "datas": [
        {
            "reutersCode": "TSLA.O",
            "stockName": "테슬라",
            "symbolCode": "TSLA",
            "stockExchangeType": {
                "code": "NSQ",
                "zoneId": "EST5EDT",
                "nationType": "USA",
                "delayTime": 0,
                "startTime": "0930",
                "endTime": "1600",
                "closePriceSendTime": "2031",
                "nameKor": "나스닥 증권거래소",
                "nameEng": "NASDAQ Stock Exchange",
                "nationCode": "USA",
                "nationName": "미국",
                "name": "NASDAQ"
            },
            "closePrice": "178.01",
            "compareToPreviousClosePrice": "-4.46",
            "compareToPreviousPrice": {
                "code": "5",
                "text": "하락",
                "name": "FALLING"
            },
            "fluctuationsRatio": "-2.44",
            "tradeStopType": {
                "code": "1",
                "text": "운영.Trading",
                "name": "TRADING"
            },
            "openPrice": "185.80",
            "highPrice": "186.00",
            "lowPrice": "176.92",
            "accumulatedTradingVolume": "82,038,194",
            "accumulatedTradingValue": "147억 USD",
            "localTradedAt": "2024-06-14T16:00:00-04:00",
            "marketStatus": "CLOSE",
            "overMarketPriceInfo": {
                "tradingSessionType": "AFTER_MARKET",
                "overMarketStatus": "CLOSE",
                "overPrice": "177.62",
                "compareToPreviousPrice": {
                    "code": "5",
                    "text": "하락",
                    "name": "FALLING"
                },
                "compareToPreviousClosePrice": "-0.39",
                "fluctuationsRatio": "-0.22",
                "localTradedAt": "2024-06-14T20:00:00-04:00"
            },
            "currencyType": {
                "code": "USD",
                "text": "US dollar",
                "name": "USD"
            },
            "isinCode": "US88160R1014",
            "myDataCode": null,
            "stockEndUrl": null,
            "marketValueFull": "567,708,809,688",
            "marketValueHangeul": "5,677억 USD",
            "marketValueKrwHangeul": "788조 5,475억원"
        }
    ],
    "time": "20240616171656"
}
  • Reuters Code: TSLA.O — 테슬라의 로이터 코드
  • Stock Name: 테슬라 — 주식명
  • Symbol Code: TSLA — 주식 심볼 코드
  • ISIN Code: US88160R1014 — 국제 증권 식별 번호

Exchange Information

  • Type of Exchange: NASDAQ Stock Exchange (NASDAQ)
    • Code: NSQ — 거래소 코드
    • Time Zone: EST5EDT — 시간대
    • Country Type: USA — 국가 유형
    • Country Code: USA — 국가 코드
    • Korean Name: 나스닥 증권거래소 — 거래소 한국어 명칭
    • English Name: NASDAQ Stock Exchange — 거래소 영어 명칭

Price and Variation Information

  • Opening Price: $185.80 — 개장 가격
  • Highest Price: $186.00 — 최고 가격
  • Lowest Price: $176.92 — 최저 가격
  • Closing Price: $178.01 — 종가
  • Comparison to Previous Closing Price: $-4.46 — 전일 종가 대비
  • Fluctuation Ratio: -2.44% — 변동률
  • Price Variation: FALLING — 가격 변동 상태 (하락)

Trading Information

  • Accumulated Trading Volume: 82,038,194 — 누적 거래량
  • Accumulated Trading Value: $14.7 billion USD — 누적 거래 가치

After Market Information

  • Trading Session Type: AFTER_MARKET — 장외 거래 세션 유형
  • After Market Status: CLOSE — 장외 상태
  • After Market Price: $177.62 — 장외 가격
  • Comparison to Previous Close Price: $-0.39 — 전일 종가 대비
  • Fluctuation Ratio: -0.22% — 변동률
  • Local Traded At: 2024-06-14T20:00:00-04:00 — 거래 시간

Currency and Market Value

  • Currency Type: USD — 통화 유형
  • Full Market Value: $567.7 billion USD — 시장 가치 (전체)
  • Market Value in Korean Won: 788조 5,475억원 — 한국어 시장 가치 (원)

Additional Information

  • Local Trading Time: 2024-06-14T16:00:00-04:00 — 현지 거래 시간
  • Polling Interval: 70000 milliseconds — 데이터 폴링 간격
  • Data Provided Time: 20240616171656 — 데이터 제공 시간
profile
꾸준히

0개의 댓글