반응형

바쁜분들을 위해 그리고 기초는 있다란 가정하에 3줄 요약
1. npm install oracledb@5.2.0

2. 아래 링크로 접속하여 client 설치 후 yum으로 install
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html
자신의 오라클 버전에 맞는 파일 다운로드(11g인 경우 Version 11.2.0.4.0의 RPM파일 다운로드)
 yum install oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

3. vi ~/.bashrc를 입력해서 환경변수 설정
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:${LD_LIBRARY_PATH}

안 바쁘면 이제 시작~

보통 node.js로 oracle로 db connection을 하려면 npm install oracledb로 oracledb를 설치 후 아래와 같이 하기 마련이다.
dbConfig.js에 DB 연결 정보를 설정해 두고

// Oracle DB 연결 정보
const dbConfig = {
    user: 'myid',
    password: 'pwd123',
    connectString : "(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 200.100.80.10)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = pos)))"
  };

  module.exports = dbConfig;


이를 require로 불러와서 getConnection으로 연결 후 DB조회, 처리
 

const
oracledb = require('oracledb');
const dbConfig = require('./dbConfig.js'); // dbConfig 파일을 불러옴

oracledb.getConnection(dbConfig, (err, connection) => {
    if (err) {
      console.error('Error connecting to Oracle:', err.message);
      process.exit(1);
      return;
    }
    console.log('=======');
    // 연결이 성공한 경우, 쿼리 실행
    connection.execute(
      'SELECT * FROM YOUR_TABLE', // 적절한 테이블명으로 변경
      [], // 바인드 변수 배열 (여기서는 사용하지 않음)
      { resultSet: true, outFormat: oracledb.OUT_FORMAT_OBJECT },
      (err, result) => {
        if (err) {
          console.error('Error executing query:', err.message);
        } else {
          console.log('Query result:', result.rows);
        }
 
        // 연결 종료
        connection.close((err) => {
          if (err) {
            console.error('Error closing connection:', err.message);
          } else {
            console.log('Connection closed.');
          }
        });
      }
    );
  });


그런데 안된다.
절대 안된다.

thin모드를 지원하지 않는단다.
도대체 왜??????

자랑스럽게 node oracledb 6.0에선 Thin mode를 지원한다고 발표한 상태다.


설치된 oracledb 모듈의 버전도 6.0을 넘어 6.2였다.

이윤즉슨 oracledb 모듈 버전이 6.0으로 올라서면서 thin을 지원하지만 
oracle 11g는 6.0으로 올려도 지원 자체가 불가능하다.
시간 많으면 여기가서 읽어보시라.
https://node-oracledb.readthedocs.io/en/latest/user_guide/appendix_a.html#id1

thin 모드와 thick 모드가 궁금하다면 chat gpt 센세에게 물어보면 잘 가르쳐 주신다.



결론은 node.js가 설치된 서버에 별도의 client를 설치해줘야만 한다.
또한 6.2버전을 thick 모드를 지원하는 5.2.0으로 다운그레이드를 해줘야 한다.
아니면 초장부터 5.2.0으로 설치 하던지
이렇게 말이다.
npm install oracledb@5.2.0

일단 oracledb는 5.2.0으로 설치완료했고
다음엔 망할 클라이언트 설치다.
바쁘면 그냥 아래 링크 눌러 다운받으면 된다.
* 오라클 11g용 Instant Client rpm파일의 다이렉트 링크는 아래와 같다.
https://download.oracle.com/otn/linux/instantclient/11204/oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

바쁘지 않으면 천천히 읽어 내려가면 된다.

https://oracle.github.io/node-oracledb/INSTALL.html#prerequisites

3.2.1을 보면 Node-oracledb Installation on Linux x86_64 with Instant Client ZIP files가 보일것이다.
이걸 선택해주자.

 

그럼 node-oracledb.readthedocs.io란 사이트로 이동 할 것이다.
https://node-oracledb.readthedocs.io/en/latest/user_guide/installation.html#instzip

2.4.3.1. Oracle Instant Client ZIP Files에 x86-634 64-bit가 보일것이다.

