[Oracle] 문자열 리스트 프로시저에 전달하기
·
데이터베이스
오라클 데이터베이스에서 SYS.ODCIVARCHAR2LIST를 활용하면 문자열의 리스트를 프로시저에 전달하여 처리할 수 있습니다. 이번 포스팅에서는 SYS.ODCIVARCHAR2LIST를 사용하여 프로시저에서 리스트를 입력받고 처리하는 방법에 대해 설명하겠습니다. 1. 프로시저에서 리스트로 입력 선언하기SYS.ODCIVARCHAR2LIST는 문자열 리스트를 다루기 위한 Oracle의 내장 타입입니다. 이를 사용하여 프로시저에서 리스트를 입력받을 수 있습니다.CREATE OR REPLACE PROCEDURE PROC_TEST( p_codes IN SYS.ODCIVARCHAR2LIST)ISBEGIN -- 프로시저 로직END;이와 같이 p_codes를 SYS.ODCIVARCHAR2LIST 타입으로 ..
[Oracle] DB_LINK 기본개념 및 사용법
·
데이터베이스
1. DB_LINK란?DB_LINK(Database Link)는 한 데이터베이스에서 다른 원격 데이터베이스에 접근할 수 있도록 해주는 Oracle의 기능입니다. 이를 통해 서로 다른 데이터베이스 간에 데이터를 쉽게 주고받을 수 있습니다. 주로 분산 데이터베이스 환경에서 사용되며, 네트워크 상에 있는 다른 데이터베이스의 객체를 로컬 데이터베이스처럼 사용할 수 있게 해줍니다. 2. DB_LINK 확인 쿼리이미 생성된 DB_LINK를 확인하려면 아래의 SQL 쿼리를 사용합니다.-- 전체 데이터베이스의 모든 DB_LINK 정보 (DBA 권한 필요)SELECT * FROM dba_db_links;-- 현재 사용자의 스키마에 정의된 DB_LINK 정보SELECT * FROM user_db_links;-- 현재 사용..
[SpringBoot] 공공데이터포탈 IP 정보검색 구현
·
Spring
이번 포스팅에서는 Spring Boot를 이용하여 공공데이터포탈의 IP 정보 검색 API를 연동하는 방법을 소개하겠습니다. 최근 공공기관과 기업들은 다양한 공공데이터를 활용하여 부가가치를 창출하고 있으며, 특히 IP 주소에 대한 정보는 네트워크 보안과 관련된 다양한 서비스에 필수적입니다. 1. 프로젝트 개요Spring Boot를 이용한 간단한 웹 애플리케이션을 구축하여, 공공데이터포탈에서 제공하는 IP 정보 검색 API를 통해 IP 주소의 세부 정보를 조회해 보겠습니다. 이를 통해 특정 IP가 어떤 기관에 할당되어 있는지, 해당 기관의 위치와 네트워크 정보를 쉽게 얻을 수 있습니다. 2. API 연동 준비우선, 공공데이터포탈에서 API 키를 발급받아야 합니다. API 키는 공공데이터포탈 회원가입 후, 해..
[SpringBoot] HATEOAS 개념 및 간단한 예제
·
Spring
HATEOAS(Hypermedia as the Engine of Application State)는 RESTful API 설계에서 클라이언트가 API의 리소스를 동적으로 탐색하고 사용할 수 있게 해주는 강력한 개념입니다. 이 포스팅에서는 HATEOAS가 무엇인지, 왜 중요한지, 그리고 어떻게 구현할 수 있는지에 대해 알아보면서 더 유연하고 유지보수하기 쉬운 API를 만드는 방법을 소개합니다. 1. HATEOAS란?HATEOAS(Hypermedia as the Engine of Application State)는 RESTful API 설계의 중요한 원칙 중 하나로, 클라이언트와 서버 간의 상호작용에서 클라이언트가 서버의 응답 내에서 하이퍼미디어 링크를 통해 동적으로 리소스를 탐색하고 상태를 전이할 수 있도..
[Github] 깃허브 메인화면 자기소개서 작성방법
·
Git
GitHub 프로필은 나의 개발 역량을 한눈에 보여줄 수 있는 중요한 공간입니다. 이 글에서는 GitHub 메인 화면에 자신을 효과적으로 소개하는 방법을 알아보겠습니다.  1. 저장소생성본인의 깃허브 아이디와 같은 이름으로 저장소를 생성합니다.special repository 문구를 확인 후, "Add a README file"를 체크합니다. 2. 수정위 화면은 기본으로 작성되어 있는 화면으로, 본인의 스타일대로 수정하시고, "Commit changes..."를 클릭하시면 적용이 됩니다. 3. 예시안녕하세요, 웹 개발자입니다! 7년간 웹 개발 분야에서 경험을 쌓으며, 고품질의 웹사이트와 애플리케이션을 제작해 왔습니다. 깔끔하고 효율적인 코드를 작성하는 것을 좋아하며, 프로젝트와 블로그, 코딩..
[Java] 소수 판별하기
·
Java
1. 소수란?소수(Prime Number)는 컴퓨터 과학과 수학에서 중요한 개념 중 하나입니다. 소수는 자신과 1 이외의 약수를 가지지 않는 2 이상의 자연수를 의미하며, 암호학, 수론 등 다양한 분야에서 활용됩니다. 그러나, 큰 수에 대해 소수를 판별하는 것은 계산 비용이 많이 들 수 있습니다. 따라서, 소수 판별 알고리즘의 효율성을 높이는 것이 중요합니다. 이번 포스팅에서는 자바를 사용하여 소수를 효과적으로 판별하는 최적화된 알고리즘을 공유합니다. 이 방법은 소수를 빠르고 정확하게 찾을 수 있도록 설계되었으며, 특히 큰 수에 대해 뛰어난 성능을 보입니다. 2. 소수 판별 알고리즘 구현아래는 자바로 구현한 소수 판별 함수입니다. 이 함수는 다양한 최적화 기법을 통해 계산량을 줄이고, 효율적으로 소수를 ..
[SpringBoot] openNLP를 이용해 고객센터 챗봇 만들기
·
Spring
Apache openNLP를 이용하여 간단하게 고객센터 챗봇을 만드는 방법에 대해 알아보겠습니다. SpringBoot + Thymeleaf + Redis를 사용하여 작성하였고 전체소스는 Github를 참고해 주세요. 1. 라이브러리 추가plugins { id 'java' id 'org.springframework.boot' version '3.3.2' id 'io.spring.dependency-management' version '1.1.6'}group = 'com.cus'version = '0.0.1-SNAPSHOT'java { toolchain { languageVersion = JavaLanguageVersion.of(17) }}configurations { compileOnly { exten..
[Oracle] java.sql.SQLException: 소켓에서 읽을 데이터가 없습니다.
·
데이터베이스
잘되던 소스에서 어느 날부터 "java.sql.SQLException: 소켓에서 읽을 데이터가 없습니다." 오류가 발생했습니다. 락이 걸려 있는 세션을 찾아봐도 문제가 없었고, 같은 쿼리의 특정 row 에만 문제가 있는 것으로 보였습니다. 혹시 저와 같은 증상을 겪고 있다면 아래 쿼리를 이용하여 세션뿐 아니라 트랜잭션이 살아있는지 확인해야 합니다. 1. 세션 확인SELECT SUBSTR (TO_CHAR (LAST_CALL_ET), 1, 6) "경과시간(초)" , A.USERNAME , MACHINE , A.SQL_ID , B.SQL_TEXT SQLTEXT , 'ALTER SYSTEM KILL SESSION ' || '''' || A.SID || ', ' || A.SER..
[SpringBoot] 외장톰캣 배포 404 오류
·
Spring
SpringBoot 프로젝트를 내장 톰캣을 이용해 jar로 배포하지 않고, 외장 톰캣을 이용해 war로 배포할 때, 404 오류가 발생하는 경우엔 대부분 SpringBoot 애플리케이션을 초기화하지 않아 외장 톰캣이 인식을 못하는 경우입니다. 그럴 땐 main 함수가 있는 java 소스로 이동하여 아래 내용을 추가하셔야 합니다. Initializer 추가@SpringBootApplicationpublic class MyApp extends SpringBootServletInitializer implements WebApplicationInitializer { public static void main(String[] args) { try { SpringApplication.run(Pharmorder..
[Spring] 크롬 F12 console 에서 iframe 내부 Element 접근하기
·
Spring
크롬 F12를 이용해서 console에서 스크립트로 테스트를 하곤 하실 텐데요. iframe 내부에 있는 Element에 직접적으로 접근할 순 없습니다. 이번 포스팅에선 간단하게 iframe 내부 Element에 접근하는 방법에 대해 알아보겠습니다. 1. iframe 접근var iframe = document.getElementById('mainframe');iframe 의 ID를 찾습니다. 2. document 접근var iframeDoc = iframe.contentDocument || iframe.contentWindow.document;iframe.contentDocument : iframe의 내부 HTML 문서에 직접 접근(최신브라우저 가능)iframe.contentWindow.document ..
제로빈
ZeroBin`s 개발일지