
네. 그러니 연습해 봅시다.
flex-grow는 공간이 남을 때 Flex Item이 커지는 상대적인 크기입니다. flex-shrink는 flex-grow와 반대로 공간이 부족할 때 Flex Item이 줄어드는 상대적인 크기입니다. flex-basis는 Flex Item의 초기 크기를 지정합니다. 이 세 요소를 통해 레이아웃 내 요소들이 유연하게 확장, 축소 될 수 있습니다.Promise.all은 모든 프로미스가 완료될 때까지 기다린 후 모든 결과를 배열로 반환하며, 하나라도 실패시 에러로 처리합니다. 이는 이미지 업로드와 같이 순서 상관없이 모두 완료해야 하는 경우에 적합합니다. Promise.race는 가장 먼저 완료된 프로미스의 결과를 반환하며, 네트워크 요청에 타임아웃 설정할 때 유용합니다.useReducer는 useState보다 복잡한 상태 관리가 필요한 경우에 적합합니다. 여러 액션에 따라 상태가 변화할 때, 상태 변화 로직을 리듀서 함수로 분리하여 코드의 가독성과 유지보수성을 높일 수 있습니다. 또한, useReducer는 하위 컴포넌트에 콜백 대신 상태 변경의 구체적인 로직을 숨긴 dispatch라는 매개체 역할의 함수를 전달할 수 있습니다.Object.create은 새로운 객체를 생성하면서 해당 객체의 프로토타입을 명시적으로 설정하여, 프로토타입 체인을 효과적으로 사용하게 해줍니다.Proxy API는 객체 전체에 대한 접근과 변화를 일괄적으로 감시할 수 있어 데이터를 유연하게 감시할 수 있지만, 구형 브라우저에서는 지원이 제한될 수 있습니다. Object.defineProperty는 특정 속성에 대해서만 감시를 할 수 있어, 속성을 하나씩 정의해야 하고 새 속성 추가시 감시가 되지 않아 유연성은 낮지만, 구형 브라우저와의 호환성은 좋습니다.