이걸 선택하면 최종 종착지는 oracle.com이다.
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

여기서 자신의 오라클 DB 버전에 맞는걸 다운받아 주면 된다.
내 경우 oracle 11g이므로 version 11.2.0.4.0을 눌러 Instant Client Package (RPM)을 다운 받았다.
RPM은 Redhat Package Manager의 약자로 Windows를 예를들면 setup.exe와 비슷하다고 볼 수 있다
그래야 yum으로 리눅스에서 install이 가능하기 때문인데 
YUM은 Yellowdog Update Manager의 약자로 RPM의 단점인 의존성 문제를 해결하기 위해서 제공되는 것으로 특정 패키지를 설치할 때 의존성이 있는 다른 패키지들을 자동으로 먼저 설치해주는 지능적인 툴이다.


다운받은 파일을 적당한 곳에 복사해 두고 해당 디렉토리에서 yum을 이용해 rpm파일을 설치한다.
 yum install oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm

혹시 다른 rpm파일을 잘못 설치했다면 리스트로 확인도 가능하고 제거도 가능하니 당황하진 말자
 yum list installed

제거하는 방법은
yum remove 패키지이름


마지막으로 환경변수를 설정해줘야 한다.



 vi ~/.bashrc 를 입력하자

export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:${LD_LIBRARY_PATH}
이렇게 입력해주고 :wq로 저장 후 나가준다.
제대로 설정되었는지 확인하려면 echo $LD_LIBRARY_PATH 를 입력해보자
/usr/lib/oracle/11.2/client64/lib: 
이렇게 뜬다면 정상이다.

이제 클라이언트 설치와 환경변수까지 모두 다 설정해줬다.
다시 node.js로 dbconnect 파일을 실행해보면 정상 접근이 가능한 걸 확인 할 수 있을것이다.

반응형
Posted by Hippalus
,

반응형

메이븐 프로젝트가 아닌 일반 자바 프로젝트에서 이클립스로 외부 라이브러리를 추가하려면 다음과 같이 하면 된다.
먼저 해당 프로젝트에서 마우스 우측을 눌러 Build Path를 선택하면 우측에 서브 메뉴로 Configure Build Path가 뜬다.

여기서 우측의 Add External JARs... 버튼을 누르고

JAR Selection 창이 뜨면 다운받아 놓은 lib를 선택하면 된다.

 

------------------------------------------------------------------------ 추가 ------------------------------------------------------------------------

추가로 외부라이브러리가 없을 때 문제 해결 방법은 다음과 같다.

내 경우 메이븐 프로젝트가 아닌 상태에서 SVN에서 프로젝트를 불러왔기에 외부 라이브러리들이 없는 경우가 발생하였다.
"Provider com.sun.xml.internal.ws.spi.ProviderImpl not found"
검색해보니 stackoverflow.com 페이지가 검색되었다.
jaxws-api-2.3.1.jar 파일이 없어서 발생하는 문제란다.
https://stackoverflow.com/questions/54032558/jdk-11-jax-ws-provider-com-sun-xml-internal-ws-spi-providerimpl-not-found

 

JDK 11; JAX-WS; Provider com.sun.xml.internal.ws.spi.ProviderImpl not found

I Need to access legacy SOAP webservices in JDK 11. But I am suffering "ProviderImpl not found." The JDK 11 implementation is: zulu11.2.3-jdk11.0.1-win_x64. In my build.gradle, I have the following

stackoverflow.com

외부 library 다운로드는 구글에 검색하면 되는데 대부분 https://mvnrepository.com/ 에서 검색 후 다운받을 수 있다.
(만약 없다면 당연하지만 구글 검색해서 다운 받아야 한다.)

jaxws-api-2.3.1.jar 파일을 https://mvnrepository.com/  에서 먼저 버전을 제외하고 검색하여 아래 결과를 얻었고

2.3.1이 최신이라 2.3.1버튼을 눌러

최종 다운로드 받는 곳으로 이동하여 Files옆에 있는 jar 버튼을 눌러 jar파일을 다운받았다.

