Develop (30) 썸네일형 리스트형 대규모 시스템 설계 4장 처리율 제한 장치의 설계 처리율 제한 장치 : 클라이언트 or 서비스가 보내는 트랙픽의 처리율을 제어하는 장치 장점 Dos 공격에 의한 자원 고갈 비용 절감 서버 과부하 제어 처리율 제한 장치 위치 클라이언트 측 : 일반적으로 클라이언트는 처리율 제한을 안정적으로 걸 수 있는 장소가 못 되며 클라이언트 요청은 쉽게 위변조가 가능해 여기서 사용 x 서버 측 : 일반적인 경우 서버 측에 제한 장치를 위치시키며 처리율 제한 미들웨어를 만들어 API 서버 직전에 두는 것도 방법 GateWay 처리율 제한 장치는 보통 API Gateway라 불리는 컴포넌트에 구현된다. Gateway는 처리율 제한, SSL 종단, authentication, whitelist 관리 등을 지원 설계 아래 2곳에 제한 기능을 부.. 대규모 시스템 설계 1장 사용자 수에 따른 규모 확장성 데이터베이스 관계형 데이터베이스(RDBMS) vs 비관계형 데이터베이스(NoSQL) NoSQL을 사용하는 상황 latency가 낮을 경우 다루는 데이터가 관계형 데이터가 아닐 경우 데이터가 직렬화 or 역직렬화만 필요할 경우 많은 데이터 저장이 필요할 경우 수직적 규모 확장 vs 수평적 규모 확장 수직적 규모 확장 프로세스는 서버에 고사양 자원(더 좋은 CPU, 더 많은 RAM 등)을 추가하는 행위 "스케일 업" 이라고도 불림 수평적 규모 확장 더 많은 서버를 추가하여 성능을 개선하는 행위 "스케일 아웃" 이라고도 불림 확장 기준 서버로 유입되는 트래픽의 양이 적을 떄 : 수직적 확장을 선택 수직적 규모 확장에는 한계가 존재. 한 대의 서버에 CPU나 메모리를 무한대로.. '코드로 배우는 스프링 웹 프로젝트' 정리(Controller) 의존성 주입(DI-Dependency Injection)방식 생성자를 통한 주입 set 메소드를 이용한 주입 IoC(Inversion Of Control -제어의 역행) https://velog.io/@gillog/Spring-DIDependency-Injection ← DI, IoC참고 Bean : Spring에서 객체를 부르는 말 AOP(Aspect Oriented Programming) : 대부분의 시스템이 공통으로 가지는 보안이나 로그, 트랜잭션과 같은 비즈니스 로직은 아니지만, 반드시 처리가 필요한 부분을 분리하게 만들어 주는 프로그래밍의 패러다임 AOP의 장점 개발자들이 핵심 비즈니스 로직에만 집중해서 코드를 개발할 수 있게 된다. 각 프로젝트마다 다른 관심사를 적용할 때 코드의 수정을 최소화.. CSS 2 BOX-SHADOW : BORDER 바로 밖에 그림을 그릴 수 있게 도와주는 옵션 BOX-SHADOW INSERT : BORDER 바로 안에 그림을 그릴 수 있게 도와주는 옵션 box-sizing : border-box 예제 위와 같이 box-sizing:border-box인 경우(blue)에서는 padding과 border 모두 합쳐서 가로, 세로가 100px을 차지하지만 box-sizing을 설정하지 않은 경우(red)에서는 100px에서 padding, border이 합친 크기로 그려진다. box-shadow 예제 box-shadow를 위와 같이 중첩해서 여러 개 사용할 수 있는데 각각을 사용할 때 마다 충첩되서 그려지며 실행은 맨 아래의 코드에서부터 실행이 된다. **box-shadow는 위에서부.. ES6에 추가된 문법 1. const and let var keyword 대신 const나 let keyword를 사용 2. Arrow functions ES5 1 2 3 4 5 6 7 8 // ES5 function myFunc(name) { return '안녕' + name; } console.log(myFunc('영희')); // 출력 => 안녕 영희 ES6 1 2 3 4 5 6 7 8 9 10 11 // ES6 화살표 함수 const myFunc = (name) => { return `안녕 ${name}`; } console.log(myFunc('영희')); // 출력 => 안녕 영희 // 또는 화살표를 사용하거나 'return' 키워드를 사용하지 않아도 됩니다 const myFunc = (name) => `안녕 ${.. CSS 1 CSS는 기본적으로 Content, Padding, Border, Margin이라는 HTML 요소를 감싸는 box가 존재합니다. CSS display 속성 : inline block inline-block inline : 전후 줄바꿈 없이 한 줄에 다른 엘리먼트들과 나란히 배치된다.(width, height 속성은 무시된다, margin, padding은 반영됨) ex. block : 전후 줄바꿈이 들어가 다른 엘리먼트들을 다른 줄로 밀어내고 혼자 한 줄을 차지한다.(width, height, margin, padding 모두 반영됨) ex. inline-block : 기본적으로 inline 처럼 엘리먼트들이 나란히 배치가 되는데 inline에서 불가능하던 width와 height 속성및 margin과 .. JSON JSON(JavaScript Object Notation) JSON은 좀 더 쉽게 데이터를 교환하고 저장하기 위하여 만들어진 텍스트 기반의 데이터 교환 표준 JSON은 텍스트 기반이므로 어떠한 프로그래밍 언어에서도 JSON데이터를 읽고 사용 가능 JSON의 특징 JSON은 JS를 확장하여 만들어졌다. JSON은 JS 객체 표기법을 따른다. JSON은 사람과 기계가 모두 읽기 편하도록 고안되었다. JSON은 프로그래밍 언어와 운영체제에 독립적이다. JSON 타입 Number String Boolean Object Array Null JSON 예시 기본 { "age": 30, "weight": 68.2, "marriage": false } 객체 표현 { "dateOfBirth": { "year": 1980,.. Web Server VS WAS Server Web Server 클라이언트(사용자)가 웹 브라우저에서 어떠한 페이지를 요청을 하면 웹 서버에서 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. 여기서 정적 컨텐츠란 단순 HTML문서, CSS, JS, 이미지, 파일 등 즉시 응답가능한 컨텐츠이다. 대표적인 예로 Apache를 들 수 있다. WAS 웹 서버와 웹 컨테이너가 합쳐진 형태로, 웹 서버 단독으로는 처리할 수 없는 DB의 조회나 다양한 로직 처리가 필요한 동적 컨텐츠를 제공한다. WAS는 JSP, Servlet 구동환경을 제공해주기 때문에 웹 컨테이너 혹은 서블릿 컨테이너라고도 불린다. 대표적인 예 : Tomcat, JBoss 참고로 WAS로도 정적인 컨텐츠를 처리 가능하다. but 정적처리를 WAS로 하게 되면 부하가 많이 걸려서 좋지는 않.. 이전 1 2 3 4 다음