전체 글

전체 글

    $(document).ready() 와 window.onload 의 차이점

    두 구문을 사용하는 이유는 다음과 같다. 자바스크립트는 인터프리터 언어이므로 DOM이 그려지기 전에자바스크립트로 특정 HTML태그(DOM)를 참조할 경우 스크립트 오류가 뜰 수 있다. 이를 해결 하기 위해 두 개의 구문이 등장하게 되었다. 둘의 차이점을 알아보자. (참고로 window.onload 는 페이지당 한번만 사용 가능하기 때문에,window.addEventListener를 사용하면 이러한 문제점을 해결할 수 있다.) $(document).ready()1. 호출 시점- DOM 트리가 로드될 때 호출2. 특징- DOM만 로드되면 바로 실행(이미지 및 외부 리소스와 무관)- 중복 사용해도 순서대로 모두 실행 window.onload1. 호출 시점- 페이지의 모든 요소들이 로드된 이후에 호출2. 특징-..

    [Log] Log4j 와 Logback

    자바에서 로깅할 때 쓰는 라이브러리로 logger, log4j, logback, slf4j 등이 있다. 그중에서 많이 쓰는 Log4j와 Logback에 대해서 알아 보자 Log4j주요 특징1. 멀티스레드 환경에서 안전2. 다양한 내보내기 기능(파일, 콘솔, 원격서버, 이메일 등)3. 6가지의 계층 로그 메시지 레벨 주요 클래스1. Logger(Category)- 실제 로그 기능을 수행- 다양한 출력 방식 지원2. Appender- 로그 출력 위치 지정3. Layout- 로그 출력 포맷 지정 로깅 레벨1. FATAL- 크리티컬한 오류2. ERROR- 일반 에러3. WARN- 에러가 아닌 경고4. INFO- 일반 정보5. DEBUG- 상세한 일반 정보6. TRACE- 경로 추적 Logbacklog4j를 바탕..

    [React] 리액트 라우터

    라우팅사용자가 웹사이트를 접근할 때, URL에 따라 서로 다른 컴포넌트를 화면에 표시해줄 수 있다. 이것을 라우팅이라고 한다.예를 들어서 사용자가 접속한 URL이 www.naver.com?mode=dark 라고 가정해보자.​경로(path): www.naver.com쿼리(query): mode=dark​경로와 쿼리 부분을 바탕으로 해당 컴포넌트를 렌더링하는 것, 이 과정을 라우팅이라고 한다.​리액트에서는 react-router 라이브러리를 이용하여 라우팅을 구현할 수 있다.​​1. 리액트 라우터 라이브러리 설치npm install react-router-dom  2. 페이지 컴포넌트 정의// Home 컴포넌트import React from 'react';const Home = () => { return ..

    [Spring] Bean 순환 참조

    [Spring] Bean 순환 참조

    먼저 순환 참조의 정의에 대해 알아보자. 위키 백과에서의 순환 참조 정의는 다음과 같다.- 참조하는 대상이 서로 물려 있어서 참조할 수 없게 되는 현상  위에서 설명한 순환 참조라는 것이 스프링에서도 일어날 수 있을까?: 물론이다.  두 개 이상의 자바 클래스가 서로의 Bean을 주입 받을 때 순환 참조 문제가 발생할 수 있다.  클래스 A -> 클래스 B, 클래스 B -> 클래스 C, 클래스 C -> 클래스 A 순으로 참조할 경우,클래스 A에 대한 Bean을 만들 때, 클래스 A는 클래스 B를 참조하므로, 클래스 B의 Bean을 먼저 생성하고,클래스 B는 클래스 C를 참조하기에, 클래스 C의 Bean을 먼저 생성하고, 클래스 C의 Bean을 생성하기 전에,클래스 C는 클래스 A를 생성하므로 먼저 클래스..

    백준 15649 (N과 M (1))

    import java.io.*; import java.util.StringTokenizer; public class Main { public static int[] arr; public static boolean[] visit; public static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.re..

    [Java] java.lang.NoSuchFieldError 에러 조치 방법

    [Java] java.lang.NoSuchFieldError 에러 조치 방법

    프로젝트를 새로 빌드하고 WAS를 구동했을 때 아래와 같은 에러 메시지가 발생했다.. java: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘com.sun.tools.javac.tree.JCTree qualid’ 구글링해보니 롬복 관련 에러라고 하는데 JDK 버전이 21이상일 경우, 롬복에서 지원하는 않는 버전이라 나오는 오류라고 한다. 하지만 프로젝트에는 JDK 17버전이 잘 설정되어 있는데 무슨 문제일까 싶었다 결국 문제는 SDK 설정을 안했었다.. 21버전으로 되어 있어서 17버전으로 변경하고 다시 빌드하니 잘 실행되었다! 경로 (단축키: Ctrl + Alt +..

    백준 2667 (단지번호붙이기)

    import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Main { static int N; // 지도의 크기 static int[][] arr; // 입력 받은 단지 static boolean[][] visited; // 단지 체크 static List result; // 단지내 집의 수 모음 static int[] dx = {1, 0, -1, 0}; static int[] dy = {0, 1, 0, -1}; static int each = 0; // 단지내 집의 수 public static void main(String args[]) throws IOExce..

    [React] 리액트 라이프 사이클

    [React] 리액트 라이프 사이클

    리액트 라이프 사이클 ​ 컴포넌트의 생명 주기 컴포넌트가 렌더링 되기전 ~ 페이지에서 사라질 때 ​ 라이프 사이클을 다루는 것이란? - 컴포넌트가 마운트, 업데이트, 언마운트 되는 일련의 프로세스를 프로그래머가 통제하는 것 - 생성자를 통해 필요한 메모리를 할당, 객체의 역할이 끝나면 소멸자를 통해 메모리를 반환 ​ 라이프 사이클의 유형 1. 생성될 때(마운트) 2. 업데이트될 때(업데이트) 3. 제거할 때(언마운트) ​ ​ - 리액트에서는 예전 방식인 클래스 방식을 사용하는 것을 지양하고 함수 방식을 사용하는 것을 권장 ​ ​ ​ 함수형 라이프사이클에 따른 useEffect 실행 useEffect(() => { console.log('componentDidMount!'); }, []) useEffect..