jar파일을 프로젝트의 lib폴더든 아무폴더든(비추) 위치해 놓고 위 과정을 거쳐 외부 라이브러리를 프로젝트에 포함시키면 된다.

반응형
Posted by Hippalus
,

반응형

View메뉴 하단의 Toad Options를 선택

좌측 트리에 Debugger가 보이면 냉큼 누르자.

Debug session timeout이 180 seconds로 기본 설정 되어 있을 것이다.

이를 0초로 해주자.

이제 지긋지긋한 toad 세션 끊김, 토드 타임아웃 에서 해방

반응형
Posted by Hippalus
,

반응형

프로젝트를 SVN으로 다운받아 보니 저렇게 뻘건 네모가 뜬다.
라이브러리가 없는 상태인지라 일일이 로컬로 다운받아줘야 한다.

외부 라이브러리 다운로드는 이 사이트를 이용하면 되겠다.

https://mvnrepository.com/

메이븐 프로젝트로 만들었으면 될 일을 -_-

다운로드가 다 되었으면
프로젝트에서 마우스 우측 버튼을 눌러 Build Path를 선택하면 Configure Build Path가 보일것이다.
이걸 클릭해주자.

그럼 창이 새로 뜨는데 기본적으로 Libraries탭이 선택되어 있을것이고

우측에 보면 Add External JARs 버튼을 눌러준다.

그리곤 아까 다운받았던 외부 라이브러리를 선택해서 apply시켜주면 eclipse에서 설정이 완료되고 빨강 네모가 사라진다.

 

반응형
Posted by Hippalus
,

반응형

MobaXterm이 훌륭한 툴이긴 하나 "나랏말싸미 듕귁에 달아 문자와로 서르 사맛디 아니할쎄 이런 전차로 어린 백셩이 니르고져 홇베이셔도" 의 상황임에 한글이 깨져나오는 서버들이 존재한다.

더 웃긴건 어떤 서버는 한글이 나오는데 어떤 서버는 안 나온다. -_-
PC마다 또 다 다르다.
누구는 유럽으로 하니 나온다카고 그대로 따라해도 안 나온다. 

솔까 상단메뉴로 아무리 설정을 바꿔한들 삽질이다. 
여러 블로그 글들 보며 따라해봤지만 웃기지 말아라 안 된다.
하지 말라

참고로 난 전역설정(?)의 폰트는 아래와 같이 설정해뒀다.

 

각설하고 MobaXterm에서 한글을 지원하게 하려면 각 서버마다 설정을 달리 해줘야 한다.
(별표로 즐겨찾기 해둔 서버 리스트에서) 마우스 오른쪽을 누르면 Edit session이 나오면 선택하여 설정으로 들어간다.

거기서 SSH를 누르면 중간에 Terminal settings 탭을 누른다.

그리고 Terminal font settings를 누르면 폰트설정을 서버마다 할 수 있다.

여기서부터가 중요하다.
일단 폰트는 한글폰트를 선택한다. 
난 굴림체를 쓰겠다.

그리고 Font charset은 HANGEUL (Korean/Wansung)을 선택한다.
여기까진 공통이다.

이제부턴 실험정신이 필요하다.
Term charset을 바꿔가며 한글이 깨지는지 잘 나오는지 테스트를 해봐야 하는데
Use font encoding, eucKR, UTF-8 을 번갈아 가며 설정 OK를 해가며 저장 후 접속해서 SU를 입력해보자
그럼 어떤 서버는 Use font encoding로 해야 한글이 나오는 서버가 있고 어떤 서버는 eucKR 등 다 다르다.

 

 

MobaXterm 한글 설정 방법 전달 끝

반응형
Posted by Hippalus
,

반응형

MS툴들에 비해 이클립스는 너무나 불편하기 이루 말할 수 없다.
특히 단축키는 학을 뗀다.
그나마 단축키 변경을 통해 MS스럽게 만들어 볼 수 있다.

단축키를 변경하기 위해 GNB의 Window > Preferences로 가서 Keys라고 검색을 하자

