Redis (in Memory) Key에 대한 단위 연산이 빠릅니다. 하지만 여러 Key에 대한 연산은 느릴 수 있습니다. 메모리를 저장소로 쓰는 경우, 아주 빠른 Get과 Put을 지원합니다. 장점 Sharding / Replication 이 용이합니다. Speed (간단한 데이터 200만건을 1.28초에 저장합니다.) In-Memory 데이터 TTL(Time to Live), Expire 단점 Sharding을 클라이언트에서 잘 지정할 필요가 있습니다. Replication시 blocking (2.4 버전부터 non-blocking하면서 속도를 개선했습니다.)
RDBMS의 한계 Schema 문제: 빅 데이터를 RDB의 Schema에 맞춰 변경해서 넣으려면 매우 긴 시간의 Down Time이 발생합니다. Scale Up의 한계: RDBMS는 애초부터 Scale Out(분산 환경)을 염두에 두고 설계되지 않았습니다. NoSQL (Not Only SQL) 기본 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 DB입니다. 빅 데이터를 다룰 때, RDBMS로만 트래픽을 감당하기 어려워졌고, 이를 해결하기 위해 탄생했습니다. NoSQL은 분산 환경에서 대용량의 데이터를 빠르게 처리하기 위해 개발되었습니다. 핵심은 Horizontal Scalability(수평 확장)과 High Availability(고가용성)입니다. 특징과 장점 거대한 Map로서 Key-Valu..
HTTP (Hypertext Transfer Protocol)란? HTTP는 서버와 클라이언트가 인터넷 상에서 데이터를 주고받기 위한 프로토콜입니다. HTTP는 계속 발전하여 HTTP/2까지 등장한 상태입니다. HTTP 작동 방식 HTTP는 서버/클라이언트 모델을 따릅니다. 장점 불특정 다수를 대상으로 하는 서비스에 적합합니다. 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답 처리가 가능합니다. 단점 연결을 끊어버리기 때문에 클라이언트의 이전 상황을 알 수 없습니다. 이러한 특징을 무상태(Stateless)라고 합니다. 이러한 특징 때문에 정보를 유지하기 위해 Cookie와 같은 기술이 등장했습니다. URL (Uniform Resour..
postId에 따른 comments 조회 아래 스크립트는 groovy로 작성되었습니다. 스크립트 설명 GTest 타입 변수 4개 선언 -> test1, test2, test3, test4 test(1~4) 각각에 매칭시킬 HttpRequest 타입 변수도 4개 선언 -> request1, request2, request3, request4 BeforeProcess 프로세스가 실행되기 전 변수별 객체 생성 예시) test1 = new GTest(1, “127.0.0.1/post/1/comments”) request1 = new HTTPRequest() import static net.grinder.script.Grinder.grinder import static org.junit.Assert.* impor..
nGrinder 설치 및 사용 Step 1 - nGrinder 설치 아래 url에서 ngrinder-controller-3.4.1.war 파일을 다운로드 합니다. (최신 3.4.1 version) https://github.com/naver/ngrinder/releases Step 2 - nGrinder 실행 다운로드한 war 파일을 넣은 폴더에 들어가 cmd를 실행합니다. 아래 명령어를 입력합니다. (보통 로컬에서 8080 포트를 사용하기 때문에 -p 7777로 포트를 변경합니다.) java -XX:MaxPermSize=200m -jar ngrinder-controller-3.4.1.war -p 7777 Step 3 - nGrinder 로그인 cmd 창에 마지막 줄 메세지로 @Started ???ms이..
Spring Framework에서 파생된 새로운 프레임워크 Spring MVC : Model-View-Controller 구조를 이용해서 웹 애플리케이션을 개발할 수 있게 해주는 프레임워크다. 웹 애플리케이션 전체 제어 및 화면과 처리를 분리했으며 DB 종류에 의존하지 않는 추상화된 DB 처리 등 다양한 기능을 갖고 있다. Spring Roo : Spring MVC를 보완하는 라이브러리. 각종 코드를 자동 생성하는 라이브러리로 레일즈처럼 '간단한 명령어 실행만으로 애플리케이션의 템플릿을 자동으로 만들어 주는 기능’을 가지고 있다. 이를 통해 웹 개발 속도를 향상할 수 있다. Spring Boot : Spring MVC나 다른 스프링 프레임워크의 라이브러리를 조합해서 최신 웹 애플리케이션 환경을 구축할 수..
JWT (JSON Web Token) ? 웹표준(RFC 7519)으로서 두 개체에서 JSON 객체를 사용하여 가볍고 자가수용적인(self-contained)방식으로 정보를 안전성 있게 전달합니다. 대부분의 주류 프로그래밍 언어에서 지원됩니다. 자가 수용적입니다. JWT는 필요한 모든 정보를 자체적으로 지니고 있습니다. 토큰이 검증되었다는 것을 증명해주는 Signature를 포함하고 있습니다. 쉽게 전달될 수 있습니다. 웹 서버의 경우 HTTP의 Header에 넣어서 전달할 수 있고, URL의 파라미터로 전달할 수도 있습니다. JWT는 어떤 상황에서 사용되는가 회원인증 유저가 로그인하면, 서버는 유저의 정보에 기반한 토큰을 발급합니다. 그 후, 유저가 서버에 요청할 때마다 JWT를 포함하여 전달합니다. 서..
Cross-Origin Resource Sharing 표준 AJAX가 널리 사용되면서로 둘러싸여 있는 스크립트에서 생성되는 XMLHttpRequest에 대해서도 Cross-Site HTTP Requests가 가능해야 한다는 요구가 늘어나자 W3C에서 CORS라는 이름의 권고안이 나오게 되었다. CORS 요청의 종류 CORS 요청은 Simple/Preflight, Credential/Non-Credential의 조합으로 4가지가 존재한다. 브라우저가 요청 내용을 분석하여 4가지 방식 중 해당하는 방식으로 서버에 요청을 날리므로, 프로그래머가 목적에 맞는 방식을 선택하고 그 조건에 맞게 코딩해야 한다. Simple Request 아래의 3가지 조건을 모두 만족하면 Simple Request (서버에 1번 요..
게시판이나 블로그 등 웹 기반의 애플리케이션은 최근에 사용된 데이터가 또 다시 사용되는 경향을 갖고 있다. 80:20 법칙에 따라 20%의 데이터가 전체 조회 건수의 80%를 차지할 경우 캐시를 사용함으로써 성능을 대폭 향상시킬 수 있을 것이다. 주요 특징 경량의 빠른 캐시 엔진 확장(scable) - 메모리 & 디스크 저장 지원, 멀티 CPU의 동시 접근에 튜닝 분산 지원 - 동기/비동기 복사, 피어(peer) 자동 발견 높은 품질 - Hibernate, Confluence, Spring 등에서 사용되고 있으며, Gaia 컴포넌트에서도 EHCache를 사용하여 Cache를 구현하였다. 기본 사용법 EHCache를 사용하기 위해서는 다음과 같은 작업이 필요하다. EHCache를 설치 및 Cache 설정 ..
100 : Continue 101 : Switching protocols 200 : OK, 에러없이 전송 성공 201 : Created, POST 명령 실행 및 성공 202 : Accepted, 서버가 클라이언트 명령을 받음 203 : Non-authoritative information, 서버가 클라이언트 요구 중 일부 만 전송 204 : No content, 클라언트 요구을 처리했으나 전송할 데이터가 없음 205 : Reset content 206 : Partial content 300 : Multiple choices, 최근에 옮겨진 데이터를 요청 301 : Moved permanently, 요구한 데이터를 변경된 임시 URL에서 찾았음 302 : Moved temporarily, 요구한 데이터가 ..
- Total
- Today
- Yesterday
- Cross Origin
- cross
- output
- MongoDB
- Groovy
- Runnable
- NoSQL
- URI
- 대규모
- auth
- 404
- JWT
- script
- SPOF
- ngrinder
- iinput
- HTTP
- synchronized
- stateless
- redis
- web
- thread
- class
- Spring Boot
- stateful
- cors
- Java
- Token
- ehcache
- https
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |