일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Java
- database
- wildfly
- intellijIDEA
- IntelliJ
- tibero
- VSCode
- JPA
- NCP
- nodejs
- gradle
- log4j2
- dbeaver
- nginx
- springboot
- docker
- LOG4J
- kubectl
- gson
- MySQL
- Kubernetes
- react
- mybatis
- JavaScript
- Windows
- Spring
- Git
- jetbrains
- useEffect
- BPMN
- Today
- Total
목록분류 전체보기 (247)
두 손끝의 창조자
특정 문자열을 간편하게 인코딩 디코딩 하려면 인코드 커맨드 echo "문자열" | base64 결과 66y47J6Q7Je0Cg==디코드 커맨드 echo "66y47J6Q7Je0Cg==" | base64 --decode 결과 문자열
$i=0; while($true) { %{$i++; write-host -NoNewLine "$i $_" } (Invoke-RestMethod "http://192.168.1.11")-replace '\n', " " }
pod 목록 kubectl get pods자세히 보기 kubectl get pod -o wide커스텀 컬럼 kubectl get pods -o=custom-columns=NAME:.metadata.name,ID:.status.podIP,STATUS:.status.phase,NODE:.spec.nodeName 커스텀 컬럼 항목 살펴보기 kubectl get pod echo-hname-7894b67f-6rtn7 -o yaml pod 삭제 kubectl delete pods nginx-pod디플로이먼트 삭제 kubectl delete deployment dpy-nginx디플로이먼트 상태 보기 kubectl describe deployment rollout-nginxpod 의 쉘 들어가기 kubectl exec..
스프링부트 2.7.13 기준 버전 세팅 다운로드 https://www.h2database.com/html/main.html 2.1.214 버전 다운로드 압축 해제 후 h2/bin/h2.bat 실행 linux, mac은 h2.sh 실행 실행전 실행권한 추가 chmod +x h2.sh 설정 DB 명을 cop-oasis라고 하였을 때 최초 실행시 JDBC URL : jdbc:h2:~/cop-oasis DB 생성 후 ~/cop-oasis.mv.db 파일 생성됨 다음부터는 JDBC URL : jdbc:h2:tcp://localhost/~/cop-oasis ~/cop-oasis.mv.db 생성 확인
기본값으로 포함되어 있는 logging 모듈을 제외시킨다. configurations { configureEach { exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' } } log4j2 SpringBootStart를 의존성에 추가한다. implementation 'org.springframework.boot:spring-boot-starter-log4j2'
$directories = Get-ChildItem -Directory | Sort-Object { try { $_ | Get-ChildItem -Recurse -Force -ErrorAction Stop | Measure-Object -Property Length -Sum | Select-Object -ExpandProperty Sum } catch { 0 } } -Descending foreach ($directory in $directories) { try { $size = Get-ChildItem -Recurse -Force -LiteralPath $directory.FullName | Measure-Object -Property Length -Sum | Select-Object -ExpandPr..
React.memo export default React.memo(Left);형태로 정의하면 이전 props와 현재 props를 비교하여 값의 변화가 없으면 Left 컴포넌트를 다시 호출하지 않아 불필요한 리프레시를 방지한다. props에 매우 많은 값이 들어있으면 비교하는것 자체가 부하를 주기 때문에 잘 판단해야한다. 비교할 때 === 연산자로 비교한다고 보면 되는데 원시타입은 값자체가 같으면 같아도 인식하지만, 오브젝트, 함수등은 컴포넌트를 호출하는 곳에서 재실행이 됐다면 새로운 함수로 인식하게 된다. 따라서 프롭스에 함수가 있다면 그 함수를 useCallback 으로 재생성되지 않도록 조치가 필요하다. useCallback 정의한 함수를 리액트의 내부 저장 공간에 저장해서 함수 객체가 실행될 때마다..
모든 컴포넌트 재평가 후에 useEffect를 실행한다. 컴포넌트가 렌더링되는 주기 안에서 사용되어야 하는 코드가 있을 때 유용함. 의존성이 변경될 때 실행된다. useEffect 에서 사용하는 모든 것을 의존성으로 넣어야 한다. 안넣어도 되는 것은 상태 업데이트 함수 내장 API 또는 함수 (fetch(), localStorage) useEffect 외의 변수 import { useEffect, useState } from 'react'; let myTimer; const MyComponent = (props) => { const [timerIsActive, setTimerIsActive] = useState(false); const { timerDuration } = props; // ..
.env 파일은 node를 실행할 때 읽어서 앱의 환경변수값으로 쓸 수 있다. .env 파일은 node를 실행하는 디렉토리에 있어야 한다. react project에서는 빌드할 때 .env 파일을 읽어서 변수값과 소스를 묶은 후 js 파일을 만든다. 따라서 빌드할 때 환경설정 정보가 완비되어야 한다. 개발 서버에 올릴 때와 운영 서버에 올릴 때 환경 변수 값이 다른 경우 빌드 할 때 적절히 환경 변수 값을 교체한 뒤에 빌드해야한다. 환경 변수파일의 우선순위는 npm start 했을 때는 .env < .env.local < .env.development < .env.development.local 순으로 .env.development.local 파일이 가장 우선순위가 높다. npm build 했을 때는 ...
sudo docker run -d \ -v /home/dev/content:/usr/share/nginx/html:ro \ -v /home/dev/nginx.conf:/etc/nginx/nginx.conf:ro \ nginx nginx 컨텐츠와 설정파일을 볼륨 마운트 시키려고 했더니 자꾸 오류가 났다. 파일인데 디렉토리에 마운트를 시켜면 어떻하니 어쩌고 저쩌고 파일이라고 인식을 잘 못하는것 같다. nginx.conf파일을 만들어 놓고 실행하니 일단 실행은 되는데 서버는 올라오지 않는다. 아마도 설정 정보가 호스트 쪽으로 넘어가질 안나보다. 일단 컨피그쪽 설정을 빼고 컨테이너를 올린뒤 설정정보만 그대로 복사해서 호스트쪽으로 넣고 다시 실행했다. 인제 잘 된다.
원격 데스크탑 접속할 때 로그인 이름을 변경하려면 사용자 정보에서 이름을 변경하면 된다. 사용자 정보는 윈도우 버튼 누르고 lusrmgr.msc 를 검색한 뒤 열면 된다. 사용자를 우클릭해서 이름 바꾸기로 변경한다. Administrator를 그대로 사용하고 있다면 반드시 비활성하거나 다른 이름으로 변경하여 사용해야한다.
SPA 는 웹 브라우저 기준으로는 진입점이 하나이다. index.html 하나에서 여러가지 페이지를 app 이 알아서 보여준다. 앱을 개발하면서 여러가지 라우트를 설정하여 개발한다. 개발할 때는 npm 을 이용해서 테스트 해보기 때문에 브라우저에 특정 패스를 넣으면 그 위치로 잘 넘어간다. 그러나 서버에 배포를 하게되면 문제가 생긴다. 브라우저는 이 앱이 SPA 인지 아닌지 그런건 알 수 없다. 그래서 입력한 주소로 요청을 보내는데 SPA 는 진입점이 하나, 즉 엔드포인트가 하나이므로 입력한 패스에 대한 자원을 찾을 수가 없을 것이다. localhost:3000/ 는 되지만 localhost:3000/abc 는 접근할 수 없다. 그래서 서버에 설정을 별도로 해줘야하는데 서버는 모든 요청에 대해서 SPA ..
리덕스가 왜 필요한가? 리액트 컨텍스트 단점 복잡한 셋텀 및 관리 심하게 중첩된 jsx 코드가 나온다. 성능 테마, 인증 등 저빈도 업데이트는 괜찮지만 변경이 자주 일어나는 곳에는 유용하지 않다. 리덕스 작동방식 중앙 저장소 하나에 모두 관리한다. 컴포넌트는 저장소를 구독해서 상태가 변경될 때마다 알림을 받는다. 컴포넌트는 저장소에 상태 변경을 요청한다. 요청하는 것을 dispatch라고 하고 요청을 action이라고 함 Action은 리듀서에 전달된다. Action은 단순한 자바스크립트 객체이다. 리듀서는 새로운 상태를 뱉어내고 스토어에 기존 상태를 변경한다. 저장소는 구독 중인 컴포넌트에 알림을 보낸다. 컴포넌트는 새로운 상태를 받아서 렌더링한다. 컴포넌트는 저장소 데이터를 변경하지 않는다. 구성 스..
nodejs 로 외부 api 를 호출한다던지 npm 으로 패키지 인스톨을 할 때 사내 SSL 인증서 문제로 설치가 안될 수 있다. 코드에서는 process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; npm 인스톨 할 때는 export NODE_TLS_REJECT_UNAUTHORIZED=0 으로 회피 가능하다. 사내에 못 믿을 사람이 있다면 그냥 테더링을 해서 쓰자.
vscode 는 현재 위치에서 code . 을 실행하면 현재 위치에서 디렉토리가 열린다. intelliJ IDEA는 기본적으로 지원하지 않는다. code 같은 쉘 프로그램을 추가하자. /usr/local/bin 디렉토리로 이동 cd /usr/local/bin 쉘 프로그램 작성 sudo vi idea 내용에 넣고 #!/bin/sh open -na "IntelliJ IDEA.app" --args "$@" 저장 wq 실행 권한 주고 sudo chmod -x idea 끝.
1. Code Runner 다양한 언어로된 코드를 실행시켜준다. nodejs 사용시 필수 Ctrl+Alt+N 단축키로 간편하게 실행시킬 수 있다. 2. Live Server 클라이언트에서 간편하게 현재 디렉터리 기준으로 서버를 띄어 준다. Go Live 버튼을 누르면 서버가 실행된다.
파워포인트로 장표를 작성하다보면 어느 순간 유독 텍스트가 들어있는 개체가 타이핑이 느려지거나 움직임미 버벅거릴 때가 있다. HKEY_CURRENT_USER\Software\Microsoft\Avalon.Graphics 이 레지스트리를 삭제하면 눈에 띄에 속도는 향상이 되는데 이 레지스트리의 값이 정확하게 어디에 영향을 더 줄 수 있는지 확인되지 않았다. WPF 그래픽을 렌더링 할 때 참조하는 값인것 같은데 어쨌든 지우면 당장 문제되는 것 없이 파워포인트 속도는 올라간다.
자바스크립트 엔진은 함수를 어디서 호출했는지가 아니라 함수를 어디에 정의했는지에 따라 상위 스코프를 결정한다. 이를 렉시컬 스코프(정적 스코프)라 한다. 따라서 아래 코드의 실행결과는 두 함수 모두 1을 반환한다. const x = 1; function foo(){ const x = 10; bar(); } function bar(){ console.log(x); } foo(); bar();파이썬에도 비슷하게 동작한다. x = 1 def foo(): x = 10 bar() def bar(): print(x) foo() bar() 상위 스코프에 대한 참조는 함수 정의가 평가되는 시점에 함수가 정의된 환경(위치)에 의해 결정된다.=> 렉시컬 스코프
기준이 되는 이미지에 m1 플랫폼 이라는 것을 명시를 해줘야 하는데 그러면 플랫폼에 도커 파일이 의존성이 생긴다. 빌드할 때 ` --platform=linux/x86_64` 옵션을 추가해서 명시적으로 x86 시스템이라고 하면 빌드는 된다. 그런데 이 이미지가 실행이 잘 될까?