본문 바로가기

NoSQL 정리 나무위키의 내용을 요약/정리 했습니다. NoSQL은 Not only SQL의 약자로 데이터를 저장하는 데에 SQL 외에 다른 방법도 있다! 라고 보면 될 듯 하다.MongoDB와 CouchDB에서 사용하는 쿼리 언어는 전혀 다름에도 SQL이 아니기에 NoSQL 카테고리에 범주한다. 헷갈릴 수 있는데 NoSQL != No RDBMS 임을 알자. BerkleyDB와 같은 NoSQL 이면서 RDMS인 녀석도 있다. (반대로 No RDBMS != NoSQL 이기도 하다. KV-store라는 녀석이 있다.) NoSQL의 정의가 명확하지는 않지만 현재 NoSQL이라 불리는 DB들은 대체적으로 공통적인 부분이 있다. - 대부분 클러스터에서 실행할 목적으로 만들어 졌다. - 대부분 오픈소스이다.- 스키마 없이 동작(S..
Collection remove에 대해 Collection의 element를 remove 할 때, 1. Arrays.asList() 아래와 같이 Arrays.asList() 를 통해 생성한 리스트의 0번째 인덱스를 삭제해보자.List aaList = Arrays.asList("a", "1", "c", "d", "e"); aaList.remove(1); 두둥.... 지원하지 않는 연산이란다. Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.remove(AbstractList.java:161) at JavaExamples01.marathon(JavaExamples01.java:22) at ModernJava.main(ModernJ..
String, StringBuffer, StringBuilder 1.String은 Immutable이다.vsStringBuffer/StringBuilder는 mutable이다. 2.String으로 +연산, concat을 이용하면 새로운 String 객체가 만들어지는 것이다.(JDK 1.5부터 +연산이 내부적으로 StringBuilder에 의해 이뤄지긴 함.)참조되지 않는 String은 GC 대상이 된다.문자열 연산이 많은 경우 오버헤드가 발생할 수 있다. vsStringBuffer와 StringBuilder는 문자열 연산이 자주 있을 때 사용한다. 3.StringBuffer는 멀티 스레드 환경에서 syncronized 키워드가 가능해 동기화가 된다. 즉, thread-safe하다vsStringBuilder는 동기화를 지원하지 않지만 연산이 빠르다. vsString은 ..
Object의 메서드/equals/hashCode/clone Object class는 모든 자바 클래스의 최상위 클래스이다. 필드는 없고, 11개의 메소드를 가지고 있다. toString- 해당 인스턴스에 대한 정보를 문자열로 반환한다. - 구분자로 '@'가 사용되고 그 뒤로 16진수 해시 코드가 추가된다. equals- 전달 받은 매개변수와 해당 인스턴스를 비교하여 그 결과를 반환한다.- 참조값을 비교하므로 주소 값이 같아야 참이 된다. - 중요한 규칙이 있는데, equals를 재정의 할 때는 hashCode도 재정의 해야 한다. - 그렇지 않으면 규약이 깨질 수 있다. (A->B가 true이면 C->B는 true다 뭐 이런거..)- 자세한 내용은 참고 블로그를 보자. clone- 해당 인스턴스를 복제하여 새로운 인스턴스를 생성해 반환한다.- Object의 cl..
JVM https://huelet.tistory.com/entry/JVM-%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0 에서 참고했습니다. 메모리는 프로그램을 실행하기 위한 데이터, 명령어가 저장되는 공간이다. 한정된 공간이기 때문에 효율적인 관리가 중요하다. 메모리가 부족하게 되면 성능 문제 뿐만 아니라 프로그램 자체가 뻗어 버릴지도 모른다. 프로그램이 실행되려면 OS가 제어하는 RAM(=memory)이 필요한데 JAVA 이전의 언어들은 OS에 종속적이다.JAVA에서는 이런 OS 의존성을 없앴는데 그 역할을 해 주는 것이 JVM이다.JVM이 각 OS로부터 메모리 권한을 할당 받아 프로그램을 실행해 준다. 즉, JAVA는 OS로부터는 독립적이지만 JVM에 종속적이고..중간에 ..
Normalization & Denormalization 요약 Normalization: 정규화, Denormalization: 비정규화에 대해 간략하게 요역 한다. Normalization 데이터베이스에서 정규화 작업은 데이터 모델을 검증하는 방법다. 이론적으로는 5단계로 구성되어 있고, 실질적으로는 3단계까지만 적용하는 경우가 대부분이다. 고려되는 요소는 아래와 같다. - 중복 컬럼 삭제: No repeating group- 유일키 전체에 대한 종속: Whole key dependent- 유일키가 아닌 것에 영향을 받는 속성은 분리: Non-key Independent 정규화 작업은 중복 컬럼 등을 분리하여 유지보수를 쉽게 해 주지만, 비효율적인 정규화는 '조인'을 과도하게 사용하게 되어 성능을 떨어뜨린다. 따라서 성능적 측면을 고려한 비정규화 작업을 실행해 주..
캣타워를 샀다. 지난 2월 13일 캣타워를 구매했다. 네이버 카페 '냥이네'와 네이버 쇼핑, 11번가 등 많은 곳에서 후기를 살펴보다가..아래 사이트의 제품은 코팅이 디폴트로 적용되어 있고해서 결국은 여기서 샀다. http://treecat.co.kr/ 제품이 너무 다양해서 고민이 많았는데.. 투명 해먹(보울)과 수직 스크레쳐, 클라이밍 스크레쳐가 다 포함된 녀석을 골랐다.가격은 대충 30만원 + 배송비 3만원 으로 보면 된다. 박스가 4개나 왔다. 내용은 요렇다. 나사가 2종류여서 크게 어려운 건 없다. 스크레쳐 장판을 이벤트로 줘서 매우 만족스럽다.다 설치해보니 약간 흔들려서 한쪽 다리에 종이를 꽂아넣긴 했는데 대체적으로 튼튼하다. 똥손이라 조립하는데 1시간 넘게 걸린 것 같다. 애들이 호기심에 여기저기 살펴본다. ..
Filter & Interceptor Filter, Interceptor 웹 프로그래밍을 하다보면 컨트롤러에 도달하기전 전처리가 필요한 경우가 있다. 후처리일수도 있고.. 가령.. 회원 인증 여부를 체크하고 싶다던가, 개인정보 보호를 위해 로그 기능을 끄고 싶다던가..권한 체크..Cross Site Script(XSS) 방어..PC/Mobile web 분기..인코딩 변환... 등등등 공통적인 기능들은 각 컨트롤러에서 할게 아니라 전처리 또는 후처리를 해주면 매우 좋다. 그럼 컨트롤러에 도달하기 전에 어떤 레이어가 있을까?Spring MVC life cycle를 검색해보면 아래와 같은 그림을 볼 수 있다. 출처: https://all-record.tistory.com/164 [세상의 모든 기록]> Request가 들어오면 Filter를 맨 먼..