먼저 브레이크 포인트 추가 / 제거
Scheme아래 type filter text 입력란에서 Toggle Breakpoint라고 입력하자 그리곤 Binding부분에 F9을 입력하자.
앞으론 F9를 누를 때 마다 브레이크 포인트가 생겼다 사라졌다 할 것이다.

다음 브레이크 포인트까지 쭉 실행하는 키는 F5로 바꿔주자
검색어는 run to line이다.

다음은 브레이크 포인트로 멈춘 상태에서 한줄씩 코드를 실행하는 기능이다.
Step Over이다. F10을 입력하자.

이제 마지막 함수에 위치해 있을 때 해당 함수 속으로 파고 들어가는 기능은 Step Into 이다.
단축키는 F11을 입력하자.

Visual Studio 6.0부터 닷넷, VSCode, Xcode 등을 두루 사용해 봤지만 정말 이클립스 같은 개똥 컴파일러는 처음 본다.
자바 개발자님들 존경합니데이~

반응형
Posted by Hippalus
,

반응형

윈도우 키를 눌러 설정이라고 입력하여 설정앱을 실행하자.

설정의 좌측 시간 및 언어를 눌러준다.

언어 및 지역을 선택한다.

한국어
언어 팩, 텍스트 음성 변환, 필기, 기본 입력 의 ... 메뉴를 선택하면

언어 옵션이 나온다.

언어 옵션을 누르면 이제 옵션으로 진입하게 된다. 
참 복잡하다. -_-

Microsoft 입력기의 ... 메뉴를 눌러 키보드 옵션을 선택한다.

IME 버전이 unselected 상태로 되어 있는데 이를 파랑으로 바꿔준다.
그럼 Microsoft IME를 사용하겠냐고 물어온다.

확인을 누르고 피그마에 가보면 한글이 중복으로 입력되는 증상이 해결된다.

이상 figma 한글 두 번 입력 증상 해결하기 끝

반응형
Posted by Hippalus
,

반응형

아까까지만 해도 잘만 되던 이클립스(eclipse)의 톰캣 서버가 맛이 가 있다.


아무리 서버를 중지했다 다시 실행해도 여전하다.

방법은 간단하다.

그냥 이클립스를 재실행 하면 된다.
만약 그래도 안 된다면 server > clean 후 project > clean

그 이외 방법들은 이 블로그를 봐도 된다.
https://october-east-sea.tistory.com/160

 

[에러]Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것이 존재하는지

1.Server Modules탭에서 /path 바꿔도 안 될 때 https://jnju.tistory.com/7 [404 에러 eclipse 설정]Origin 서버가 대상 리소스를 위한 현재의 representation을 찾지 못했거나, 그것 jsp 만으로 돌아가는 테스트페이지를

october-east-sea.tistory.com


참고로 chatgpt에는 기대하지 않는게 좋다.

반응형
Posted by Hippalus
,

반응형

정치 문제로 네이버 실검이 사라진지 오래지만 사람이란게 같은 시공간에 살고 있을 때 다른 사람들의 생각이
궁금하고 사회적 문제 상황이 발생하면 뉴스보다 더 찾는게 검색창이기에
네이버 실검은 매우 유용한 도구라 생각함

약간의 노력을 더하면 네이버실검을 다시 볼 수 있어 그 방법을 설명하고자 한다.

네이버앱을 켜고 검색창에 아래와 같이 입력한다.
https://는 없어도 가능하다.
https://signal.bz/news

시그널 실시간검색어

네이버앱을 통해 확인 가능한 실시간 검색어 및 실시간 급상승 검색어, 검색어 순위, 인기뉴스 등 놓칠 수 없는 실시간 트렌드. 지금 무료로 실시간 검색어와 인기뉴스를 확인해보세요.

signal.bz

그럼 그리운 네이버 실검 현황이 나타난다.
매번 이렇게 보거나 이 URL을 바탕화면에 갖다 놔도 되지만 난 네이버에서 보려한다.

네이버 앱 우측 하단을 보면 햄버거 메뉴처럼 생긴 두줄 가로선을 누르면 위 화면이 나온다.
여기서 현재 페이지 저장을 누른다.


