💜 Key Point

RDBMS, Primary Key, Foreign Key, puppeteer

💜 Today I Learned

[기술면접]

  1. RDBMS의 정규화에 대해 설명해주세요.
    관계형 데이터베이스의 설계에서 데이터를 중복 없이 효율적으로 저장하기 위한 과정이다.
    이를 통해 데이터베이스의 구조가 불필요한 중복을 최소화하고 데이터의 일관성과 무결성을 유지할 수 있게 됩니다.

  2. Primary Key, Foreign Key에 대해 설명해주세요
    Primary Key는 기본키로, 데이터베이스 테이블 내의 모든 레코드에서 고유한 아이디를 제공한다. 모든 레코드가 서로 다른 값을 가지고 있어 각 레코드를 식별할 수 있다.
    Foreign Key는 외래 키로, 다른 테이블의 기본 키를 가져와 두 테이블을 연결해주는 역할을 한다.

[최종 프로젝트]

  • 신발 데이터 가져오기
    rapid api를 이용해서 sneakers 데이터를 가져오려고 했었다. 그래서 무료 구독 후 테스트를 해봤는데 출시일의 데이터가 잘못 입력되어 있었다. 그리고 imgUrl을 통해 링크를 들어가보니 stockX에서 데이터를 가져온 것이었다.

    rapid api는 무료 구독을 할 경우 한달에 가져올 수 있는 데이터가 한정적이기 때문에 stockX에서 직접 데이터를 긁어올 수 있는 방법을 찾다가 다른 팀원분들이 puppeteer를 사용하는 것을 보고 같이 사용해봤다.
    테스트로 우선 한 페이지의 신발 이름만 가져오는 코드를 작성하였다.

    <작성 코드>
    async goScrap() {
        try {
          const browser = await puppeteer.launch({ headless: false });
          const page = await browser.newPage();
          await page.goto('https://stockx.com/search/sneakers?s=UNDER+ARMOUR');
          let arr = [];
          while (arr.length < 1) {
            const infos = await page.$$eval('.css-cp13gg', (elements) =>
              elements.map((element) => {
                const curr = element.querySelector('div .chakra-text');
                return curr ? curr.textContent.trim() : null;
              }),
            );
            arr.push(infos);
          }
          await page.close();
          await browser.close();
          return arr;
        } catch (error) {
          console.log(error);
          return error;
        }
      }

    <결과>

0개의 댓글