본문 바로가기

Dev. Cookbook29

[MariaDB] MariaDB 10.1, 10.2 시퀀스 기능 구현 cafe24에 포팅 작업을 하면서 DB는 MariaDB로 알고 비교적 최근 버전의 안정화 버전을 사용을 해서 포팅 작업을 진행했습니다. 원래는 포팅 하려는 시스템의 환경과 소프트웨어의 버전을 정확하게 파악하고 작업해야 하는데, 그냥 호스팅 서비스에서 그렇게 오래 전의 버전을 사용할 거라 생각하지 못하고 진행한 게 불찰이었습니다. cafe24의 개별 언어별 호스팅 서비스에서 지원하는 MariaDB 버전은 MariaDB 10.1이었습니다. 이 버전은 2014년 6월에 최초 배포된 버전입니다. 물론 마이너 버전은 최근 22년 5월에 배포되었습니다만 공식 지원 자체가 22년 5월에 중단되기도 했습니다. 제목에서도 언급했지만 MariaDB에서 시퀀스 기능은 10.3 버전부터 지원하고 있습니다. 덕분에 Oracle.. 2022. 11. 5.
[MariaDB,MySQL] 버전 별 사용자 계정 비밀번호 변경 방법 최근 Oracle에서 MariaDB로 마이그레이션을 진행하면서 여러 가지 차이점을 느끼고 있습니다. MariaDB는 MySQL과 거의 동일하지만 버전업을 거치면서 조금씩 차이를 보이고 있습니다. 그러나 MariaDB의 근간이 MySQL이기에 두 DBMS는 공유하고 있는 부분도 많이 있습니다. 소소한 것들이지만 MariaDB의 버전별 차이도 조금은 크고, 불편하게 느껴져서 검색하면서 찾은 내용들을 하나씩 정리하고 있습니다. 1. 사용자 계정 비밀번호 변경 MariaDB(MySQL)에서는 DBMS에서 사용자를 추가하고 관리하는 SQL문이 DB 버전에 따라서 지원하는 방법이 서로 다릅니다. 기본적인 절차는 아래와 같습니다. 1.1 비밀번호 변경 절차 STEP 1. root 계정 로그인 STEP 2. mysql.. 2022. 11. 4.
[Windows] Windows 10에서 Symbolic Link 만들기 유닉스, 리눅스에서는 디스크를 관리하고 파일을 다루는 파일 시스템에서 Windows와 큰 차이가 있습니다. 자세한 개념을 설명하려면 몇 개의 포스팅이 별도로 필요합니다. 그렇지만 상황에 따라서 디스크 용량이나 파티션 등의 이유로 서로 다른 드라이브의 공간을 로컬 폴더인 것처럼 사용하고 싶을 때가 있습니다. 좀 더 풀어서 설명하면 디스크를 우선하는 Windows에서 C 드라이브의 용량이 부족해서 D 드라이브의 공간을 마치 C 드라이브를 접근하는 것처럼 사용할 수 있는 방법이 있습니다. 몇 가지 방법이 있지만 논리적인 링크인 심볼릭 링크(Symbolic Link)를 사용해서 다른 디스크의 폴더(물론 같은 디스크의 폴더도 사용 가능)를 자신이 원하는 곳에 폴더로 생성하고 접근할 수 있습니다. 저도 대략적으로 .. 2022. 10. 10.
[Java] Map Collection 전체 조회 하는 방법 3가지 Java의 Collection은 여러 가지 자료구조를 지원하고 있으며 그중에서 Map도 아주 자주 사용하는 Collection 중 하나입니다. Map은 Key와 Value로 이루어진 자료 구조로 간편하게 Key와 Value가 모두 String으로 이루어진 형태도 많이 사용하고 있습니다. 대표적인 것이 Property 파일과 같은 데이터를 다룰 때 사용할 수 있겠습니다. Map은 여러 가지 형태의 자료구조로 구성이 가능하지만 여기서는 간단히 String으로만 이루어진 Map을 다루도록 하겠습니다. 1. Map 자료 입력 Map map = new HashMap(); map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3");.. 2022. 6. 11.
[HTML, JS, JSP] 페이지 자동 새로고침, 일정 시간 후 다른 페이지로 보내기 가끔 홈페이지를 보면 일정 시간마다 새로고침을 하거나, 일정 시간 후 다른 페이지로 보내는 기능을 볼 수 있습니다. HTML의 메타태그에서 제공하고 있는 기능입니다. 이를 기본으로 해서 JSP, Javascript에서 모두 동일한 기능을 하는 코드를 작성할 수 있습니다. 1. 일정 시간 후 페이지 새로고침 1.1 HTML의 메타 태그 사용 HTML의 META Tag를 이용한 Reload 1.2 JSP에서 response.setHeader를 사용 JSP에서는 setHeader 함수를 사용해서 설정할 수 있습니다. HTML의 메타태그에서 보던것과 같은 파라미터로 "Refresh"를 설정하고 그 다음 초를 설정하면 됩니다. 테스트용 코드는 아래와 같습니다. response.setHeader를 이용한 Reloa.. 2022. 6. 1.
[JavaScript] 모니터, 듀얼 모니터 및 브라우저 기준으로 팝업창 가운데 띄우기 요즘은 브라우저에서 사용자 인터페이스를 구현할 때 팝업창을 띄우는 일이 많이 줄었습니다. 그래도 가끔은 필요하기에 간단하게 팝업창을 띄우는 방법은 비교적 간단합니다. Javascript에서 window.open() 함수를 사용하면 됩니다. 팝업창을 띄우는 자세한 방법에 대해서는 아래 링크를 참고해주세요. [Javascript] window.open(), window.opener() 부모창 자식창 간의 제어 방법 그런데 팝업창을 화면의 중앙에 띄울 경우는 조금 더 복잡하게 팝업창을 띄울 위치를 계산해야 합니다. 게다가 듀얼 윈도를 사용하는 사용자들이 많아지면서 일반적인 방법의 계산으로는, 팝업창이 듀얼 윈도를 기준으로 계산이 되어, 엉뚱한 위치에 띄워지게 됩니다. 그리고 전체 화면으로 사용하고 있지 않은 .. 2022. 5. 30.
[Oracle] ORA-00984: 열을 사용할 수 없습니다. "column not allowed here" ORA-00984 : 열을 사용할 수 없습니다. : "column not allowed here" SQL 오류: ORA-00984: 열을 사용할 수 없습니다 00984. 00000 - "column not allowed here" *Cause: *Action: SQL 구문에서 해당 컬럼에 적합하지 않은 값을 대입하려고 시도할 경우에 발생합니다. SQL문에서 문자열에 작은따옴표( ' ) 대신 큰따옴표( " )를 사용한 경우 내장 함수의 이름이 틀린 경우 문자열을 입력해야 하는 데 작은따옴표를 잊어버린 경우 CREATE TABLE person ( name VARCHAR2(30), age NUMBER(3), birthday DATE ); -- name 컬럼의 문자열에 작은따옴표가 없음. INSERT INTO .. 2022. 5. 27.
[Oracle] ORA-08002: 시퀀스 xxx.CURRVAL은 이 세션에서는 정의 되어 있지 않습니다 ORA-08002 : 시퀀스 xxx.CURRVAL은 이 세션에서는 정의되어 있지 않습니다. ORA-08002: 시퀀스 PRODUCT_SEQ.CURRVAL은 이 세션에서는 정의 되어 있지 않습니다 08002. 00000 - "sequence %s.CURRVAL is not yet defined in this session" *Cause: sequence CURRVAL has been selected before sequence NEXTVAL *Action: select NEXTVAL from the sequence before selecting CURRVAL 시퀀스 현재 값을 조회하는 방법은 SELECT 시퀀스명.CURRVAL 입니다. 그러나 CURRVAL 값은 시퀀스값이 한 번 이상 읽히지 않으면 조회가.. 2022. 5. 27.
[JavaScript] window.open(), window.opener() 부모창 자식창 간의 제어 방법 브라우저에서 새로운 팝업창을 열었을 때, 팝업창은 자식창, 팝업을 띄운 창은 부모창입니다. 자주는 아니지만 UI 설계 과정에서 팝업창을 사용하기도 합니다. 그리고 많은 데이터는 아니지만 간간히 부모창과 자식창 간에 데이터 전달이 필요합니다. 이때 Javascript로 부모창과 자식창을 서로 제어하기 위한 주요 함수와 속성이 window.open(), window.opener 입니다. 1. window.open() Javascript로 새로운 팝업창을 열기 위해서 사용하는 것이 window.open() 메서드입니다. window.open() 메서드의 기본 사용 방법은 아래와 같습니다. // 기본 구문 window.open(URL, [target, [windowFeatures]]); // 예제 window... 2022. 5. 26.
[java] Oracle 버전 별 JDBC Driver 다운로드 및 호환성 확인 벌써 부터 쓸데없는(?) 걱정이 생겨서 찾아봤습니다. 별 것 아니라고 생각되기도 하지만 늘 소프트웨어의 버전과 호환성은 어느날 갑자기 개발자를 괴롭히는 적입니다. Oracle을 사용한 지도 제법 오래되었는데 벌써 Oracle Database 21c (21.5) 버전까지 올라갔네요. 아직도 옛날 버전을 사용하고 있는 시스템들도 있을 것 같아 생각난 김에 한 번 정리해봤습니다. 1. 최신 Oracle JDBC Driver 다운로드 가장 최신 버전의 Oracle JDBC Driver는 아래 링크에서 다운로드 받을 수 있습니다. https://www.oracle.com/kr/database/technologies/appdev/jdbc-downloads.html 페이지를 한 번 미리 살펴보면 Oracle 21c,.. 2022. 5. 25.