728x90
반응형
Next.js 14) 서버 컴포넌트에서 데이터 패칭
Next.js 14) 서버 컴포넌트에서 데이터 패칭
(심층)넥스트
2024.02.24 11:05
그러니까 아까의 경우에는 최상위 부모 컴포넌트가 서버 컴포넌트이고 여기서 데이터 패칭을 한 후 그걸 자식 컴포넌트로 보내고 있으니 프리랜더링이 되는 셈이다. 단지 받아온 데이터가 보이지 않았던 이유는 recoil 값을 사용하여 datas 배열을 잘라 새 배열로 만든 후, 그 값을 가져다 사용했기 때문이다. recoil은 클라이언트 컴포넌트에서만 사용할 수 있고, 그 결과 자바스크립트를 꺼둔 상태에서는 클라이언트 요소는 가져올 수 없으므로 받아온 데이터가 보이지 않았던 것. recoil 값이 없을시(렌더링이 완전히 끝나기 전에는 recoil 값을 받아올 수 없으니) default 값을 처리해주면 다시 받아온 데이터가 화면에 뜨는 것을 볼 수 있다. 자바스크립트 기능을 끄고 데이터가 한참 동안이나 화면에 보..
Next.js 14) 클라이언트 컴포넌트 아래의 서버 컴포넌트? (오늘의 삽질
Next.js 14) 클라이언트 컴포넌트 아래의 서버 컴포넌트? (오늘의 삽질
(심층)넥스트
2024.02.24 08:32
서버 컴포넌트는 서버에서 렌더링되고 클라이언트로 전달되며, 클라이언트에서는 JavaScript가 실행되지 않습니다. 반면 클라이언트 컴포넌트는 클라이언트에서 렌더링되고 JavaScript가 실행됩니다. 서버 컴포넌트 내부에 클라이언트 컴포넌트가 있는 것은 허락이 되나, 클라이언트 컴포넌트 내부에 서버 컴포넌트를 둘 수는 없습니다. (사실상 클라이언트 컴포넌트 내부에 서버 컴포넌트랍시고 "use client"를 선언하지 않고 컴포넌트를 내부에 둬도 결국 클라이언트 컴포넌트로 동작하게 되는 것 같았습니다. 그래서 제가 서버 컴포넌트라고 생각한 곳에서 async, await를 사용하여 데이터 패칭을 진행하려고 했으나, 클라이언트 컴포넌트 내부에서는 async, await를 사용할 수 없다는 에러가 떴습니다.)..
Be:Beam 외주 프로젝트 : 트러블 슈팅 1
트러블 슈팅
2024.08.28 09:58
- 리뷰 데이터를 filteredDatas state에 담아주는 과정에서 무한 렌더링 루프 발생. const reviewDatas = [ { reviewId: "2f239a47-2fec-465c-b02f-b499707a6236", userEmail: "tjttjr@naver.com", profileImg: "https://images.unsplash.com/photo-1425082661705-1834bfd09dca?q=80&w=1776&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", name: "이한울", ..
구글 소셜 로그인 구현하기
구글 소셜 로그인 구현하기
(심층)넥스트
2024.02.06 21:10
현재 나는 Next.js 14를 사용한 플레이리스트 프로젝트를 진행 중이다. 여기서 Google과 Kakao 소셜 로그인을 구현하기로 결정을 했고, 이와 관련된 여러 문서들을 찾아보았다. 구글 로그인 API의 흐름은 이러하다. 구글 로그인 창을 클라이언트에게 보여준다. => client는 로그인을 시도한다. => 동의 항목을 체크하여 네이버 API 서버에 넘긴다. => 전달 받은 정보를 가지고 구글 API 서버는 인가 코드를 발급해준다. => 인가 코드를 통해 로그인을 유지할 수 있는 토큰을 발급해준다. 나는 여기서 구글 access token이 아닌 구글 id token을 발급 받아 그거로 회원가입을 진행할 예정이다. 소셜 로그인의 경우, 각 플랫폼으로 부터 발급받은 id token을 프로젝트의 acc..
다시 시작하는 리액트 - 리액트 실무 기초 5-5 AWS S3 버킷 / 도메인 연결 / Firebase로 배포
다시 시작하는 리액트 - 리액트 실무 기초 5-5 AWS S3 버킷 / 도메인 연결 / Firebase로 배포
(심층)리액트
2023.04.17 03:30
5-5. AWS S3 버킷 / 도메인 연결 / Firebase로 배포 우리는 AWS S3와 파이어베이스, 이것들을 이용하여 총 두 번의 배포를 해볼 것임. 1. AWS S3 버킷. - S3 버킷이란? : S3(Simple Storage Service)는 단순 스토리지 서비스예요! 이미지나 파일을 저장할 수 있습니다. html, css, js 같은 정적 자원을 올리고, 정적 웹 사이트를 호스팅할 수도 있어요. 우리가 컴퓨터에 폴더 만드는 것처럼 버킷을 만들고 사용할 수 있어요! AWS를 부트캠프에서 사용한 적이 있는데, 그 뒤에 계정을 삭제해서 계정을 새로 만들기 너무 힘들더랬다...ㅋㅋㅋ 계정을 만드는 과정에서 비자 카드를 필요로 하는데 내가 비자 카드가 없다는 게 문제...ㅋㅋㅋㅋ 결국 오빠의 비자 체..
super()
(심층)자바스크립트2024.09.04 05:03super()

- Constructor constructor(생성자)를 사용하면 인스턴스화된 객체에서 다른 메소드를 호출하기 전에수행해야 하는 사용자 지정 초기화를 제공할 수 있다. Class를 new를 붙여서 (new User("John")) 인스턴스 객체로 생성하면넘겨받은 인수와 함께 constructor가 먼저 실행된다.이때 넘겨받은 인수인 John이 this.name에 할당된다.class User { constructor(name) { // 인스턴스 객체를 생성하면 constructor이 먼저 호출된다. this.name = name; } sayHi() { alert(this.name); }}let user = new User("John");user.sayHi();  - 자바스크립트에서 ..

Sub Class(Inheritance)
(심층)자바스크립트2024.09.04 04:40Sub Class(Inheritance)

- Sub Class(Inheritance) 부모 Class를 자식 Class에 확장할 수 있다.부모 Class에 있던 기능을 토대로 자식 Class를 만들 수 있는 것이다.=> 확장하기 위하여 extends 키워드를 사용하면 된다.

ES6 Classes
(심층)자바스크립트2024.09.04 04:21ES6 Classes

ES6에 나온 Class를 사용하여 더 쉽게 OOP를 구현할 수 있다.이것은 문법을 OOP 방식을 사용하지만 내부에서 prototype을 사용하여 작동한다.  생성자 함수로 객체를 만들었을 때는생성자 함수에 넣어둔 메소드가 인스턴스 객체 자체에 포함되어 있었지만,Class의 경우 Class 안에 넣어둔 메소드가 바로 프로토타입에 들어가게 된다. class Person { constructor(name, email, birthday) { this.name = name; this.email = email; this.birthday = new Date(birthday); } introduce() { return `Hello my name is ${this.name}`; }}cons..

javascript prototype
(심층)자바스크립트2024.09.04 03:43javascript prototype

let user = { name: "John", age : 45}console.log(user.name);// Johnconsole.log(user.hasOwnProperty("email"));// false - hasOwnProperty는 어디서 왔나요? 현재 user 객체 변수에는 두 개의 속성(name, age)만 있는데hasOwnProperty는 어디서 나온 것일까?(객체 내부에는 메소드가 없다.) user 객체 변수를 콘솔로 찍어보면, [[Prototype]] : Object라는 것을 확인할 수 있다.아래를 내리다보면, hasOwnProperty라는 메소드를 찾을 수 있다.그리고 우리는 이것을 가져다 사용할 수 있다.=> 모든 객체는 global Object prototype을 가지며, 이것..

OOP(Object-oriented-programming)
(심층)자바스크립트2024.09.03 17:42OOP(Object-oriented-programming)

- OOP(Object-oriented-programming)이란? 객체 지향 프로그래밍(OOP)은 Java 및 C++을 비롯한 많은 프로그래밍 언어의 기본이 되는프로그래밍 패러다임이다.객체 지향 프로그래밍은 여러 개의 독립된 단위 "객체"들의 모임으로 컴퓨터 프로그램을 파악한다.=> 객체 지향 프로그래밍은 객체들의 모임이다. 객체 지향 프로그래밍이 나오기 이전에는명령어의 목록을 나열(절차 지향)하는 기능 구현을 목적으로 작성했지만이렇게 코드를 길게 작성하다 보면 매우 알아보기 힘든 복잡한 코드가 만들어진다.그래서 하나의 문제를 해결을 위한 독립된 단위인 객체로 만들었으며,이 객체로 인해 알아보기 쉽고 재사용성이 높아졌다.  내부에 있는 것들을 모두 이해하지 못하여도사용하기를 원하는 이름의 메소드만 알면..

Event 종류
(심층)자바스크립트2024.09.03 15:38Event 종류

- Event 종류    1. Mouse Event  const submitBtn = document.querySelector(".submit-btn");const form = document.querySelector("form");const title = document.querySelector("h2");// EVENTsubmitBtn.addEventListener("click", handleEvent);submitBtn.addEventListener("dblclick", handleEvent);submitBtn.addEventListener("mousedown", handleEvent); // 요소를 클릭했을 때submitBtn.addEventListener("mouseup", handleEvent..

DOM Event
(심층)자바스크립트2024.09.03 11:47DOM Event

Q. 어떤 버튼을 클릭했을 때 어떤 액션이 일어나게 하려면 어떻게 해야 할까?  - Event Listener :마우스를 이용해서 버튼을 클릭할 때는 클릭 "이벤트"가 발생한다.이렇게 이벤트가 발생했을 때 어떠한 액션을 위한 함수를 호출하는데, 그 함수가 바로 이벤트 리스너이다.  - addEventListener() :위에서 말한 것처럼 어떠한 이벤트가 발생했을 때 이벤트 리스너를 호출하기 위해서는이벤트 리스너를 해당 객체나 요소에 등록해줘야 한다.이벤트 리스너 등록 방법을 살펴보도록 하자. 1. 자바스크립트 코드에서 프로퍼티로 등록.window.onload = function () { // 문서가 load 될 때 이 함수를 실행 let text = document.getElementById("te..

Document Object 이용해보기
(심층)자바스크립트2024.09.03 01:46Document Object 이용해보기

- Window Object window 객체는 브라우저에 의해 자동으로 생성되며 웹 브라우저의 창(window)을 나타낸다.또한 window는 브라우저의 객체이지 자바스크립트의 객체가 아니다. 이 window 객체를 이용해서1. 브라우저의 창에 대한 정보를 알 수 있고, 이 창을 제어하고 할 수 있다.2. 또한 var 키워드로 변수를 선언하거나 함수를 선언하면 이 window 객체의 프로퍼티가 된다.   - Document Object Window 객체가 브라우저 창이라고 하면document 객체는 브라우저 내에서 콘텐츠를 보여주는 웹 페이지 자체라고 할 수 있다.  이제부터 DOM 객체를 자바스크립트를 사용하여 삭제하거나 업데이트 해보도록 하겠다.아래의 코드를 사용할 것이다.  M..

DOM이란?
(심층)자바스크립트2024.08.30 19:31DOM이란?

- HTML을 이용한 화면에 UI 표현하기 브라우저에서 UI를 볼 수 있는 것은 이 HTML을 분석해서 보여줄 수 있다.이 HTML은 요소(Element)로 구성되어 있다.   - DOM이란? (Document Object Model) Window 객체 안에 Document 객체가 있다. => window.documentwindow 자체를 브라우저에서 제공하는 것이므로 window.document도 브라우저에서 제공하는 것이다.(자바스크립트 코드 안에 있지만 자바스크립트 코드가 아니다) DOM(문서 객체 모델)은 메모리에 웹 페이지 문서 구조를 트리구조로 표현해서웹 브라우저가 HTML 페이지를 인식하게 해준다. 또한 웹 페이지를 이루는 요소들을 자바스크립트가 이용할 수 있게끔브라우저가 트리구조로 만든 객..

728x90
반응형
image