마이크로서비스 아키텍처 특징 1. 애플리케이션 로직을 각자 책임이 명확한 작은 컴토넌트들로 분해하고 이들을 조합해서 솔루션을 제공한다. 2. 각 컴토넌트는 작은 책임 영역을 담당하고 완전히 상호 독립적으로 배포된다. 마이크로서비스는 비즈니스 영역의 한 부분에서만 책임을 담당한다. 그리고 여러 애플리케이션에서 재사용할 수 있어야 한다. 3, 마이크로서비스는 몇가지 기본 원칙에 기반을 두며, 서비스 소비자와 서비스 제공자 사이의 데이터 교환을 위해 HTTP와 JSON 같은 경량 통신 프로토콜을 사용한다. 4. 애플리케이션은 항상 기술 중립적 프로토콜을 사용해 통신하므로 서비스 구현기술과는 무관하다. 따라서 마이크로 서비스 기반의 애플리케이션을 다양한 언어와 기술로 구축할 수 있다는 것을 의미한다. 5. 작고..

8.백엔드( Spring 위주) [많은 트레픽이 발생한 경우 대처하는 방법] 스케일 업(Scale Up) : 서버에 CPU나 RAM 등을 추가하여 서버의 하드웨어 스펙을 향상시키는 방법이다. 스케일 아웃(Scale Out) : 서버를 여러 대 추가하여 시스템을 증가시키는 방법이다. [CND(Content Belivery Network) 란?] CND(Content Delivery Network)는 물리적으로 떨어져 있는 사용자에게 컨텐츠를 더 빠르게 제공하기 위해 고안된 기술입니다. 만약 우리나라에 있는 사람이 미국에 있는 서버로 부터 이미지나 파일 등을 다운받으려고 하면 시간이 오래 걸립니다. 따라서 느린 응답속도와 다운로드 시간을 극복하기 위해 서버를 분산시켜 캐싱해두고, 빠르게 다운받을 수 있게 합..

7. 개발 언어(Java 위주) [C언어 포인터 란?] 포인터는 어떤 변주의 주소값을 저장하는 변수입니다. 포인터의 선언은 변수명 앞에 *을 붙이면 가능하고, 어떤 변수의 주소값을 얻기 위해서는 &를 붙이면 됩니다. #include int main() { int* p = NULL; int num = 10; p = # printf("포인터 p의 값: %d \n", p); printf("num의 주소: %d \n", &num); return 0; } [Java의 장점과 단점] 장점 JVM 위에서 동작하기 때문에 운영체제에 독립적이다. 가비지컬렉터가 메모리를 관리해주기 때문에 편하다. 단점 JVM 위에서 작동하기 때문에 실행 속도가 상대적으로 느리다. 다중 상속이나 타입에 엄격하는 등 제약이 있는 것이..

6. 데이터베이스 [인덱스(index) 란] 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 만약 우리가 책에서 원하는 내용을 찾는다고 하면, 책의 모든 페이지를 찾아보는 것은 오랜 시간이 걸린다. 그렇기 때문에 책의 저자들은 책의 맨 앞 또는 맨 뒤에 색은을 추가하는데, 데이터베이스의 index는 책의 색인과 같다. 데이터베이스에서도 테이블의 모든 데이터를 검색하면 시간이 오래 걸리기 때문에 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있고록 돕고 있다. 만약 index를 적용하지 않는 컬럼을 조회한다면, 전체를 탐색하는 Full scan이 수행된다. Full Scan은 전체를 비교하여 탐색하기 때문에 처리 속..