리액트란?
자바스크립트 파일에 HTML 같은 코드를 섞어서 넣는것 => JSX 가 필요.
선언형으로 작성, 반면 자바스크립트는 명령형으로 작성
// 기존 코드
const greet = function(name) {
return 'Hello ' + name;
};
// 화살표 코드
const greet = name => 'Hello ' + name;
(userName) => { ... }
가 아니라
userName => { ... }
라고 쓸 수 있습니다.
() => { ... } 라고 써야 옳습니다..
userName, userAge => { ... } 라고 쓰면 안 됩니다.
(userName, userAge) => { ... } 라고 써야 합니다.
//기존
number => { return number * 3;}
// 화살표
number => number * 3;
아래와 같이 오류가 생깁니다.
number => return number * 3; // 이 경우 retrun 키워드는 생략되어야 하므로, 오류가 생깁니다.
number => if (number === 2) { return 5 }; // 이 경우 if 문은 반환될 수 없으므로 오류가 생깁니다.
const hobbies = ["Sports", "Cooking", "Reading"];
const editedHobbies = hobbies.map((item) => ({ text: item }));
console.log(editedHobbies);
const { name: userName, age } = {
name: "Max",
age: 34,
};
console.log(userName);
console.log(age);
//기존
function storeOrder(order) {
localStorage.setItem('id', order.id);
localStorage.setItem('currency', order.currency);
}
// 디스트럭처링
function storeOrder({id, currency}) {
localStorage.setItem('id', id);
localStorage.setItem('currency', currency);
//배열
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const combinedArr = [...arr1, ...arr2];
// combinedArr is [1, 2, 3, 4, 5, 6]
//객체
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const combinedObj = { ...obj1, ...obj2 };
// combinedObj is { a: 1, b: 2, c: 3, d: 4 }
function sum(x, y, z) {
return x + y + z;
}
const numbers = [1, 2, 3];
console.log(sum(...numbers));
// Output: 6
//배열
const original = [1, 2, 3];
const copy = [...original];
//객체
const obj = { name: 'John', age: 30 };
const copyObj = { ...obj };
const str = "Hello";
const charArray = [...str];
// charArray is ['H', 'e', 'l', 'l', 'o']
리액트 빌드

리액트 제약사항
function App() {
return (
<main>
<Post />
<Post />
<Post />
<Post />
</main>
);
}
컴포넌트에 속성 추가하기
// 상위 구성요소
import React from 'react';
import ChildComponent from './ChildComponent';
function ParentComponent() {
return (
<div>
<h1>This is the Parent Component</h1>
<ChildComponent message="Hello from Parent!" />
</div>
);
}
export default ParentComponent;
// 하위 구성요소
import React from 'react';
function ChildComponent(props) {
return (
<div>
<h2>This is the Child Component</h2>
<p>{props.message}</p>
</div>
);
}
export default ChildComponent;

상위 요소에서 구성 요소로 전달되고 구성 요소 내에서 변경할 수 없는 props와 달리,
상태는 로컬이며 구성 요소 내에 캡슐화되어 있습니다.
외부에서는 액세스하거나 수정할 수 없습니다.
상태 업데이트는 비동기식입니다.
React는 성능상의 이유로 상태 업데이트를 일괄 처리하므로 'setState' 또는 'setCount'가 호출된 후 상태가 즉시 변경되지 않을 수 있습니다.
상태가 변경되면 구성요소가 새 상태를 반영하기 위해 다시 렌더링됩니다.
웹사이트는 어떤 상태에 있을 수 있는데, 그 상태라는게 여러개 있을 수 있다는 것.
이벤트 없이 상태를 이용할 수 있긴 하지만, 상태를 변경할때는 주로 어떤 이벤트가 발생했을 때. ex) 버튼 클릭
멘토링 QnA
컴포넌트를 스타일링 하는 방식에서 클린코드가 되지는 않아. CSS 의 본질 상 노가다 성이기 때문에.
대신 다른 자바스크립트를 깔끔하게 만드는거에 집중하는편.
고정석인 경우는 나뭇잎 가림막을 회사에서 신청해서 설치하는 사람이 있음. 좀 더 조명 밝기가 조절되어있는 테이블로 가서 한다거나
세팅이나 책상을 이동하는편. 한자리에 있으면 더 피로해져.
한시간 법칙의 이유도 눈을 쉬기하기 위함임. 그 때 눈의 피로를 풀어주는편. 눈을 감고 명상을 한다. 가볍게 눈을 감고 지금 겪고 있는 이슈를 생각해.
한시간에 5-10분만 풀어줘도 되게 좋아. 허리 건강이나 이런걸 위해서라도 물을 자주 마셔서, 잠깐씩 계속 화장실을 갔다오는편! => 모니터를 안보게되니까
점심먹고 수면실에서 30분 정도만 자도 피로가 많이 풀리는편! 만약에 야근을 하고 있을때도 명상을 하거나, 쪽잠을 자면서 쉬는편.
프레임워크는 어떤 어플리케이션의 큰 틀을 다 제공하는것. 라이브러리는 단순한 개별 기능을 제공하는 것.
라이브러리 수십개 및 백여개의 집합이 프레임워크가 되는것. 프레임워크는 어떠한 목적을 빠르게 달성하는것이 목표.
RSS 에 블로그가 노출.
요새는 잘 안해보는 재밌는 문제들에 대해서 다룸.
ex) SpringBoot Graceful Shutdown 에 대한 개념
JDBC 라이브러리 구현하기 (로우레벨에 접근하는 과정을 조금씩 섞어줌)
문제를 소개하고, 이를 해소하는 과정을 단락을 나눠서 잘 풀었음.
https://cheese10yun.github.io/
접근을 실제 성능을 측정하는데 관심이 많음.
어떠한 이론을 증명하고 확인하는.
N+1 이 발생했을 때 어떤 성능적 리스크가 있는가
퀄리티 있는 글이 뜨문뜨문 있는게 훨 좋은 접근.
성능 측정 및 분석을 가지고 내가 사용하는 패키지, DB, 비동기 구조에 대한 이해도가 높아졌어요 등등 을 이야기 하는게 매우 좋다!