전체 글 (31) 썸네일형 리스트형 [MongoDB] 보조적인 JOIN 기능 - $lookup 대부분의 NoSQL DBMS가 그러하듯이 MongoDB 서버도 조인( JOIN )을 지원하지 않는다. 그래서 MongoDB에서는 조인이 필요하다고 생각되면 하나의 도큐먼트에 조인 대상 데이터를 내장( Embed )할 것을 권장하고 있다. 하지만 이렇게 도큐먼트를 통합하는 방식은 모든 유즈케이스에 대한 해답이 될 수는 없을 것이다. 다행이 MongoDB 3.2 버전부터는 "$lookup"이라는 보조적인 조인 기능을 제공하고 있다. 초기 MongoDB에서는 이 기능을 유료 버전( 엔터프라이즈 버전 )의 MongoDB에만 적용할 것이라고 발표했지만, 커뮤니티의 반발로 인해서 무료 버전( 커뮤니티 버전 )에도 같이 포함돼서 배포되고 있다. Lookup 기능은 어그리게이션( Aggregation ) 기능의 일부로.. [JAVA] 쓰레드(Thread) STEP#01. 쓰레드( Thread )란? 쓰레드( Thread )란? java라는 명령어를 실행해서 결과를 출력하고, 끝내는것을 의미한다. 하지만 웹 어플리케이션처럼 한번 실행해 놓고, 계속 기능들을 제공하는 프로그램을 만든다면 쓰레드라는 것이 무엇인지 알아야 한다. java 프로그램을 사용하여 뒤에 클래스 이름을 붙이고, 엔터를 치면 적어도 하나의 JVM이 시작된다. 보통 이렇게 JVM이 시작되면 하나의 자바 프로세스( Process )가 시작한다. 이 프로세스라는 울타리 안에서 여러 개의 쓰레드 라는 것이 아둥바둥 살게된다. 즉, 하나의 프로세스 내에 여러 쓰레드가 수행된다. 하지만, 거꾸로 여러 프로세스가 공유하는 하나의 쓰레드가 수행되는 일은 절대 없다. 어떤 프로세스든 간에 쓰레드가 하나 이.. [JAVA] Eclipse IDE - UTF-8 설정 이클립스로 JSP 파일을 생성하면 문자셋이 EUC-KR로 생성된다. 위와같이 EUC-KR로 세팅되어있는 기본 문자셋들을 한글을 사용할 수 있게 UTF-8로 변경하려 한다. 이클립스 상단 메뉴에서 Window > Perferences 를 선택하여 환경설정을 변경해 주자. 환경설정( Preferences ) 팝업창이 뜨면 좌측 카테고리 General > Content Types 에서 아래 이미지와 같이 설정을 변경한다. Content Type에서 Java Class File을 선택하고 하단 Default encoding : UTF-8 을 입력하고 Update 버튼을 눌러준다. 다음으로 General > Workspace 메뉴에서 Text File Encoding을 변경한다. Text File Encoding.. [JAVA] JAVA 8 버전 개발환경 설정하기 - Windows 10 STEP#01. JDK 8 버전 다운 받기 https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html 경로에 접속하 JDK를 다운받아보자. Java SE 8 ( 8u202 and earlier ) 버전을 선택해 준다. ※ JAVA SE 8 ( 8u202 and earlier ) 버전을 사용하는 이유 Oracle이 2018년 7월부터 JAVA를 유료( Paid ) 구독형 라이센스로 개편하면서 JAVA SE 8 ( 8u211 and later ) 버전부터는 6개월 이후부터는 보안 업데이트가 이루어지지 않는 형태로 변경되었다. 그렇기 때문에 JDK 8 버전 이상을 무료( Free )로 이용하기 위해서는 Oracle이 아닌 Open J.. [Spring] Spring Tool Suit 다운 및 설정 STEP#01. Spring Tool Suit 다운받기 STS( Spring Tool Suit )는 스프링 프레임워크 개발툴로 많이 사용되는 Eclipse 기반의 통합개발환경( Integrated Development Environment, IDE )이다. 스프링 프레임워크 프로젝트 통합개발환경을 구축하기위해 SpringTools for Eclipse( https://spring.io/tools )를 다운받아고 설정해 보자. STS를 설치할 컴퓨터 운영체제( Operating System, OS ) 버전에 일치하는 다운로드 버튼을 클릭하여 spring-tool-suite-버전정보.jar 파일을 다운로드 받는다. 해당 포스팅에서는 Windows 10 64Bit 환경에서 설치를 진행한다. 다운받은 파일은 S.. [JAVA] 배열 출력 하기 - java.util.Arrays System.out.print 명령을 통해 배열값을 출력하기위해서는 java.util.Arrays를 import하고 Arrays.toString( )을 사용하면 된다. import java.util.Arrays; public class arrayPrint { public static void main(String[] args) { String[] arrCar = { "셀토스", "코나", "티볼리", "트레저" }; System.out.print( Arrays.toString( arrCar )); } } java> [ 셀토스, 코나, 티볼리, 트레저 ] 위와같은 결과가 출력되는 것을 확인 할 수 있다. [MongoDB] CRUD 쿼리사용 - BulkWrite BulkWrite는 MongoDB 데이터 변경 명령( INSERT, UPDATE, REMOVE( DELETE ) )을 모아서 한 번에 실행할 수 있는 명령이다. BulkWrite 명령은 다음과 같이 다양한 명령을 한 번에 모아서 실행할 수 있는데, 반드시 하나의 컬렉션에 대해서만 데이터를 변경할 수 있다. ① insertOne ② updateOne ③ updateMany ④ replaceOne ⑤ deleteOne ⑥ deleteMany 간단히 BulkWrite 명령의 예제를 한번 살펴보자. 다음 예제는 characters 컬렉션의 데이터를 변경하는 여러가지 명령을 한번에 모아서 실행하는 방법을 보여주고 있다. mongo> db.characters.bulkWrite( [ { insertOne : { "d.. [MongoDB] 격리된( $isolated ) UPDATE와 REMOVE MongoDB의 쓰기( UPDATE와 DELETE ) 오퍼레이션은 도큐먼트 단위의 원자성( Atomicity )만 제공한다. 하나의 쓰기 오퍼레이션으로 여러 도큐먼트를 변경하거나 삭제하더라도 MongoDB 서버는 내부적으로 하나의 트랜잭션으로 하나의 도큐먼트만 처리하는 방식으로 작동한다. 그래서 MongoDB 서버에서 일반적으로 쓰기 오퍼레이션으로 여러 도큐먼트를 변경하면 오퍼레이션이 완료되기도 전에 먼저 변경된 데이터들은 다른 컨넥션에서 즉시 조회를 할 수 있게 된다. 만약 하나의 UPDATE나 DELETE 명령이 완료되기 전까지는 다른 커넥션에서 변경 내용을 확인하지 못하게 하려면 격리된 UPDATE 또는 DELETE 또는 REMOVE 명령을 사용해야 한다. 다음 예제는 UPDATE와 REMOVE 명.. [Spring] Spring 데이터 MongoDB 몽고DB( MongoDB )는 데이터를 도큐먼트( document )로 저장하는 NoSQL 데이터베이스다. 도큐먼트는 다음 예제와 같이 JSON( 자바스크립트 객체 표기법 ) 문자열과 비슷하다. { _id : 5747d49f16e329249803bf47 , balance : 1000 , lastTransctionTimestamp : 2016-05-27 10:31:19 } ※ MongoDB의 특징 ① 몽고DB 도큐먼트는 필드-값 쌍으로 이뤄진다. ② 도큐먼트는 관계형 데이터베이스 테이블에 저장된 레코드에 비유된다. ③ 각 도큐먼트에는 그 도큐먼트의 기본키인 _id 피르닥 있다. ④ 몽고DB는 '_id' 필드값을 자동으로 생성한다. ⑤ 컬렉션( Collection )을 만들고, 비슷한 도큐먼트를 컬렉션에 저.. [MongDB] CRUD 쿼리 사용 - INSERT, UPDATE, REMOVE 기존 RDBMS와 MongoDB의 차이점 중에서 실제 사용자 입장에서 가장 크게 실감하는 부분은 아무래도 쿼리작성일 것이다. 프로그램 언어로 MongoDB 쿼리를 작성하는 것은 쿼리 빌더와 같은 래퍼( Wrapper ) 클래스의 도움을 받으면 되기 때문에 그다지 어렵지 않다. 하지만 BSON( Binary Json ) 쿼리를 직접 손으로 입력해야 하는 경우( Mongo 셰리아 쿼리 도구 사용 )에는 괄호 쌍을 맞추는 것이 여간 귀찮은 일이 아닐 수 없다. 이런 어려움을 해결하기 위해서 SQL을 MongoDB BSON 쿼리로 변환해 주는 웹 사이트들이 있지만. 상당히 부족한 상태다. 지금은 BSON 쿼리를 자주 접하면서 문법에 익숙해 지는 것밖에 방법이 없을것으로 보인다. MongoDB의 BSON 쿼리는 .. 이전 1 2 3 4 다음