간단하게 몇몇 개념들에 대해 정리해보자

MA VS MSA

MA(Monolithic Architecture)

1) 개념
기능(웹, 비즈니스 로직, 배치, API 등)이 하나의 애플리케이션/프로세스로 단일 배포 단위에 묶여 있음. 주로 하나의 데이터베이스를 공유.
2) 장점

  • 개발 초기 단계에서 빠른 구축이 가능
  • 배포와 테스트가 상대적으로 간단
  • 트랜잭션 관리가 용이
  • 디버깅이 쉬움

3) 단점

  • 애플리케이션이 커질수록 유지보수가 어려워짐
  • 특정 기능만 확장하기 어렵고 전체를 확장해야 함
  • 기술 스택 변경이 어려움
  • 작은 변경사항도 전체 애플리케이션 재배포 필요

MSA(MicroService Archtecture)

1) 개념
기능을 작은 서비스 단위로 분리. 각 서비스는 독립 배포, 독립 확장, 독립 데이터 저장소(권장)를 지님. 서비스 간 통신은 주로 HTTP/gRPC/메시지 브로커.
2) 장점

  • 높은 확장성과 유연성 제공
  • 팀 간 독립적인 개발 가능
  • 장애 격리가 용이 (한 서비스 장애가 전체 시스템에 영향 최소화)
  • 기술 스택 선택의 자유
  • 지속적 배포(CD)가 용이

3) 단점

  • 시스템 복잡도가 증가
  • 서비스 간 통신 오버헤드 발생
  • 분산 시스템 관리의 어려움
  • 분산 트랜잭션 처리의 복잡성
  • 모니터링 및 디버깅이 어려움

컨테이너

도커를 사용할때 컨테이너라는 개념이 나온다. 컨테이너와 VM의 차이는 뭘까?

VM: 하드웨어를 가상화. 각 게스트 OS(커널 포함)가 완전한 운영체제로 올라감
컨테이너: OS(커널)를 공유하는 프로세스 격리. 애플리케이션과 런타임/라이브러리만 패키징.

컨테이너는 가상화가 아니다

가상머신에 비해 컨테이너는 경량(프로세스 격리)이라 Kubernetes 등과 결합해 더 빠른 오토스케일링에 유리하다.

REST API

RESTful API란 REST 원칙과 제약조건을 준수하여 만들어진 API를 의미한다.

REST는 웹 리소스를 URI로 식별하고, 그 표현(JSON 등) 을 HTTP로 주고받는 아키텍처 스타일을 말한다.

구분간단한 APIREST API
개념특정 기능을 제공하는 단순한 엔드포인트자원(Resource)을 중심으로 설계된 아키텍처 스타일
URI 설계기능 중심 (/hello, /echo)자원 중심 (/todos, /todos/1)
HTTP 메서드 활용주로 GET 또는 POST만 사용GET, POST, PUT, DELETE 등 표준 메서드 활용
상태 관리단순히 요청 → 응답무상태성(stateless) 원칙 준수
확장성기능이 늘어나면 엔드포인트가 복잡해짐자원 중심이라 확장성이 높음

세션 쿠키를 통한 로그인

크롬의 Cookie-editor 확장 앱을 이용해 진행하겠다. 먼저 세션 쿠키 획득을 위해 naver에 로그인하고 쿠기를 json으로 복사한다.

Edge에서 naver에 들어간 후 쿠키값을 복사하여 넣고 새로고침하면 로그인이 되는 것을 확인할 수 있다.

세션 쿠키를 탈취해 다른 환경에서 로그인을 시도해도 정상적으로 로그인이 된다.

세션은 언제 만료 될까?
1. 로그아웃 시 즉시 만료
2. 브라우저 종료 후 만료시간 경과 -> 브라우저를 끈다고 세션이 만료되는 것이 아니다. 일정 시간동안 유효하므로 주의하자.

side jacking에 대한 설명
http3
hsts

용어

scale up - 시스템 자원(cpu, 메모리…) 늘리기
scale out - 서버 추가하여 시승템 전체 용량 확장

ServerLess - 함수 단위로 코드를 실행, 사용한 만큼만 비용을 지불

Openstack - 오픈소스 IaaS 클라우드 플랫폼으로, 기업이 자체 퍼블릭/프라이빗 클라우드를 구축할 수 있는 AWS의 대안/자체 구축형 선택.

EOL(End of Life) - 제품 공식 지원 종료 시점으로 보안 패치가 중단되어 공개 취약점(1-day) 공격 가능성이 있으며 EOL은 endoflife.date에서 확인 가능

Footprinting - 공격 전 단계에서 OSINT 등으로 대상의 자산,도메인,시스템 정보를 수집하는 정찰 활동

SBOM - Software Bill of Materials의 약자로 소프트웨어 제품에 포함된 모든 구성 요소(라이브러리, 프레임워크 등), 의존성, 라이선스, 버전에 대한 상세 목록

공격 벡터 - 공격자가 목표 시스템에 침투하거나 악성 행위를 수행하기 위해 악용하는 경로·수단(예: 피싱 메일, 취약한 웹 엔드포인트, 취약한 계정/프로토콜 등)

※참고자료
https://colevelup.tistory.com/30
https://medium.com/javarevisited/do-you-know-everything-about-serverless-architecture-f0cd06c81329
https://www.redhat.com/ko/topics/microservices/what-are-microservices
https://dodo-devops.tistory.com/19
https://appmaster.io/ko/blog/rest-apiran-mueosimyeo-dareun-yuhyeonggwa-eoddeohge-dareungayo

0개의 댓글