목록분류 전체보기 (119)
이것저것
JSON (JavaScript Object Notation) - 브라우저 통신을 위한 속성-값 또는 키-값 쌍으로 이루어진 데이터 포맷이다. 특징 - 사용하기 쉽다. - 적은 메모리 공간을 사용하기 때문에 빠르다. - 매핑을 생성하지 안하도 된다. (Jackson API 가 직렬화할 여러 개체에 대한 기본 매핑을 제공한다.) - 종속성 : JSON 을 사용하기 위해 다른 라이브러리가 필요하지 않다. JSON의 장점 - 모든 브라우저에 대한 지원을 제공한다. - 구문이 간단하고, 직렬화가 가능하다. - 생성, 조작, 읽기, 쓰기가 쉽다. JSON의 단점 - 네임 스페이스 지원이 없다. ( 확장성이 부족) - 형식적인 문법 정의 지원( 문법을 지켜야한다) - 제한된 개발 도구 지원 //JSON 예 {"pet..

2.3.1 Index Range Scan Index Range Scan은 B*Tree 인덱스의 가장 일반적인 정상적인 형태의 액세스 방식이다. Index Range Scan을 하려면 선두 컬럼을 가공하지 않은 상태로 조건절에 사용한다. (즉, 선두컬럼을 가공하지 않은 상태로 조건절에 사용하면 Index Range Scan은 무조건 가능하다.) 그러나 인덱스 잘타니까 성능도 OK 는 아니다! 성능은 인덱스 스캔 범위, 테이블 액세스 횟수등을 얼마나 줄일 수 있는가? 에 따라 달라진다. 2.3.2 Index Full Scan Index Full Scan은 수직적 탐색 없이 인덱스 리프 블록을 처음부터 끝까지 수평적으로 탐색한다. 데이터 검색을 위한 최적의 인덱스가 없을 때 차선으로 선택한다. (최적의 인덱스..
Java Primitve type 종류와 값의 범위 그리고 기본 값 Primitve type은 자바의 기본 타입들이며, 총 8가지가 존재한다. 자바에서는 필드 선언시 초기화를 하지 않으면, 디폴트 값으로 초기화가 된다. Primitive type은 유의미한 값을 가지며, Reference type 은 null로 초기화가 됩니다. - boolean : true/false를 나타내는 타입이며, JVM 의 구현은 1byte을 사용한다. 디폴트 값은 false - char : unicode 문자를 나타내는 정수형 타입이다. unsigned 2byte기 때문에 표현할 수 있는 값의 범위는 '\u0000'(0)에서 '\uffff'(65535) 이다. 기본 값은 '\u0000'이다. - byte : 이름과 같이 1b..
1. 정의 "무엇을(a) 어떻게(b) 한다" 로 잘 정의된 API를 REST API라고 한다. a) 무엇을? - HTTP URI 로 정의된 리소스 - 리소스는 처리되는 대상을 의미하며, JSON, XML, 그림, 음악, HTML 등 다양한 형태의 형식을 지원한다. - URI 는 특정 자원의 위치를 나타내는 유일한 주소를 의미하며, 대표적으로 URL 이 있다. b) 어떻게? Method + Payload로 구성 Method - REST API 는 리소스의 타입이 뭐든 간에, 리소스에 대한 행위가 일관되게 정의한다. (=같은 메서드에 의해 다뤄진다.) - Method의 종류는 대표적으로 POST, GET, PUT, DELETE 등이 있다. - DB CRUD 와 매핑해보면 POSTCREATE, GETSELEC..

Effective Java [아이템 4 : 인스턴스화를 막으려거든 private 생성자를 사용하라] [모든 클래스가 인스턴화가 필요한 것은 아니다.] 정적 메서드와 필드만을 담을 클래스는 쓸모가 있다. java.lang.Math, java.util.Array 처럼 기본 타입값이나 배열에 관련된 메서드들을 모을 수 있고, java.util.Collections 처럼 특정 인터페이스 구햔 객체를 생성해주는 메서드를 모아 놓을 수도 있다. final 클래스와 관련된 메서드를 모을 때도 마찬가지다. 이를 상속하여 하위클래스에 메서드를 넣는 것이 불가능하기 때문이다. (애초에 상속 불가능) [인스턴스화를 막으려면?] 클래스 내부에 정적 메서드만 있고, 유틸리티 기능을 강조하기 위한 클래스를 하나 만들어보았다. 유..
[OOP 란?] OOP 란 Object-Oriented Programming의 줄임말로 객체 지향 프로그래밍 방식을 의미한다. [OOP 외의 프로그래밍 방식은 무엇이 있을까?] - 절차적 프로그래밍 방식 입력을 받은 순서대로 처리하여 결과를 내는 방식 - 구조적 프로그래밍 방식 함수단위로 쪼개고, 함수를 호출하는 방식 큰 문제를 작은 문제 여러개로 나누어 해결 (Top-Down 방식) - 객체 지향 프로그래밍 방식 큰 문제를 작은 문제 여러개로 나누는 것이 아닌, 작은 문제들을 해결하는 객체를 만드는 방식 객체를 조합하여 큰 문제를 해결 (Bottom-Up 방식) [OOP의 다섯가지 원칙 : SOLID] S (Single Respinsibilty Principle) : 한 클래스는 하나의 책임만 갖는다...

https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr [풀이과정] 구해야하는 것 : 보석을 모두 포함하는 가장 짧은 구간의 시작점과 종료점 1) 먼저 보석의 종류들을 set에 모두 담아둔다. (vector아닌 set에 담아두는 이유 : set은 중복 원소를 포함하지 않으므로, 보석이 종류들만 얻을 수 있다. 2) 투 포인터를 사용하여 가장 짧은 구간의 시작점을 찾아준다. start와 end를 각각 0으로 초기화하고, 다음과 같은 두 가지의 경우로 나뉘어진다. - ..
둘 다 이진탐색 (Binary Search) 기반의 탐색법이다. 이진탐색 (Binary Search) 기반이므로 배열이나 리스트가 오름차순으로 정렬되어있어야 한다. [upper_bound] upper_bound는 key 값을 초과하는 가장 첫 번째 원소의 위치 (주소)를 구한다. 사용법 : upper_bound(시작 주소, 끝 주소, key 값) 리스트의 값이 key 값을 가장 먼저 초과하는 주소 값을 리턴한다. 찾는 값이 없을 경우 끝 주소를 리턴한다. (벡터의 경우 , v.end() ) v : 1, 1, 2, 2, 3, 3, 4, 4 upper_bound(v.begin(), v.end(), 3) => v[6] 의 주소값을 리턴한다. [lower_bound] lower_bound는 key와 같거나 큰 ..