본문 바로가기

IT이론/소프트웨어 아키텍처5

마이크로서비스 아키텍쳐 장단점은 마이크로 서비스는 대형 소프트웨어 프로젝트의 기능들을 작고 독립적이며 느슨하게 결합 된 모듈로 분해하여 서비스를 제공하는 아키텍처. SOA와는 조금 다른 개념 모두 하나에 들어가있는 개념은 모널리틱 아키텍처. 1. IDE 과부하, 개발자의 생산성을 저하. 2. 하나의 war or ear에 모든 것을 넣었기에 기술 스택을 변경하는거에 주저하게 된다. 때문에 리펙토링도 힘들다. 3. 어플리케이션 특정 오류가 전체에 영향을 끼친다. 특정 함수의 영향이 어플리케이션 전체에 피해 4. 스케일아웃 시에 모든 리소스를 배포해야한다. 5. 어플리케이션이 커질 수록 작은 단위로 작업 축소 불가.독립적으로 배포할 수 없다. 마이크로 서비스 아키텍처의 중요 포인트는 바로 확장성이다. 어플리케이션 이 수평적이라 스케일하는데 .. 2022. 3. 5.
확장 가능한 분산 시스템이란 확장성 있는 웹 사이트나 애플리케이션을 만들고 관리한다는것은 무엇일까? 자원이나 자원에 대한 접근 권한을 여러개의 서버에 분산되어 있을때를 말한다. 이제 막 비즈니스를 시작하려는 소규모의 웹 사이트를 만들때에도 설계 시 고려 사항에 대해 생각한다면 좀 더 현명한 결정을 내릴 수 있을 것이다. 주요 고려 사항은 아래와 같다. 가용성 : 항상 가용적이고 장애에 유연한 아키텍처를 가지는 것이 기본적인 비즈니스 요구사항이다. 분산 시스템에서 높은 가용성을 얻기 위해, 중요한 컴포넌트의 이중화가 실패가 발생했을 경우에 빠른 복구 방법, 문제가 발생할때 일부만으로 동작할 수 있게, 하는 구성에 대한 고려가 필요하다. 성능 : 웹 사이트의 속도는 사용성, 만족성 뿐 아니라 수익과 유지에 연관이 있다. 빠른 응답 시간.. 2022. 3. 5.
3계층 구조란 1. 프레젠테이션 계층 -> 사용자 인터페이스, 프론트엔드 , 웹 서버 2. 어플리케이션 계층 -> 백엔드 미들웨어, 로직계층, 트랜잭션 계층 3. 데이터 계층 -> 데이터 베이스 ,mysql, db 1계층 구조는 물리적 컴퓨터 또는 서버에 3가지 다른 기능을 한번에 다 넣은 방식, 물리적 장비를 새롭게 변경하고자 하는 경우, 모든 구성을 새로 변경해야한다. 2계층 구조는, 프론트,백엔드를 한곳에, DB를 딴곳에 넣는다. 데이터베이스 변경 시 서로 영향을 받지 않는다. 3계층 구조는 프론트, 백엔드, 데이터베이스를 독립적으로 구분해서 구성한다. 또 다른 3계층 구조는 개발, 테스트, 라이브를 구분짓는다. -> 1계층을 3개로 넣는 구성 테스트 할때, 라이브 서버로 마이그레이션 가능하다. 장점은 업무 분담.. 2022. 3. 5.
RESTful API의 Resource 원형과 Method란 무엇일까? (참조 : sabarada.tistory.com/27) RESTful API에서 일반적으로 Resource라고 부르는 요소에 대해 정리해보자. 모든 정보들을 리소스라고 부른다. 이미지, 일반적 서비스, 문서 리소스들의 집합 등. 특정 시점의 리소스 상태를 리소스 표현이라고 부른다. resource representation(리소스 대표)에는 데이터(자료), 메타데이터(목적을 위해 만든 자료) 그리고 상태를 변경하는 하이퍼링크 등이 있다고 한다 리소스의 특징은 하이퍼링크의 표현이다. 이전에는 하이퍼링크를 다른 사이트로 이동할때 쓰는 것이라고 알고 있지만, RESTful API에서는 정보의 표현과 제어를 동시에 활용하고 있다. 각 시스템에서 이해할 수 있는 형식, 관계 타입에 갖추어 hypertext를 통한.. 2021. 1. 14.
RESTful API는 뭘까 restful api에 대한 정의를 알아보자. 평소에는 그냥 rest통신 api로 생각하고 있었다. api는 그냥 어플리케이션(프로그램) 개념이고 rest통신은 json규격 웹 데이터 전송으로 대략적으로만 이해하고 있었다. 그래서 RESTful api라고 하면 설명을 제대로 하지 못했다. 당연히 그게 무엇인지 정확하게 이해하고 있지 않기 때문이다. 개념정의를 정확하게 해보자. (말은 이리했지만 글쓰고 나서 다시 보니 완벽하게 이해하진 못했다. 일단 내 생각 정리를 적는다.) www.redhat.com/ko/topics/api/what-is-a-rest-api RESTful의 요소는 클라, 서버, 리소스 3개 요소로 구성되어있으며 http 규격 통신을 통해 data 전달이 되는것 2. 스테이트리스(stat.. 2021. 1. 12.