전체 글 340

24.07.31 자바스크립트 팀 프로젝트

이번 프로젝트는 팀원들의 개인 프로젝트 중 하나를 골라 업그레이드 하는 것이 목표이다.이번 mvp는 아래와 같다. 메인페이지무한스크롤로 pagenum에 따라 api 요청하기검색기능과 정렬필터 제작하기 디테일페이지영화 카드를 누르면 상세 페이지로 이동하여 내용을 보여주는것리뷰를 로컬스토리지를 활용하여 작성 및 조회하는 것 4가지 조건 중 영화카드를 상세 페이지에서 보여주는 것을 내 역할로 잡았다.위 사진의 위에 부분을 진행하는 것이다.어려운 부분이 없어 금방 끝낼 것이라고 생각하여 api에서 제공해주는 유튜브 링크로위 디테일 카드에 마우스 오버를 하면 유튜브영상이 재생되는 것을 더해볼 생각이다. 현재까지 작업상황은 위와 같다.영화 id에 따라서 해당 영화의 디테일내용을 받아오는 api를 사용했으며, 아직 ..

2차 공부/TIL 2024.07.31

24.07.30 use client

use client는 hydration이 필요한 컴포넌트에서 사용된다.use client가 의미하는 것은 client단에서 js가 hydrate되어야 한다는 것이다.useclient가 사용되지 않은 컴포넌트는 서버에서 보내주고 hydration이 일어나지 않는다. use client가 사용되면 client component, 사용되지 않으면 server component인 것이다.항목클라이언트 컴포넌트 (ClientComponent)서버 컴포넌트(Server Component)실행 위치브라우저 (클라이언트)서버 (Node.js 등)데이터 페칭클라이언트 사이드 데이터 페칭 방식(fetch, axios, ...)서버 사이드 데이터 페칭 방식(getServerSideProps, getStaticProps, ...

2차 공부/TIL 2024.07.30

24.07.30 SSR , CSR의 차이 / hydration

SSR : Server Side RenderingCSR : Client Side Rendering말 그대로 SSR은 서버측에서 렌더링을 하는 것이고, CSR은 클라이언트(사용자)측에서 렌더링을 하는 것이다.  CSR : Client Side RenderingSSR : Server Side Rendering1사용자가 웹 사이트를 요청함유저가 웹 사이트를 요청함2CDN이 HTML파일과 JS접근링크를 보내줌서버가 렌더가 준비된 HTML파일을 생성함3브라우저가 HTML을 다운로드하고, JS를 다운로드함단, 이때 사용자는 사이트를 볼 수 없음(빈 화면)브라우저가 HTML을 빠르게 렌더링하지만사이트는 아직 상호작용이 불가함4브라우저가 JS를 다운로드함브라우저가 JS를 다운로드함5JS가 실행되고 data를 위한 ap..

2차 공부/TIL 2024.07.30

24.07.29 NextJs 페이지 라우팅

기존에 리액트에서는 리액트 라우터를 사용하여 페이지이동을 구현했었다.router.js에서 각 페이지 컴포넌트들을 불러들이고}>이런 식으로 엔드포인트와 어떤 컴포넌트를 사용할지 정해주었던 것 같다. 하지만 NextJs에서는 폴더와 파일하나를 생성하면 자동으로 라우팅을 해준다.app폴더에 about-us라는 폴더를 만들어주고, page.tsx파일을 만들어준다.임시 리턴데이터를 넣어주고 저장하면 자동으로 연결이 된다.엔드포인트를 폴더명으로하고, 안에 UI로 작동할 page.tsx를 만들면 자동으로 연결이 되는 것이다.  about-us/company/sales/page.tsx를 생성했을때는/about-us/company/sales의 엔드포인트를 갖는 페이지가 생성되는 것이다.이때 company에는 page.t..

2차 공부/TIL 2024.07.29

24.07.29 Nextjs로 리액트프로젝트 생성하기

