본문 바로가기

[개발] Programming195

젠킨스 cp failed to access Permission denied 권한 오류 젠킨스 빌드 후에 스크립트를 실행하려 하니 권한 오류가 발생했다. cp 명령어로 리눅스 서버 디렉토리를 접근할 수 있는 권한이 없기 때문. 그래서 이번 글에서는 리눅스 서버에서 jenkins 계정에 권한을 부여해 본다. 젠킨스로 빌드 후에 리눅스 서버의 특정 위치를 참조하여 복사하는 스크립트를 작성했다. 즉, 빌드 후 > cp로 파일 복사 (하나의 명령어로 구성해도 되지만, 그냥 보기 좋아서 나눠봄 ㅎㅎ) 참고로 젠킨스 스크립트에 sudo su를 추가해도 소용없다. 젠킨스 아이템 저장 후에 실행하니 오류가 떴다. 로그를 해석해 보면 cp 명령어로 접근이 실패하였다. 원인은 permission denied, 즉 권한이 없기 때문. 이미 젠킨스가 돌고 있는 서버 내에서 파일을 이동하거나 복사하더라도 접속해 .. 2024. 2. 18.
오라클 한글 바이트 수 조회 (length, lengthb 차이점) 오라클에서 한글 바이트 수를 구해야 될 케이스가 발생합니다. 이때 오라클 내장 함수로 체크할 수 있는 방법이 있어 소개해 드리겠습니다. 참고로 오라클에서 인식하는 한글이나 다국어(영어가 아닌)의 바이트 수는 UTF-8, UTF-16, EUC-KR 등의 인코딩 방식에 따라 달라집니다. 때문에 DB 컬럼 사이즈가 동일해도 인코딩 방식에 따라 저장할 수 있는 글자수가 달라지게 됩니다. 확실하게 저장 가능한 한글 수를 체크하려면 바이트를 직접 비교하면 되는데, 이때 오라클 내장함수 lengthB() 를 사용하면 됩니다. length()는 단순히 글자수만 반환하기 때문에 부정확합니다. 1 2 3 4 SELECT LENGTH('한국 서울') AS 한글_LENGTH, LENGTHB('한국 서울') AS 한글_LENG.. 2024. 2. 15.
젠킨스 플러그인 수동으로 설치하는 방 젠킨스를 운영하다 보면 어느 순간 플러그인들이 out of date 되는 경우가 있습니다. 또는 젠킨스 버전을 무심코 업그레이드했다가 플러그인 호환 오류로 서비스가 안뜨기도 하죠ㅜㅜ 그래서 이번 포스트에서는 수동으로 플러그인을 업데이트하는 방법을 소개하겠습니다. 먼저 젠킨스 관리 들어가 보면 첫 화면에 플러그 호환에 대한 오류가 있다면 확인 가능합니다. 만약 아래와 같이 아예 인식이 안 되는 플러그인들이 있다면 젠킨스를 띄우는 과정에서 중단될 수도 있습니다. 이때는 라이브러리를 젠킨스가 있는 디렉토리에 jpi 확장자로 넣은 뒤에 서비스를 띄우면 해결 가능합니다. 젠킨스가 일단 뜨기는 한다는 가정에서 설명 드리면, 젠킨스 관리 화면에서 스크롤을 내리면 '플러그인 매니저로 이동'을 찾을 수 있습니다. 다음 .. 2023. 12. 8.
오라클 날짜 계산 방법과 예제 정리 오라클에서 쿼리로 날짜를 연산하는 방법은 다양하지만, 그중에서 쉽게 계산하고 비교할 수 있는 방법을 정리해 봤습니다. 01 오라클 현재 날짜, 시간 현재 날짜와 시간을 구하는 건 두 가지 방법이 있는데, 가장 흔하게 사용하는 건 SYSDATE 입니다. 결제나 예약처럼 밀리세컨드 단위까지 봐야 한다면, SYSTIMESTAMP를 사용하면 됩니다. 1 2 3 4 SELECT SYSTIMESTAMP, SYSDATE FROM dual ; cs 현재 시간은 필요 없고, 날짜만 구하고 싶다면 형변환을 해주면 됩니다. 1 2 3 4 5 6 SELECT TO_CHAR(SYSDATE, 'YYYYMMDD'), -- 20231110 으로 표시 TO_CHAR(SYSDATE, 'YYYY.MM.DD'), -- 2023.11.10 .. 2023. 11. 10.
자바 환경변수 설정하는 방법 (윈도우 기준) 자바 환경변수 설정하는 방법 자바 개발자들이 필수로 하는 자바 환경 변수 잡아주는 방법을 공유드립니다. 참고로 해당 글은 윈도우 운영체제 기준으로 작성하였습니다. 컴퓨터에 자바 환경변수가 지정되어 있는지는 cmd에 명령어를 입력하여 알 수 있습니다. > java -version 잡혀있는 환경변수가 없다면 아래와 같이 문구가 출력됩니다. " 'java'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. " '내 피씨' 또는 컴퓨터를 마우스 우클릭하여 '속성'을 실행합니다. 윈도우 버전에 따라 다르지만, 11 기준으로는 아래와 같이 창이 뜹니다. 윈도우 10 이하는 UI는 다르지만, '고급 시스템 설정'은 동일하게 있습니다. 팝업이 뜨면 하단에 '환경 변수'를 클릭하면 됩.. 2023. 7. 21.
아웃룩 메일 회수하는 방법과 회수 성공 여부 확인 아웃룩 전송 메일 취소하기 업무를 하다 보면 가끔 실수로 메일을 보낼 때가 있습니다. 심지어 보내자마자 알아서 당황하는 경우가 종종 있는데요, 이럴 때 아웃룩에서 전송 취소(메일 회수) 하는 방법을 알려 드리겠습니다. 참고로 경험상 일부 상황에서는 회수가 되지 않기도 했습니다. 저는 직장 동료에게 보낸 메일이 회수되는 건 확인했습니다. 이제 아웃룩에서 실수로 속마음을 적은 메일을 보냈다고 가정해 보겠습니다. 실수로 메일이 보내졌네요? 엄청 당황하지만, 최대한 빠르게 회수를 해봅니다. 다시 아웃룩 메일을 더블클릭하여 창으로 띄웁니다. 가운데 '동작' 이라는 버튼이 보일 때까지 창의 너비를 키웁니다. 충분히 너비가 넓어지면 '동작' 버튼이 보입니다. '동작'을 클릭하면 메뉴가 펼쳐지는데, 여기서 '메시지 회.. 2023. 6. 24.
웹3.0 이란? 웹2.0 와의 차이와 핵심 비전 웹 3.0 이란 무엇일까? 사실 웹3.0 이라는 건 아직까지는 명확한 정의가 없다고 합니다. 현재는 지향점에 대한 아이디어는 제시됐는데, 아직 구체적인 방향은 모호한 것으로 대부분 전문가들이 말하고 있습니다. 핵심 취지는 웹 3을 통해서 대기업들이나 특정 플랫폼에 집중되어(중앙화) 있는 '데이터에 대한 소유권을 탈중앙화하여, 창작자에게 돌려주자'는 움직임입니다. 이에 가장 부합하는 모델이 메타버스라고 합니다. 예를 들어 설명하면, 인스타나 페이스북 등 SNS을 통해 생성한 장착물의 소유권은 플랫폼 업체로 가게 되어 있습니다. 극소수의 거대 IT기업들이 데이터를 독식하고 개인의 정보를 소유/활용하여 금전적 이득을 챙기고 있습니다. 이에 대한 권리를 개개인에게 돌려주자는 움직임입니다. 다른 전문가의 정의를 .. 2023. 6. 15.
CORS error 에러, 임시로 피해갈 수 있는 브라우저 설정 CORS error 2023년 5월 기준, 브라우저 보안 정책이 강화된 건지 그전까지는 A 도메인에서 외부 API B를 호출하여 리턴 받아 처리하는 웹에서 발생하지 않은 오류가 CORS 이슈로 동작 안 하는 증상이 발생하였다. 당시 갑자기 데이터가 안 받아와 지길래 브라우저 콘솔창을 여니까 아래와 같은 오류를 확인할 수 있었다. 참고로 CORS 는 'Cross-Origin Resource Sharing'으로 위키백과의 설명을 일부 가져오면 아래와 같다. 교차 출처 자원 공유는 웹 페이지 상의 제한된 리소스를 최초 서비스된 도메인과는 다른 도메인으로부터 요청할 수 있게 허용하는 구조이다. 다만 특정 교차 도메인 간(cross-domain) 요청, 특히 Ajax 요청은 동일-출처 보안 정책에 의해 기본적으로.. 2023. 5. 15.
자바 컴파일 커맨드로 하는 방법 (윈도우 command javac) 윈도우 자바 컴파일 개발하다 보면 서버에서 직접 자바 파일을 컴파일할 때가 가끔 있습니다. 이때 javac라는 명어를 통해 간단하게 컴파일할 수 있는 방법을 소개하겠습니다. (저도 가끔 옵션을 까먹을 때가 있어 기록하게 됐습니다ㅎㅎ) 자바 컴파일 하는 방법 윈도우 서버를 사용하는 경우 먼저 command 창을 열어야 합니다. 그다음 자바 파일이 있는 경로로 이동해야 합니다. 기본 컴파일은 아래와 같이 할 수 있는데, javac '자바 파일 경로'/'자바 파일 명' javac D:/workspace/Main.java // 사용 예시 라이브러리 + 자바 컴파일 하는 방법 라이브러리가 없어 컴파일이 안될 경우가 있습니다. 이럴 땐 -cp 옵션을 추가하여 라이브러리 경로도 같이 입력해 주면 됩니다. javac .. 2023. 1. 25.