본문 바로가기

component3

스프링 스케줄러 중복 작동 주기적으로 데이터 업데이트가 필요한 작업이 있어 스케줄러 컨트롤러를 따로 뽑아내고 작업을 하는 중 문제가 발생했다. @Component @EnableScheduling public class ScheduledApplication { private static int count = 0; //실행 1초뒤 @Scheduled(fixedDelay = 1000) public void testScheduledTask() throws Exception { System.out.print("스케줄러 실행! "+ count++); System.out.println(" "+(System.currentTimeMillis()/1000)); } } 1초마다 실행되어야 할 스케줄러이지만 콘솔창은 다음과 같이 출력되었다. ... 스.. 2023. 3. 21.
리액트 useMemo와 useCallback 컴포넌트의 렌더링은 함수가 실행 될때마다 내부에 선언되어있던 변수, 함수가 매번 다시 선언됩니다. 컴포넌트는 state가 변경되거나, 부모에게서 받는 props가 변경되었을 때마다 리랜더링 됩니다. useMemo와 useCallback은 왜 사용할까? 하위 컴포넌트는 props로 넘겨 받는 인자들 중, 하나라도 변경될때마다 리랜더링 되는데, 이 때, 기본적으로 하위 컴포넌트의 모든 함수들이 실행되게 됩니다. 만약 컴포넌트 내 함수의 개수가 많고, 처리해야하는 데이터도 많아진다면 이는 성능 저하로 이루어질 수 있습니다. 이를 해결하는 방법으로 리액트는 useMemo와 useCallback의 사용을 권하고 있습니다. useMemo는 메모리제이션을 사용하여 값을 저장해놓고 useCallback을 사용하여 함수.. 2022. 5. 16.
리액트 기초 : Component 1. 컴포넌트 계속적인 div로 복잡한 html을 간결하게 정리정돈하는 도구 2. 컴포넌트 선언 방법 함수형과 클래스형이 있지만 여기서는 클래스형을 이용한다. 1) Content.js import React from "react"; import { Component } from "react"; class Content extends Component{ render(){ return( HTML HTML is HyperText Markup Language ); } } export default Content; 클래스에 React의 Component 클래스를 상속한다. Component 클래스가 가지는 render() 메서드를 구현하는데, 이 곳에 표현하고자 하는 html 요소를 리턴한다. 다은 컴포넌트에서도.. 2022. 4. 30.
반응형