일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JavaScript
- gradle
- springboot
- tibero
- VSCode
- database
- docker
- mybatis
- Kubernetes
- Spring
- JPA
- react
- log4j2
- IntelliJ
- Java
- useEffect
- MySQL
- intellijIDEA
- jetbrains
- Git
- nginx
- BPMN
- wildfly
- LOG4J
- gson
- nodejs
- dbeaver
- NCP
- Windows
- kubectl
- Today
- Total
목록분류 전체보기 (247)
두 손끝의 창조자
public DataSourceInitializer tenantIndependentInitializer() {ResourceDatabasePopulator resourceDatabasePopulator = new ResourceDatabasePopulator();resourceDatabasePopulator.addScript(new ClassPathResource("schema.sql"));DataSourceInitializer dataSourceInitializer = new DataSourceInitializer();dataSourceInitializer.setDataSource(tenantIndependentDataSource());dataSourceInitializer.setDatabasePopu..
클러스터에 만들어 놓은 Object(pod, service) 에 외부에서 연결하려고 하면 NordPort, LoadBalancer 등 연결할 수 있는 Object를 추가로 만들어줘야한다. 그런데 DB와 같이 외부로 연결을 하면 안되고 클러스터 내부네트워스 상에 있어야 하는데 로컬Host에서 접속해서 무언가 작업을 해야한다면 port-forwarding 기능을 사용하면 된다.kubectl port-forward TYPE/NAME [options] [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N]kubectl port-forward service/myservice 8443:https8443이 로컬 Host PC, https 가 타겟postgresql을 ..
Helm에서 helm uninstall 명령을 실행할 때 중간에 오류가 발생하면 기본적으로 해당 오류에서 명령이 멈춥니다. 그러나 Helm 자체적으로 오류를 스킵하고 계속 진행하는 기능은 제공되지 않습니다. 대신 몇 가지 방법을 통해 Helm 삭제 중에 발생하는 문제를 처리할 수 있습니다.1. 이미 삭제된 리소스를 무시하는 방법Helm은 이미 삭제된 리소스나 접근할 수 없는 리소스를 찾으려 할 때 오류가 발생할 수 있습니다. 이때, 일부 리소스가 삭제되지 않았을 수 있으니 강제로 리소스를 삭제하는 방법을 사용할 수 있습니다.helm uninstall --timeout 5m0s --debug --no-hooks--timeout 5m0s: 삭제가 완료되지 않거나 너무 오래 걸리는 경우 타임아웃을 설정합니다..
Rocky Linux 8에서 nmcli 명령어를 사용하여 연결을 활성화하려고 시도했을 때 "unknown connection 'enp0s8'" 오류가 발생할 수 있습니다. 이 문제는 보통 해당 네트워크 인터페이스에 대한 네트워크 설정이 누락되었거나 올바르게 설정되지 않은 경우 발생합니다. 아래는 이러한 문제를 해결하기 위한 단계별 가이드입니다.1. 현재 네트워크 연결 확인먼저, 시스템에 설정된 네트워크 연결 목록을 확인해야 합니다. 이를 위해 nmcli connection show 명령어를 입력합니다.nmcli connection show이 명령어는 현재 시스템에 설정된 모든 네트워크 연결을 나열합니다. 여기서 enp0s8이라는 인터페이스가 목록에 없는 경우, 이 네트워크 인터페이스에 대한 연결이 아직 ..
ip a 로 네트워크 어댑터 목록을 보면 ip를 못 받아온다.nmcli con show 명령어로 활성화 상태를 확인한다. nmcli con up [어댑터이름] 으로 활성화한다.시스템 부팅시 자동으로 활성화되도록 하려면/etc/sysconfig/network-scripts/ifcfg-[어댑터이름] 을 vi 에디터로 열고ONBOOT 항목이 no로 되어 있으면 yes로 변경변경 사항적용방법1: systemctl restart NetworkManager방법2: nmcli networking off 한 뒤 nmcli networking on방법3(리부팅): shutwon -rf now
윈도우라면 설치된 위치 C:\SAP\scc20에 config 디렉토리보면 users.xml 파일이 있음이걸 새로 설치 했을 때 users.xml 로 바꾸면 처음 설치했을 때 처럼 사용자가 초기화됨Administrator/manage 가 초기 패스워드https://tools.hana.ondem#cloud여기에서 Cloud Connector portable 버전 받아서 압축 푼다음 config 디렉토리의 users.xml 파일을 복사에서 설치된 위치와 바꿈
샘플 코드를 받았는데 package.js는 없고 package.lock.js 파일만 있으면 npm install 이 안된다.package.lock.js에는 package.js가 가지고 있는 정보를 일정부분 보함하고 있으니 코드로 복원하자.const fs = require('fs');const lockFile = 'package-lock.json';const packageFile = 'package.json';fs.readFile(lockFile, (err, data) => { if (err) throw err; const lockJson = JSON.parse(data); const packageJson = { name: lockJson.name || 'example-project', v..
Python 에서 날짜를 기반으로 처리하는 로직이 있었는데 이걸 도커 이미지로 만들어서 실행하니까 UTC-0 으로 설정되어 오류가 발생했다. 내가 원하는 기준인 서울표준시로 하려면 Dockerfile에 타임존 설정을 하면 된다.FROM python:3.12.4-alpineENV TZ=Asia/Seoul # 타임존 설정
cf login --sso 를 입력하면Temporary Authentication Code ( Get one at https://login.cf.us20.hana.ondemand.com/passcode ):이런 매시지가 나오는데 url 링크를 클릭해서 로그인한 다음 보이는 코드를 이곳에 붙여 넣어서 로그인을 시도하라.
원격지 주소를 바꾸기 위해 기존 원격지를 삭제하고 다시 추가하거나config파일을 직접 수정하지 마세요. 간단한 명령어 한 줄이면 끝납니다.git remote set-url [원격지명] [새URL]예)git remote set-url origin ssh://git@10.10.10.10/ab/my.git
기본값으로 컨텍스트 패스는 root이다. 만약 스프링부트 또는 WAS에 war를 디플로이 할 때 루트패스가 아니라면 경로가 맞지 않아 404 응답이 반환된다. package.json 파일에 homepage 속성으로 패스를 변경할 수 있다. 내부 js에서 참조하는 패스에 해당 속성의 값을 덧붙여서 요청하기 때문에 컨텍스트 패스를 변경한 것처럼 느껴진다. 예) "homepage": "/doraemi"
어떤 원인인지는 모르겠지만 가족증명서 발행 페이지 접속과 동시에 비정상적인 접근이라는 알림이 뜬다. 해당 문제는 프라이베잇창을 열고 가족관계 증명서 홈페이지에 접속 후 다시 시도하면 문제없이 사용할 수 있다. 콘트롤 + 쉬프트 + N 을 누르면 바로뜨고, 오른쪽 위 메뉴에서도 클릭하여 열 수 있다. https://efamily.scourt.go.kr/ https://efamily.scourt.go.kr/ efamily.scourt.go.kr
요소에 키보드 등으로 포커스가 됐을 때 선택된 요소를 하이라이트 해주는 스타일을 변경하고자 할 때 button:focus-visible { outline: 2px solid rgba(41, 182, 198, 0.50); } a:focus-visible { outline: 2px solid rgba(41, 182, 198, 0.50); } focus-visible 주도선택자를 이용해서 outline을 변경한다.
checkbox 를 좀 이쁘게 꾸며보자. [type='checkbox'] { vertical-align: middle; appearance: none; border-color: #29b6c6; transition: border 0.3s ease-in-out; transition: opacity 0.3s ease-in-out; border-radius: 20%; } [type='checkbox']:focus { box-shadow: 0 0 0 0.2rem rgba(41, 182, 198, 0.25); } [type='checkbox']:checked { background-color: #29b6c6; } [type='checkbox']:checked..
useEffect 함수 내부에서 반환하는 함수는 클린업 함수라고 한다. 클린업 함수는 컴포넌트가 언마운트 될 때 호출된다. 불필요한 자원해제 등을 위해 쓴다. 컴포넌트가 마운트 됐을 때 호출되는 함수를 정의하기 위해서는 useEffect 두 번째 파라미터에 [] 빈 배열을 넣는다. 이 빈 배열을 넣은 useEffect 함수에서 반환하는 함수가 컴포넌트 클린업 함수이다.
remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password.git 서버에서 리포지토리를 http 또는 https 프로토콜로 clone하려고 할 때 종종 볼수 있는 오류이다. 오류 내용을 보면 패스워드 토큰이 정확하지 않거나 이중 인증을 활성화 해놔서 개인접근토큰이 필요하다는 의미인데 이중 인증을 활성화 한적이 없다면 기존에 윈도우에 존재하는 자격증명을 그대로 사용하다가 오류가 난것이다. 오래됐거나 서버 정보가 바끼었거나. 그래서 간단하게 기존에 저장되어 있..
json 파일에 키 정의할 때 {{ key }} 형태로 치환할 변수를 정의할 수 있다. { "key": "{{value}}" } 사용하는 방법은 t 함수 호출시 두번째 인자에 매핑정보를 추가한다. t('key', { value: '값값값'});
스프링부트로 프로젝트 수행 도중 타입 체크 (isAssignableFrom) 부분에서 문제가 발생했다. 특정 클래스의 오브젝트를 인자로 리플렉션으로 메소드를 실행하려고 하는데 메소드의 파라미터 타입과 클래스의 오브젝트 타입이 달라서 실행이 안되는 문제가 발생했다. 디버깅 해본 결과 분명 타입은 같은 타입이었다. 허나 다른 부분은 클래스로더였다. 하나는 RestartClassLoader 다른 하나는 AppclassLoader 였다. 클래스 로더가 다르면 둘의 타입은 다르다고 인식할 수 있기 때문에 가장 의심스러운 부분이었다. RestartClassLoader는 스프링부트의 spring-boot-devtools 를 사용하면 추가되는 클래스로더이다. spring-boot-devtools를 제거하고 나니 잘 수..
function moveElementInJson(json, sourceId, destinationId, newIndex) { // 복제된 JSON 생성 const updatedJson = JSON.parse(JSON.stringify(json)); // 소스 요소 찾기 const sourceElement = findElementById(updatedJson, sourceId); if (!sourceElement) { console.error('Source element not found.'); return null; } // 소스 요소를 제거 const removedElement = removeElementById(updatedJson, sourceId); // 대상 위치에 요소 삽입 co..
React의 Context API는 컴포넌트 트리 전체에 걸쳐 데이터를 공유할 수 있게 해줍니다. 이는 전역 상태를 관리하는 수단으로 널리 사용되며, 주로 로그인 정보, UI 테마, 언어 등을 설정하는데 쓰입니다. 본문에서는 Context의 정의, Provider와 Consumer의 관계, 사용법, 그리고 동적으로 Context의 값을 변경하는 방법에 대해 알아보겠습니다. Context의 정의 먼저, Context API는 React의 부분이며, 컴포넌트 트리 안에서 전역적으로 데이터를 공유할 수 있게 해줍니다. 이를 사용하면, 중간에 있는 컴포넌트들을 건너뛰고 바로 자식 컴포넌트에게 데이터를 전달할 수 있습니다. 이는 prop drilling 문제를 해결하는데 도움을 줍니다. Provider와 Cons..