모바일 애플리케이션: MyTodoList 서버 목표 HTTPS 엔드 포인트가 있는 REST API 노출 서버리스 아키텍쳐 사용자가 원하면 스스로 데이터 관리 S3에 있는 폴더와 직접 상호작용 사용자가 관리형 서버리스 서비스 인증 필요 읽기를 많이하니 관련 성능에 대해 최적화 필요 데이터베이스 계층은 확장 가능하게, 읽기 처리량 향상 필요 솔루션 아키텍처 Amazon API Gateway HTTPS 엔드 포인트 REST API 노출 람다 함수 호출 (invoke) Lambda 서버리스 인프라 사용 DynamoDB에 query 전달 DynamoDB Amazon Cognito 서버리스 인증 계층 API Gateway는 Cognito와 함께 인증을 확인함 인증을 요청하는 모바일 클라이언트에게 AWS STS를 통..
초창기 컴퓨터 최초의 컴퓨터 에니악 하드와이어링 방식 전선을 연결해서 논리회로를 구성 하는 방식 일괄 작업 시스템 IC칩 진공관과 전선으로 만들어진 논리회로를 아주 작은 크기로 구현 이 칩으로 현대적인 컴퓨터가 생겼다. CPU, 메인메모리가 있었고 키보드와 같은 입력장치, 모니터는 없었음 천공카드 리더를 입력장치 사용 OMR이라고 생각하면 됨 라인 프린터를 출력장치 사용 한 번에 한 줄씩 출력하기 때문에 라인 프린터라고 함 모든 작업을 한꺼번에 처리를 해야 했는데, 실행 중간에 데이터 입력, 수정이 불가능하다. 작업 중간에 새로운 값을 입력하거나 데이터를 변경하는 것 불가능 프로그램에 오류가 있거나 잘못된 데이터를 사용해서 결과가 틀려도 "최종 프린터 결과문"으로만 확인이 가능 라인 프린터에 ERROR라..
Lv.1 부터 Lv.5까지 과제를 다 끝내서 협업프로젝트 때 까지 대기를 해야한다. 일단 코드를 재검토해서 부족한 부분은 수정을 하였다. 유저 회원가입 서비스단 리팩토링 수정전 수정후 JWT에 예외처리 클라이언트에게 응답코드, 응답 매시지 전달 수정 수정전 수정후 중복된 코드가 많아서 더 수정하지 못하는게 아쉽다.
# 스택을 사용해서 푸는 문제 # 괄호가 제대로 닫혔는지 확인 하는 문제다. import sys N = int(sys.stdin.readline()) bracket_opener = { ")": "(" } # N만큼 반복 for _ in range(N): # 입력을 N만큼 받음 bracket = str(sys.stdin.readline()) stack = [] # 입력을 char 단위로 반복 for s in bracket: # 괄호가 닫힐 때 if s == ")": # 스택이 없으면 break if not stack: stack.append(s) break # 있으면 제일 마지막값을 빼서 비교 close = stack.pop() if bracket_opener[s] != close: break contin..
서버리스 소개 서버리스 서비스는 새로운 서비스 사용 하는 개발자는 관리할 필요가 없음 서버가 없다는게 아니라 관리할 필요가 없다는 뜻 원래 서버리스는 FasS (Function as a Service)를 뜻 했음 즉 서버가 보이지 않거나 서버를 프로비저닝 하지 않는 것 Lambda 개요 EC2는 계속 실행되는데 ASG로 스케일링해서 추가, 제거하는 작업을 하는데 AWS Lambda로 코드를 프로비저닝하면 EC2가 아닌 함수를 실행하고 바로 꺼지게 할 수가 있다. 자동으로 AWS가 프로비저닝 해주기에 스케일링이 자동임 함수당 최대 10GB RAM 증가 시킬수록 CPU 및 네트워크 품질 성능 향상 Lambda 컨테이너 이미지 이미지 자체가 Lambda의 런타임 API를 구현 해야함 Lambda 런타임 API..
Use Case Diagram ERD API 명세서 https://hhero.gitbook.io/99-5/ 회원가입 - 항해99 레벨5 http://ec2-43-202-207-123.ap-northeast-2.compute.amazonaws.com/api hhero.gitbook.io 요구사항 (구현 완료) 회원 가입 기능 이메일, 비밀번호, 성별, 전화번호, 주소, 권한을 저장할 수 있습니다. ADMIN, USER 권한이 있습니다. 이메일은 올바른 이메일 형식을 지켜야 합니다. 비밀번호는 최소 8자 이상, 15자 이하이며 알파벳 대소문자(a~z, A~Z), 숫자(0~9), 특수문자로 구성되어야 합니다. 회원가입 성공을 확인할 수 있는 값을 반환합니다. ex) HTTP Status Code, Error ..
Docker 소개 앱 배포를 위한 소프트웨어 개발 플랫폼 컨테이너 기술 컨테이너 앱에 패키징이 되어있음 표준화 가능 아무 운영체제 실행 가능 사용 사례 마이크로서비스 (MSA) 아키텍쳐 온프레미스에서 클라우드로 앱을 리프트-앤-시프트 작동 구조 서버에서 도커 에이전트 실행 도커 컨테이너 실행 도커 이미지 저장 위치 도커 리포지토리 Docker Hub Amazon ECR (Elastic Container Registry) 비공개 저장소 Amazon ECR Public Gallery 가상머신 vs 도커 가상머신 인프라 호스트 운영체제 하이퍼 바이저 Guest 운영 체제 앱 Guest 운영 체제2 앱2 위와 같은 구조로 되어있음 각자 분리되어 있음 리소스 공유하지 않음 도커 인프라 호스트 운영체제 도커 Dae..
생활 속 운영체제 우리는 일상에서 운영체제 경험을 많이한다. 윈도우 Mac OS 리눅스 iOS 안드로이드 컴퓨터는 원래 미사일 탄도를 계산하기 위해 개발 됐음 스마트 시계, 스마트 TV, 스마트 자동차 등 탑재된 컴퓨터는 임베디드 시스템, 임베디드 컴퓨터라 부른다. 예) 애플와치 watchOS, 삼석 갤럭시 워치4 wearOS 운영체제의 정의 정보: 컴퓨터가 데이터를 가공하고 처리하면 의미 있는 데이터가 되는데 이걸 정보라고 함 소프트웨어 응용 프로그램: 문서 작성을 위한 MS 워드, 한글 2018 등, 특정 작업을 위해 사용하는 프로그램 시스템 소프트웨어: 컴퓨터 하드웨어와 응용 프로그램을 관리하기 위한 소프트웨어 다양한 프로그램들이 키보드, CPU, 모니터, 마우스, HDD 등이 컴퓨터 자원을 공유 ..
스파르타 강의 사이트 서버 만들기 Use Case Diagram API 명세서 ERD 개발 오늘 하루 종일 해서 끝냈습니다, CRUD만 추가 했는데도 시간이 매우 많이 소모 됐습니다. 대댓글에서 조회 후 for문을 써서 댓글마다 추가를 해줄지, stream을 2번 쓸지 했지만 stream을 2번 쓰는 방향으로 갔습니다. JWT에서 로그인, 비밀번호 틀림, 권한 등 응답 메세지가 UTF-8이 깨지는 이슈를 수정 했습니다 코드 리뷰 1. casecade는 실무 안쓰는 추세 (매우 위험한 친구) 2. 명칭은 categoryies로 해야했었음 3. 수정 할 때 null 체크 후 setter 해주는게 좋음.
Amazon SQS - 표준 Queues 개요 간단한 대기 서비스 SQS에 보내면 FIFO로 할 경우 순서대로 소비자가 받은 후 메세지를 삭제 FIFO로 안하면 순서를 보장 할 수 없음 무제한 처리량을 얻을 수 있음 만약 메세지가 소비자가 늦게 처리하면 처리 속도를 늘려야함 처리 속도를 안늘리면은 다른 소비자가 받기에 중복으로 처리가 될 수도 있음 SQS는 ASG가 이미 되어있음 하지만 EC2는 ASG가 되어있어도 CloudWatch를 통해 알람을 보내 EC2의 ASG를 확장, 축소 시킬 수 있음 SQS - 메시지 가시성 시간 초과 소비자가 메세지를 폴링하면 이 메세지는 다른 소비자들에게 안보임 메시지 가시성 시간 초과 기본값은 30초 30초가 넘으면은 다른 소비자나 동일한 소비자가 또 받게 됨 메시지가..