1. 프로젝트를 진행할 폴더를 생성한다.2. 해당 폴더를 vscode로 연다. 3. 아래 코드를 터미널에 입력하여 package.json파일을 생성한다.npm init -y 4. react, next, react-dom 설치npm install react@latest next@latest react-dom@latest 5. pakage.json 수정{ "name": "nextprac", "version": "1.0.0", "main": "index.js", "scripts": { "dev": "next dev" }, "keywords": [], "author": "", "license": "MIT", "description": "", "d..

2차 공부/TIL 2024.07.29

24.07.26 영화검색페이지 리팩토링하기

이러한 페이지를 만들었다.영화데이터 제공 openapi를 사용하여 페이지 진입 시 영화데이터를 불러온다.불러온 데이터 중 원하는 키워드를 검색하여 해당 키워드가 '제목'에 있는 영화들만 보이도록한다.import { getMoviesFunc } from "./getMoviesFunc.js";import { movieCardsFunc } from "./movieCardsFunc.js";import { addEvent } from "./addEvent.js";import { searchMovie } from "./searchMovie.js";import { observer } from "./observer.js";observer();getMoviesFunc().then((res) => { movieCar..

2차 공부/TIL 2024.07.26

24.07.25 클로저

클로저 : 함수와 그 함수가 선언된 렉시컬 환경과의 조합 const x = 1;// innerFunc()에서는 outerFunc()의 x에 접근할 수 없죠.// Lexical Scope를 따르는 프로그래밍 언어이기 때문function outerFunc() { const x = 10; innerFunc(); // 1}function innerFunc() { console.log(x); // 1}outerFunc();출력은 1이 나온다. outerFunc 안에 x가 10으로 할당되어있고, 그곳에서 innerFunc를 실행했기 때문에 10이 출력될 것이라고 생각할 수도 있지만, JS엔진은 함수를 어디서 '호출'했는지가 아니라, 어디에 '정의'했는지에 따라 스코프를 결정하기 때문이다.이를 어휘적..

2차 공부/TIL 2024.07.25

24.07.25 클래스

클래스와 인스턴스클래스 - 학교에서 다양한 종류의 책상을 만드는 설계도, 설계도를 보면 어떤 종류의 책상을 만들 수 있는지, 책상의 특징은 무엇인지 알 수 있다.인스턴스 - 설계도를 보고 만들어진 실제 책상, 모양/크기/색상/재료 등 설계도에 따라 만들어지며 모두 다른 인스턴스가 된다. // 클래스라는 설계도를 만들어 봅시다.class Person { //사람이기 때문에 필수요소를 name, age를 가진다. constructor(name, age) { this.name = name; this.age = age; } //이렇게 함수를 만들어두면 인스턴스를 만들 때 메서드가 들어있다. sayHello() { console.log(`${this..

2차 공부/TIL 2024.07.25

24.07.25 DOM / DOM 조작하기

1. js가 왜 생겼는데 - 브라우저에서 사용하기 위한 언어이다. - 웹 페이지를 동적으로 만들기 위해, 즉 HTML문서를 조작해서 생명력을 불어넣어주기 위해 만들어진 언어디다. 2. 웹 페이지가 뜨는 과정 - 사용자가 'www.naver.com'을 주소에 입력한다.   1. 클라이언트가 서버에게 요청(req)을 함   2. 우리가 크롬을 통해 클라이언트의 역할을 하는 것 - HTML문서를 서버로부터 수신한다.   1. 네이버 서버는 우리(=브라우저 =클라이언트)에게 응답(res)을 한다.   2. 그 응답이 HTML문서이다. - 브라우저가 HTML 파일을 해석(parsing 파싱)   1. 브라우저에는 기본적으로 렌더링 엔진이 있다. 서버가 클라이언트에게 준 HTML문서를 렌더링 한다.   2. 렌더링..

2차 공부/TIL 2024.07.25