적당한 이름으로 네이버메인으로 저장한다.


네이버 콘텐츠 탭에 좀전에 추가한 네이버 실검이 보일것이다.
그런데 순서가 마음에 들지 않는다.


우측 상단에 좌우화살표를 눌러 불필요한것들은 제거하고 실검을 제일 앞에 나오게 하자
그럼 끝

네이버실검 개같이 부활

반응형
Posted by Hippalus
,

반응형

아마 오늘 이런 메일들을 구글로 부터 받은 개발자들이 꽤 될 것이다.
"Google Play 계정 확인 기한을 지금 선택하여 원하는 시간대를 예약하세요"
이게 뭔 개풀 뜯어 삶아 먹는 소린가 싶어 PLAYSTORE CONSOLE에 로그인해 보니 이따위 안내가 떡하니 보인다.

문구만 보면 마치 자애롭게도 구글님께서 개발자들에게 친히 DUNS번호를 입력기간 선택권을 주신다란 말씀으로 사료된다.
시작하기 버튼을 누르면 기한을 선택하라고 나온다.

대충 해석을 해보면 이 선택한 날짜까지 DUNS 번호를 입력하지 않을 경우 계정이 삭제 되고 앱도 삭제 된다란 협박인데
바보가 아니고서야 당연히 가장 늦은 날짜를 선택해야 하는거 아닌가?
이해할 수 없는건 2024년 6월 24일이 예약할 수 없는 시간대로 비활성화 되어 있단 점이다.
다들 변태인가? -_-

날짜를 선택하면 개인인지 조직인지 선택해야 하는데 여기서 회사면 조직을 선택하면 되고 D-U-N-S 번호 보유 여부에 따라 선택하고 국가는 대한민국으로 선택하면 된다.
제발 좀 부탁인데 한국이면 한국, SOUTH KOREA면  SOUTH KOREA, 대한민국이면 대한민국
쫌 하나로 통일해라. 쫌

선택하고 나면 마지막 예약 버튼이 뜬다.

신청이 끝나면 이렇게 메일로 안내 메일이 날라온다.
그.런.데 얘네들 말로는 무료라고 하는데 DUNS 발급해주는 서비스 가보면 지역을 대한민국으로 하면 수십만원을 요구하더라 ㅡㅡ
보통 안드로이드와 애플 모두 서비스하고 있을테니 이럴 땐 애플을 애용해주자.
https://gigas-blog.tistory.com/221


계정 확인 완료 기한이 확인되었습니다
계정 관리자가 ㅇㅇ개발자 계정의 계정 확인 기한을 선택했습니다.

확인된 기한: 2024. 7. 26.
기한 60일 전인 2024. 5. 27.에 Play Console에서 계정 확인을 시작할 수 있습니다.

확인할 때 제출할 항목은 다음과 같습니다.

조직의 D-U-N-S 번호
D-U-N-S 번호가 없는 경우 Dun & Bradstreet에 무료로 요청할 수 있습니다. 이 절차에 최대 30일이 걸릴 수 있으므로 Play Console에서 계정 확인을 할 수 있으려면 충분한 시일을 두고 미리 D-U-N-S 번호를 요청하는 것이 좋습니다.D-U-N-S 번호 요청 자세히 알아보기
Google Play 사용자가 문의할 수 있는 연락처 전화번호 및 이메일 주소
Google에서 연락할 수 있는 연락처 전화번호 및 이메일 주소
신원 확인을 위한 공문서
조직 인증을 위한 공문서
Google Play 결제를 사용하여 Google Play에서 수익을 창출하는 경우 판매자 결제 세부정보도 인증해야 합니다.

업데이트된 Play Console 요구사항 정책을 준수하기 위해 2024. 7. 26.까지 계정 확인을 완료해야 합니다. 이 날짜까지 확인을 완료하지 않으면 개발자 프로필과 앱이 Google Play에서 삭제됩니다.

계정 확인에 관해 자세히 알아보려면 고객센터를 방문하세요.

자세히 알아보기
감사합니다.
Google Play Console팀

반응형
Posted by Hippalus
,