본문 바로가기

전체 글

(80)
Cascade의 오해 Cascade의 오해 나는 현재 스터디 커뮤니티에 대한 프로젝트를 진행 중에 있다. 위 주제에 대해 살펴보기 전에, 간단하게 요구사항에 대한 부분을 살펴보자. 회원은 스터디에 가입, 생성, 수정, 삭제할 수 있다. 회원은 여러 스터디에 참여할 수 있다. 회원은 스터디에 가입하기 위해 신청을 진행한 후, 스터디 생성자 혹은 관리자가 수락한다면 가입할 수 있다. 스터디 생성자 혹은 관리자는 스터디 신청자를 거절할 수 있다. 스터디는 각 스터디 게시판, 게시글에 대한 조회, 생성, 수정, 삭제가 가능하다. 이 요구사항에 맞게 도출된 ERD를 살펴보면 다음 그림과 같다. 물론, 이 요구사항 이상의 사항들을 ERD에서 포함하고 있지만 이 주제에 대해 다루기에는 충분하기에 생략하겠다. 나는 이러한 부분에 대한 연관..
알림 기능을 구현해보자 - SSE(Server-Sent-Events)! 시작하기에 앞서 이번에 개발을 진행하면서 알림에 대한 요구사항을 만족시켜야하는 상황이 발생했다. 여기서 말하는 알림이 무엇인지 자세하게 살펴보자. A라는 사람이 스터디를 생성했고 B라는 사람은 어느 스터디에도 가입하지 않은 정규 회원이라고 가정하자. A라는 사람은 스터디 생성자일 것이고 B라는 사람은 위에서 언급했듯이 단순 정규 회원이다. B라는 사람은 어느 스터디에도 가입할 수 있고 A라는 사람이 생성한 스터디에 가입 신청을 하여 스터디에 가입할 수 있다. A라는 사람은 항상 웹페이지에 들어가지도 않을 것이고 항상 스터디 관리페이지에 들어가지 않을 것이다. 이런 상황속에서 A라는 사람은 어느 누군가(현재 상황에선 B라는 사람)가 스터디에 지원을 했는지 알고 이를 승인하거나 거절해야할까? 바로 가장 쉬운..
[AWS] Lambda, CloudFront AWS Lambda Serverless의 주축을 담당 Events를 통하여 Lambda를 실행시킴 NodeJS, Python, Java, GO 등 다양한 언어 지원 Lambda Function 비용 Lambda Function이 실행될때만 돈 지불 매달 1,000,000 함수 호출 시 무료 (그 후로는 유료) ### 기타 최대 300초(5분) 런타임 시간 허용 512MB의 일시적인 디스크 공간 제공 (/tmp/) 최대 50MB Deployment Package 허용 초과시 S3 버켓 사용 사용 용례 S3 Put Object -> Lambda(데이터 변환) -> DB IoT(Topic) -> Lambda -> SNS AWS CloudFront 정적, 동적, 실시간 웹사이트 컨텐츠를 유저들에게 전달 Edge..
[AWS] CloudWatch CloudWatch AWS 리소스 사용의 실시간 모니터링 기능 지원 다양한 이벤트들을 수집하여 로그파일로 저장 여기서 말하는 이벤트란? S3버켓 파일 업로드 & 삭제 S3버켓 접근 시 접근거부 발생 RDS 데이터베이스에 접속 시도 이벤트 & 알람 설정을 통해 SNS, AWS Lambda로 전송 가능 [CloudWatch 사용 가능 서비스툴] : EC2, RDS, S3, ELB 등등 CloudWatch 모니터링 종류 Basic Monitoring 무료 5분 간격으로 최소의 Metrics 제공 CPU 사용량, 디스크 사용량, 네트워크 I/O Detailed Monitoring 유료 1분 간격으로 자세한 Metrics 제공 Alarm 임의로 정해놓은 값에 도달할 시 Alarm을 울림 Alarm이 울릴 시 특정..
[AWS] S3 S3(Simple Storage Service) S3 특징 안전하고 가변적인 Object 저장공간을 제공 (ex Google Cloud) 편리한 UI 인터페이스를 통해 어디서나 쉽게 데이터를 저장하고 불러올 수 있음 파일 크기는 0KB부터 5TB까지 지원 저장공간 무제한 Bucket이라는 이름을 사용함 (디렉토리와 유사함) Bucket은 보편적인 namespace를 사용함 S3 Object 구성요소 Key - Value Version ID Metadata CORS (Cross Origin Resource Sharing) S3 Data Consistency Model Read After Write Consistency (PUT) 삽입 후 즉시 사용 가능 Eventual Consistency (UPDATE,..
[AWS] RDS RDS(Relational DB Service) 관계형 데이터베이스 데이터베이스 테이블 데이터 필드 Data Warehousing Business Intelligence 리포트 작성, 데이터분석시 사용 매우 방대한 분량의 데이터 로드시 사용 OLTP VS OLAP OLTP (Online Transaction Processing) INSERT와 같이 종종 사용되어지는, 혹은 규모가 작은 데이터를 불러올때 사용되는 SQL쿼리가 필요할때 사용 복수의 사용자 PC에서 발생되는 트랜잭션(Transaction)을 DB서버가 처리하고, 그 결과를 요청한 사용자PC에 결과값을 되돌려주는 과정 자주 업데이트되어 데이터 무결성을 중요시여겨야하기에 테이블을 정규화 Order # 210에만 해당되는 Customer 이름, 주..
[AWS] EC2 EC2(Elastic Compute Cloud) 지불방식 On-demand - 시간 단위로 가격이 고정되어 있음 오랜시간동안 선불을 내지 않고 최소한의 비용을 지불하여 EC2인스턴스를 사용하고 싶ㅇ르 때, 특히 앱/프로그램 개발시 최초로 EC2인스턴스에 deploy할때 유용 개발시작과 끝이 정해지지 않았지만 단기간에 끝낼 수 있을 때 유용 Reserved - 한정된 EC2 용량 사용 가능, 1-3년동안 시간별로 할인 적용 받을 수 있음 안정된, 예상 가능한 workload시 Reserved 사용 권장, 선불로 인한 컴퓨팅 비용 대폭 감소 개발시작과 끝이 정해졌을 때 유용 spot - 입찰 가격 적용. 가장 큰 할인률을 적용받으며 특히 인스턴스의 시작과 끝 기간이 전혀 중요하지 않을 때 유용 단순히 비용 ..
[AWS] IAM AWS(Amazon Web Service) - 웹에서 지원하는 서비스 클라우드 컴퓨팅 - 원격 상의 서버가 직접 작동되고 동작되는 형태 서버리스(Serverless) 기능 지원 As You Pay Go 서비스 Free-tier 서비스 루트(Root) 사용자 IAM(Identitiy and Access Management) 유저를 관리하고 접근 레벨 및 권한에 대한 관리 접근 키와 비밀 키를 이용해 접근 접근 키를 ID, 비밀 키를 PW와 같이 생각하면 된다. 매우 세밀한 접근 권한 부여 기능 (Full Access 혹은 DynamoDB의 테이블에 대한 생성 삭제 복사 등에 대한 권한 부여) 비밀번호를 수시로 변경 가능케 해줌 (보안적인 이유 - 분기별로) Multi-Factor Authentication..