대규모 서비스의 특성 Elastic : 트래픽이나 상황에 따라서 서버의 추가 / 제거가 쉬워야 합니다. Resiliency : 특정 장비의 장애 등은 자동으로 복구되어야 합니다. 서버가 복구되는 것은 아닙니다. 해당 장비의 장애로 인해 다른 쪽이 영향 받지 않아야 합니다. Scale Up : 초당 1000 TPS 처리가 가능했다가 초당 3000 TPS 처리를 감당해야 한다면 3배(3000 TPS) 처리가 가능한 서버 1대로 교체 투입합니다. Scale Out : 초당 1000 TPS 처리가 가능한 서버를 3대 투입합니다. SPOF (Single Point Of Failure) 을 방지해야 합니다. 장애가 나면 서비스 전체를 마비시키는 병목 지점 어디를 확장해야 할까? API 서버에만 부하가 몰리는 작업은..
HTTP (Hypertext Transfer Protocol)란? HTTP는 서버와 클라이언트가 인터넷 상에서 데이터를 주고받기 위한 프로토콜입니다. HTTP는 계속 발전하여 HTTP/2까지 등장한 상태입니다. HTTP 작동 방식 HTTP는 서버/클라이언트 모델을 따릅니다. 장점 불특정 다수를 대상으로 하는 서비스에 적합합니다. 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 훨씬 많은 요청과 응답 처리가 가능합니다. 단점 연결을 끊어버리기 때문에 클라이언트의 이전 상황을 알 수 없습니다. 이러한 특징을 무상태(Stateless)라고 합니다. 이러한 특징 때문에 정보를 유지하기 위해 Cookie와 같은 기술이 등장했습니다. URL (Uniform Resour..
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
- class
- Token
- cross
- web
- Groovy
- stateless
- auth
- NoSQL
- ngrinder
- cors
- synchronized
- stateful
- https
- script
- ehcache
- 404
- Spring Boot
- Cross Origin
- Java
- iinput
- HTTP
- Runnable
- 대규모
- thread
- redis
- URI
- JWT
- output
- SPOF
- MongoDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |