MySQL 혹은 MariaDB에서 널(NULL) 값을 다른 값으로 교체를 하고 싶을 경우, 대표적으로 2가지의 방법을 활용하는데요. 2가지의 방법을 모두 활용해보고, 어떤 차이가 있는지 알아보도록 하겠습니다. IFNULL 함수 우선 NULL값을 가장 심플하게 처리하는 방법으로는 IFNULL이 있습니다. IFNULL은 2개의 인자를 받아서 첫번째 인자가 NULL값인 경우 두번째 인자로 대체하는 함수입니다. 간단히 생각해서 IFNULL(값, 대체값) 형식으로 사용되며, 여기서 값이 NULL일 경우 대체값으로 처리 되는 방식입니다. 사용 방식 SELECT IFNULL(column_name, '교체할값') From table_name; 예시 SELECT IFNULL(sales, 0) from sales_tabl..
DB에서 데이터 값이 존재하지 않을 경우 Null이라고 하고, 빈값일 경우 Empty라고 합니다. Null 체크 방법 MySQL에서 Null을 체크하기 위해서는 아래와 같이 IS NULL 아니면 IS NOT NULL을 사용 하면 됩니다. 컬럼 IS NULL 컬럼 IS NOT NULL 예를 들어, title이라는 컬럼에 Null 값이 들어올 수 있을 경우, title IS NULL 이라고 할 경우 title에 값이 없 경우를 지칭하며, title IS NOT NULL이라고 할 경우 title에 NULL값이 있는 경우를 지칭합니다. SELECT * FROM BOARD WHERE TITLE IS NOT NULL; 예를 들어 위와 같이 쿼리를 날릴 경우, BOARD라는 테이블(혹은 VIEW)에서 TITLE에 값..
MySQL 혹은 MariaDB에서 뿐만 아니라 오라클(Oracle) DB에서도 Group by는 존재합니다. 워낙 범용적으로 사용되고 데이터의 확인 용도 뿐만 아니라, 통계 등에 사용되기 때문에 필수로 알아야 될 쿼리(Query)인데요. 해당 쿼리에 대해서 알아보도록 하겠습니다. 그룹 바이(Group by) 우선 해당 쿼리문을 한번에 이해하기 보다는 하나씩 이해하는 편이 좋습니다. 그룹바이라는 쿼리는 데이터를 기준이 되는 값으로 그룹을 묶어서 보여줘라라는 뜻입니다. 해당의 쿼리는 예제를 보면서 확인해보도록 해보죠. stock_nm|country|exchange| --------+-------+--------+ 삼성전자 |korea |KOSPI | 카카오 |korea |KOSPI | 네이버 |korea |..
테이블 생성하는 방법은 많은 DB Tool들이 대다수 지원을 하는 것이지만, 본 포스팅은 대표적인 Mysql(혹은 MariaDB) 무료 툴중 하나인 DBeaver로 설명을 해보도록 한다. 만약 DBeaver를 설치하지 않았다면, 아래 링크를 들어가서 먼저 DBeaver를 설치하고 다시 돌아오면 좋을 것이다. 무료 DB Tool, DBeaver (디비버) 무료 DB Tool, DBeaver (디비버) 디비버(DBeaver)는 무료로 사용할 수 있는 DBMS 툴과 동시에 다양한 DBMS를 핸들링할 수 있다. 일반적인 관계형 DBMS의 경우 JDBC API를 사용하여 JDBC 드라이버를 통해 데이터베이스와 통신하며, NoSQL의 needneo.tistory.com 디비버를 모두 설치하였다면, 데이터베이스를 접..
MySQL 혹은 MariaDB를 설치하였다면, 제일 처음 해야 할 일은 작업을 해야 할 공간인 데이터베이스(Database)를 생성하는 것이다. 일반적으로 데이터베이스는 프로젝트 단위로 생성하는 것이 일반적이지만, 프로젝트들이 서로 연결이 되는 경우 하나의 거대한 데이터베이스를 사용하기도 한다. 데이터베이스가 서로 다를 경우, 즉 다른 데이터베이스에 있는 테이블들은 같이 사용할 수 없기(편법이 있긴 하지만) 때문에 즉 같이 써야 하는 테이블들은 한 데이터베이스에 뭉쳐놔야 한다는 점을 잊지 말도록 한다. MySQL Client 접속 MySQL로 검색을 하든지 설치한 앱을 찾아서 직접 실행을 하든지 그림 1.의 MySQL Client를 클릭한다. Root 비번을 입력하면, 그림 2와 같이 명령어들을 실행할 ..
인덱스 리스트 명령어 curl -XGET http://localhost:9200/_cat/indices 결과 C:\Users\steel>curl -XGET http://localhost:9200/_cat/indices yellow open test-index wNb0z1QRQTOJdlsY7fzCuA 1 1 1 0 4.6kb 4.6kb green open .apm-custom-link Nn5uCq1kScqbQyXwPG8HMQ 1 0 0 0 208b 208b green open .kibana_task_manager_1 Qn0h-L0-QcaGly3Q58Dcig 1 0 5 0 76kb 76kb green open .apm-agent-configuration 62kQfIVrSdKVHXvtM74Ypg 1 0 0 0..
이 포스팅은 팁으로 올리는 포스팅이 아니라, 금일 발생한 문제에 대해서 적어보기 위함이다. 아직까지 문제는 해결되지 않았고 추후 이런 문제가 재발되었을 경우 어떻게 해야 될지 고민중이라 그냥 끄적이는 일기장같은거라고 해야 할까? 하루에 엄청나게 들어오는 사이트에서 백엔드의 일부 서비스를 몽고DB 3대를 클러스터링한 것으로 API를 제공하고 있다. 몽고DB에는 추천 알고리즘으로 분석된 결과가 저장되어 있으며, 이를 일부 서비스에서 제공을 하고 있었는데 금일 오전 갑자기 클러스터 한대가 중지(Kill) 되었다. 깔끔하게 죽어버려서 로그(Log)를 뒤져봐도 아무런 문제가 없었는데 다행인것은 클러스터이기 때문에 API는 해당 서버를 무시하고 나머지 서버와 통신을 하며 운영중이었다. 머리속에서 DB 대수를 늘려야..
디비버(DBeaver)는 무료로 사용할 수 있는 DBMS 툴과 동시에 다양한 DBMS를 핸들링할 수 있다. 일반적인 관계형 DBMS의 경우 JDBC API를 사용하여 JDBC 드라이버를 통해 데이터베이스와 통신하며, NoSQL의 경우 개별적인 데이터베이스 드라이버를 사용한다. 자동완성과 구문 강조를 지원하는 편집기로 이클립스 플랫폼에 기반을 두기 때문에 자바로 작성된 애플리케이션이라 생각하면 된다. DBeaver는 아파치 라이선스로 배포되기 때문에 Free Open Source이다. DBeaver는 2가지 버전이 존재하는데 하나는 Community Edition으로 우리가 생각하는 일반적인 무료 소스이며, 기업을 위한 버전이 존재하는데 당연히 이 버전은 유료이며 더욱 많은 기능등을 제공해준다. 엔터프라이..
마리아DB는 MySQL를 만든 창업자가 만든 무료 DB로 MySQL을 인수한 Oracle의 상업적인 모습에 뛰쳐나와 만들었다. 그래서 둘은 스펙적으로 매우 유사하며 상업적으로 변모하는 MySQL을 쓰던 기업들이 MariaDB로 기업들이 이전을 하는 모습을 보인다. 아마도 InnoDB 스토리지 엔진을 제외한 MySQL에 있는 기능 대부분은 썬 마이크로시스템즈때 있었던 기능들입니다. 오라클 인수 후 MySQL은 발전하지 않았습니다. 오라클은 ‘MySQL을 어떻게 하면 자신들의 소유로 할 수 있을까’만 고민했고, 그래서 회사를 나왔습니다. - MariaDB를 만든 몬티 와이드니어스 - MariaDB는 MySQL을 쓰던 기업들이 언제든 Maria로 교체하는 것을 쉽게 하기 위해서 호환성을 유지하며 기능적으로도 ..
Pom.xml org.springframework.data spring-data-mongodb 1.10.3.RELEASE spring-data-mongodb 라이브러리를 설치 임시로 만든 test 콜렉션 임시로 test 콜렉션을 생성한 후, 아래와 같이 콜렉션을 드랍하는 메소드를 만들었다. 콜렉션을 삭제하기 위한 프로그램 예제 /** * 콜렉션을 드랍한다 * @param collectionNm * @return */ public int dropCollection(String collectionNm) { MongoClient mongoClient = null; int rc = 0; try { mongoClient = getMongoConnectionStg(); DB database = mongoClient..
전자정부프레임워크(EgovFramework)는 EgovAbstractDAO라는 것을 상속해서 다중 DataSource를 사용할 수 있다. 우선, context-datasource.xml을 열어서, dataSource를 한개 더 만든다. 위와 같이, datasource를 우선 2개 만든다. 그리고, context-sqlMap.xml을 열어서 마찬가지로 Client를 한개 더 생성한다. 원래 있던 sqlMapClient와 spectrumSqlMapClient라는 신규 이름의 클라이언트 bean을 생성하였다(당연히 신규 bean은 본인들이 맞게 설정한다) 그리고 위 설정에 맞게 sqlmap 위치에 spectrum-sql-map-config.xml을 생성한다 Spectrum_SQL.xml이라는 mapper를 생..
전자정부프레임워크는 기본적으로 iBatis 혹은 MyBatis를 이용하여 DB를 연동하게 된다. 일반적으로 DAO단에서 DB를 호출 할 때 sqlMapClient를 호출하게 되는데 전자정부프레임워크에는 이러한 부분이 노출되지 않고 숨겨져 있어서 다중으로 호출을 하는 분들이 힘드실 수 있다. 이에 간단한 가이드를 제공하고자 한다. 우선 DB를 연동하기 위해서는 Bean을 신규로 2개를 생성해야 하는데 우선 dataSource를 신규 생성해야 한다. egovframework/spring/context-datasource.xml을 열어서 --> 이와같이, 기존의 dataSource 말고 하나를 더 추가하여, 다른 이름의 bean을 만든 후 egovframework/spring/context-sqlMap.xml..