전체 글
React Emotion Error nth-child / nth-of-type
1. react emotion 사용 중 에러 발생 - The pseudo class ":nth-child" is potentially unsafe when doing server-side rendering. Try changing it to ":nth-of-type" 2. 차이점 - nth-child(n) : 부모의 모든 자식 중 n번째 - nth-of-type(n) : 부모의 특정 자식 중 n번째 3. 이유 성능적인 문제는 아니고 SSR할 때 안전하지 않다. 스타일을 받아야 할 요소가 SSR 시 제자리에 있지 않을 경우에 제대로 된 스타일 적용되지 않습니다. 4. EX( :first-child ) import styled from "@emotion/styled"; const Text = styled.p..
Maven & Gradle
Maven & Gradle 1. 빌드 관리 도구 2. 사용성, 성능 차이 3. Gradle이 Maven보다 나중에 나오며 단점 보완 >>> Gradle 사용 가능한 환경에서 굳이 Maven 선택할 이유 X 빌드 관리 도구 - 프로젝트 내 필요 xml, properties, jar 파일들을 자동 인식 후 빌드해주는 도구 - 소스 코드 컴파일, 테스트 정적 분석 등을 하여 실행 가능한 앱으로 빌드 - 프로젝트 정보 관리, 테스트 빌드, 배포등의 작업 진행 - 외부 라이브러리 참조 자동 다운로드 / 업데이트 관리 이전에는 수동 다운로드, 버전 관리까지 직접했음 Maven - 자바의 대표 관리 도구 Ant 대체하기 위해 개발 - 프로젝트의 외부 라이브러리를 쉽게 참조하기 위해 pom.xml 파일로 명시하여 관리..

React Build Tool - vite, craco
vite 선택 이유 : build 시간의 불편을 느끼지 상대 경로에 대한 불편은 아직 없음 Bundling node_modules 용량 큼 import require 문법은 브라우저 친화적이지 않음 vite $ npm create vite@latest yarn create vite Vite 시작 프로젝트의 성장에 따라 번들링 시간이 늘어남 Webpack의 빌드 속도는 느림 빠른 이유 esbuild 를 사용하여 종속성을 미리 Bundle - 브라우저가 요청할 때 소스 코드를 변환, 제공 조건부 동적으로 가져오기에 뒤에 있는 코드는 현재 화면에서 실제로 사용되는 경우에만 처리됩니다. craco yarn add @craco/craco craco 시작 craco.config.js 파일 하나로 상대 경로가 아닌 ..
Eclipse jar 배포 및 Linux Character Set, ClassPath, Lib 설정
Eclipse jar 배포 및 Shell ClassPath, Lib 설정 1. 프로젝트 우 클릭 > export > JAR File > manifast, classpath, project 파일 체크 해제 2. 서버 배포 시 모듈마다 라이브러리를 관리하면 중복된 라이브러리가 생기기에 쉘에서 잡아준다. - 확인 : echo $CLASSPATH - 수정, 생성 : vi .bash_profile(계정별 언어 포맷, ClassPath 등) 3. 리눅스 Character Setting - XSHELL 설정: 파일 > 등록 정보 > 터미널 > 출력 변환 > 인코딩 = 유니코드(UTF-8) 설정 - 리눅스설정 - Character Set 확인 echo $LANG - 응답 ko_KR - 수정 파일 vi ~/.bash_p..
Java Thread (예제 newSingleThreadScheduledExecutor)
1. CompletableFuture - Futer와 completionStage를 구현한 클래스 2. Future - 비동기적 연산의 결과 표현 클래스 - Multi Thread 환경에서 처리된 데이터를 다른 Thread에 전달 가능 - 내부적으로 Thread-Safe 하도록 구현되었기에 synchronized block을 사용하지 않아도 됨. 3. executorsService - ExecutorService는 Executor 확장 - 하나 이상의 비동기 작업의 진행 상황을 추적하기 위해 Executor 생성할 수 있는 종료 및 메서드를 관리하는 메서드 제공 - Future ExecutorService는 종료될 수 있으며 이로 인해 새 작업이 거부되며 ExecutorService를 종료하기 위해 두 ..

Runnable JAR Export + Window Scheduler
1. Runnable JAR Export - Project Structure > Artifacts > + > JAR > From modules with dependencies... 2. .bat 파일 생성 .txt 파일 생성 > java -jar -Dfile.encoding=UTF-8 ???.jar > .bat 파일로 변환 3. 작업 스케줄러 등록 - 일반 : 스케줄러 기본 정보 - 트리거 : 스케줄 정보 - 동작 > 프로그램/스크립트 : .bat 파일 작성 - 동작 > 시작 위치 : .bat 파일 위치 작성
String, StringBuffer, StringBuilder
성능 우선 StringBuilder > StringBuffer >>> String 1. 단순 조회 : String 2. Multi Thread : StringBuffer(안전) + 잦은 수정 3. Single Thread : StringBuilder(빠름) + 잦은 수정 String [단점] - 객체 내부 데이터 수정 불가능으로 새로운 객체를 생성 > 수정을 거듭할수록 객체 수 증가로 인한 성능 저하 야기 [장점] - Buffer, Builder 보다 초기 리소스 적으며 크기 고정으로 단순 조회 연산이 빠르다. - 불변성을 가지기 때문에 Multi Thread 환경에서 안전(StringBuffer와 동일) StringBuffer - 동기화 지원으로 Multi Thread 환경에서 안전 - Concurre..
Maven & Gradle
1. 빌드 관리 도구 2. 사용성, 성능 차이 3. Gradle이 Maven보다 나중에 나오며 단점 보완 >>> Gradle 사용 가능한 환경에서 굳이 Maven 선택할 이유 X 빌드 관리 도구 - 프로젝트 내 필요 xml, properties, jar 파일들을 자동 인식 후 빌드해주는 도구 - 소스 코드 컴파일, 테스트 정적 분석 등을 하여 실행 가능한 앱으로 빌드 - 프로젝트 정보 관리, 테스트 빌드, 배포등의 작업 진행 - 외부 라이브러리 참조 자동 다운로드 / 업데이트 관리 이전에는 수동 다운로드, 버전 관리까지 직접 했음 Maven - 자바의 대표 관리 도구 Ant 대체하기 위해 개발 - 프로젝트의 외부 라이브러리를 쉽게 참조하기 위해 pom.xml 파일로 명시하여 관리 - 참조한 외부 라이브러..