본문 바로가기

IT102

02. 기능 요구 사항 - 단계적 과정 요구사항을 분석할 때 나타나는 문제점 중 하나는 요구사항이 모호하고 범위가 넓다는 것이다. 이 문제를 해결할 수 있는 쉬운 방법은 고객에게 직접 묻는것이다. 하지만 기능이 많고 액터가 다양한 상황에서 복잡한 시스템을 설계할 땐 좋은 방법이 아니다. 요구사항을 정확하고 체계적으로 모으고 중요한 기능을 분석해서 시스템을 만들려면 사용 사례(Use Cases)와 유저 플로우(User Flows)를 사용해야한다. 1. 사용 사례(Use Cases)는 요구 사항을 정리한 시나리오로 사용자 목적에 맞춘 시스템기능이다. 2. 유저 플로우(User Flows)는 더 세밀한 단계이고, 사용 사례를 시각화한것이다. 기능 요구사항을 분석하는 방법 1. 액터/사용자를 모두 확인해야한다. 2. 액터/사용자가 원하는 시스템에 해.. 2023. 9. 27.
01. 요구사항 분석,분류 시스템 요구 사항이란 클라이언트를 위해 만들어야할 항목을 파악하고 정리하는 것을 말한다. 프로젝트를 의뢰받으면 요구사항을 보다 자세하고 기술적인 요청으로 바꾸는게 소프트웨어 아키텍처이다. 클라이언트가 항상 원하는 바를 잘 알고 있다고 생각하면 안된다. 그들이 아는건 해결해야할 문제뿐이다. 클라이언트 조차도 묻기 전까지는 답을 알지 못한다. 그래서 질문을 통해 요구사항을 수집하는게 솔루션의 일부이고 설계하고 만들어야 하는 상목을 좁혀나가는것이다. 요구사항을 몇 가지 카테고리로 분류하는 방법에는 3가지가 있다 1. 기능적 요구사항에 속하는 시스템의 기능 2. 비기능적 요구사항인 품질 속성 3. 시스템의 제한과 경계를 만드는 시스템 제약 사항 1. 시스템 기능 시스템의 행위를 나타내는 요구사항으로, 설계한 시.. 2023. 9. 25.
React + vite + typescript 프로젝트 도커 이미지 빌드 Dockerfile #Dockerfile FROM node:18-alpine as build WORKDIR /app COPY package*.json ./ RUN npm install COPY . . RUN npm run build FROM nginx:stable-alpine COPY --from=build /app/dist /usr/share/nginx/html RUN rm /etc/nginx/conf.d/default.conf COPY nginx/nginx.conf /etc/nginx/conf.d EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] node:18-alpine 버전 설치 작업디렉터리를 /app으로 설정 package*.json파일을 복사 패키지 파일을 바탕으.. 2023. 6. 26.
SQS 아키텍처 소비자가 ASG의 내부에서 EC2 인스턴스를 실행하고 SQS Queue에서 메시지를 폴링하는 사례이다. ASG는 일종의 지표에 따라 확장되어야 하는데 Queue의 길이를 지표로 사용할 수 있다. CloudWatch로 대기열의 길이를 얻을 수 있고 대기열의 길이가 특정 수준을 넘어가면 CloudWatch Alarm을 설정하여 ASG의 사이즈를 변경하는 아키텍처이다. 두번째는 비디오를 처리하는 애플리케이션이 있다고 해보자. 만약 프론트엔드 서버 밖에 없으면 프론트엔트가 처리까지 한 후 S3 버킷에 삽입해야한다. 이렇게 하면 시간이 오래 걸리고 웹사이트의 속도가 느려질 수 있다. 대신 SQS를 사용하여 애플리케이션을 분리(decouple) 하면 파일 처리 요청과 실제 파일 처리가 서로 다른 애플리케이션에서 발.. 2023. 3. 29.
GWLB (Gateway Load Balancer) Gateway Load Balancer GWLB는 배포 및 확장, 그리고 AWS의 써드파티 네트워크 가상 어플라이언스의 플릿 관리에 사용된다. GWLB는 네트워크의 모든 트래픽이 방화벽을 통과하게 하거나 침입 탐지 및 방지 시스템에 사용한다. GWLB를 생성하면 VPC에서 라우팅 테이블에 업데이트 된다. 라우팅 테이블이 수정되면, 모든 사용자 트래픽은 GWLB를 통과한다. 그리고 GWLB는 가상 어플라이언스의 target group으로 트래픽을 확산한다. 그래서 모든 트래픽은 어플라이언스에 도달하고 어플라이언스는 트래픽을 방화벽이나 침입 탐지와 같은 것들을 분석하고 처리한다. 이상이 없으면 다시 GWLB로 보내고 이상이 있으면 트래픽을 버린다. GWLB를 통과한 트래픽은 애플리케이션으로 보내진다. GWL.. 2023. 3. 27.
NLB (Network Load Balancer) NLB는 Layer4의 로드 밸런서 이므로 TCP와 UDP 트래픽을 다룰 수 있다. HTTP를 다루는 L7보다 하위 계층이다. NLB의 성능은 매우 좋다. ALB에 비해 지연시간이 짧다. NLB의 특징은 AZ 별로 하나의 static IP를 갖는다는 점이다. 그리고 Elastic IP 주소를 각 AZ에 할당할 수 있다. Target Groups NLB의 Target Group로는 - EC2 instances - private IP Addresses - ALB(Application Load Balancer) 가 포함 될 수 있고 ALB의 앞에 NLB를 배치하는 경우 NLB 덕분에 static IP 를 얻을 수 있고 ALB가 있기 때문에 HTTP 유형의 트래픽을 처리하는 rule을 얻을 수 있다. NLB는 .. 2023. 3. 27.