그* 코딩테스트와 서류에 붙어 면접을 보게 되었다.

 

팀장님으로 보이는 시니어 한 분과 프린시플 레벨의 시니어 한 분이 들어오셨다.

굉장히 경직된 나를 보고는, 두 면접관님들이 분위기를 풀어주셔서 조금은 편하게 면접을 보았다! 

 


면접에서는

실제로 나의 이력서와 한 페이지 포트폴리오를 보고 내가 익숙해진 기술과 개념에서 질문이 나왔다.

 

Java Spring으로 현업에서 일한 경력이 없어 물어볼 폭이 넓지 않았던 거 같고, 1년의 짧은 연구실 경력과 개인적으로 운영하는 서비스에 중심을 두고 전개 되었다.

그 후엔 내가 가진 기술 스택을 토대로 한 기술적인 사항에 대한 질문들이 들어왔다.

 

당신은 어떤 일을 해왔나요?

1. 먼저 연구실에서 데이터 플랫폼 실험을 수행한 지 질문이 들어왔다.

문제 수행력 검증과 더불어 어떤 일을 경험했는지 물어보는 듯 했다.
  • 실제로 무슨 일을 했는지
  • 중간에 어떤 어려움이 있었는지

이 부분에서는 내가 한 일을 솔직히 말하는 것이 중요하다

 

2. 개인적으로 운영하는 서비스 (Java Spring)에 대해서도 질문이 들어왔다.

난 이 부분을 정말 잘 준비해 갔어야 한다.
이번 면접 기회는 개인 서비스를 통해 얻어진 느낌이었다.
개발 강의나 도서로 고민 없는 학습이 아니라 직접 부딪혀보는 야생성이 어필이 되었다고 생각한다.
  • 내가 어떤 고민으로 프로젝트를 했는지, 
  • 배포를 한 상태인지
  • 기술 스택은 어떤 고민을 거쳐 고르게 되었는지
  • 중간에 어떤 어려움이 있었는지 어떻게 해결을 했는지

내가 처한 상황과 어떻게 문제를 해결했는지, 고민을 거쳐 기술 스택을 사용했는지 잘 대답하는 것이 핵심이다.

어떻게 이 질문을 잘 대답할 지 물어본다면.. 내가 실제로 그렇게 고민하면서 개발하면 된다.

 

3. 졸업 후 어떤 일들을 해왔는 지

  • 흔히 공백기 질문이라고 부르는 질문이다. 
  • 공부나 프로젝트, 코딩테스트 공부를 해왔다고 해도, 일단은 현재 실력이 좋으면 면접관들도 그렇게 크게는 생각하지 않는 것으로 느꼈다.

 


기술 검증 들어갑니다

먼저 Java Spring에 관한 질문이 처음으로 나왔다.

이러한 형태의 전체 Flow와 기술적 Detail을 물어보는 질문은, 백엔드 면접뿐만 아니라 모든 면접에 해당되는, 면접자의 수준을 측정하는 질문이라고 생각한다.

 

Url으로 요청이 들어올 때부터 나갈 때까지 Java Spring 동작을 아는 범위에서 전부 설명해주세요.

 

내가 여기서 대답을 어느정도는 했지만, 추측하기로는 면접관님들이 만족하지 못하는 듯 했다.

먼저 내가 생각해보지 않았던 질문이라 답변의 포인트를 잘 잡지 못하고 횡설수설했던 탓도 있고, 워낙 방대하다보니 어느 수준에서 어떻게 대답해야할 지 갈피를 잡지 못했었다.

 

이 질문 이후에는 한 가지 꼬리 질문과 두 가지 추가 질문이 이어졌다.

  • 인증 과정이 추가된 꼬리 질문
    • Login이나 인증이 추가되어 Java Spring security가 더해진다면 동작은 어떻게 될 지
  • 두 가지 추가 질문
    • Java Spring Bean을 어떻게 의존성 주입을 수행하는지
    • Java spring와 python Django의 차이점

 

이 후에는 DB에 관한 질문이 이어졌다. 첫 질문을 잘 대답하니 두번째로 쿼리 개선 경험을 물어보셨다.

  • DB의 transaction은 무엇이고 개념적으로 어떻게 동작하는 지
  • DB slow query 개선했던 경험이 있나요? 어떤 경험이었나요? 
  • 훅 들어온 심화 질문, DB는 일반적으로 어떠한 기준을 가지고 Index의 사용 여부를 결정합니다. 그렇다면 DB table의 Index를 강제로 사용하게 하는 방법을 무엇일까요? (대답 못함. 답은 use index)

 

그 이후에는 객체지향 패턴 중 하나인 싱글턴 패턴을 물어보셨고, 설명 중 class와 instance를 혼동해서 사용하는 모습에 추가 질문으로 이어졌다. 

  • 싱글턴 패턴의 개념과 예시
    • 개념은 잘 설명했지만, 예시를 못들었다. Java Spring Bean의 DI 주입이 싱글턴 패턴인데 낫 놓고 기억자도 모르는 사람..
  • Class와 Instance의 차이점

 

그리고 정말 기초 질문으로 마지막 검증!

  • call by reference, call by value
  • 기본형 / 참조형 변수
  • static 변수는 어디에 저장될까요? 

피드백

이 면접 어떻게 흘러가는건가. 이런 생각에 나라도 발전할 기회로 삼자..!

마무리 단계에서는 이런 생각에 이러한 질문은 던졌다.

선배 개발자 입장에서 제가 어떤 부분을 보완하면 채용 과정에서 더 매력적인 사람이 될 지 궁금합니다!

 

감사하게도 두 분 다 가장 어려운 질문이라고 너털 웃음을 지으시면서도 대답을 잘해주셨다.

 

프린시플 시니어분

 

개발자를 채용할 때, 세 가지를 주로 본다고 하셨다.

  • 트러블슈팅 능력
  • 협업 능력
  • 학습 능력

그런데 경력이 적거나 없는 경우에는 다양한 문제를 만나본 적이 없고, 확연한 협업 기회도 적기 때문에 그나마 검증할 수 있는 학습능력에 주안점을 두고 면접을 진행한다고 설명해주셨다.

 

즉, 공부할 때 꼼꼼히 공부했는지 보는 것이다. 

이는 면접시 답변이나 내가 해왔던 활동의 완성도, 그리고 프로젝트시에 다양한 고민들로 검증을 한다고 설명해주셨다. 

그 전에는 공부할 때 꼼꼼히는 공부했고 프로젝트가 잘 수행 될 수 있게 공부를 해왔지만 명확한 기준이 없었다.

이 답변을 듣고 내가 보강해야 될 부분을 확연히 알 수 있었다.

 

팀장 포지션 시니어분

 

이력서와 깃허브가 가장 중요하다고 말씀해주셨다.

 

이력서의 경우에는 지원에 대한 성의가 나타나기 때문에, 열정이나 진심을 비추어 확인하고,

깃허브에서는 프로필과 각 프로젝트에서 사용한 언어와 프레임워크를 보고, 
특히 현업에서 수행하는 Readme나 깃허브의 기능 사용 (Issue, git flow), Commit / Code convention을 지원자가 현업급으로 사용하고 있는지, 그렇지 않더라도 일관성을 지켜 코드와 커밋을 작성하는 지를 본다고 한다.

 

이제 나는 어떻게 할 것인가

Need Action Explain
말을 명료하게 하자 블로그든 일기는 Readme든
글을 많이 읽고 써보자 (1일 1글)
언급하지 않았지만
횡설수설! 고쳐야된다.
프로젝트시 기술 스택 분석 프로젝트에 기술을 도입하게 되면 도입 배경 글을 작성하자 그러자
면접 질문들 준비 면접 질문들에 모범 답변을 만들고 연습 학습을 더 꼼꼼하게 하자
이력서 이력서 작성 시간을 배정을 하고
항목별 메세지를 선 작성하여 채운다.
각 항목에 담을 메세지 먼저 작성하자
깃허브 IT 회사들의 깃허브를 참고하여 보강 깃허브는 개발자 lsmman의 얼굴이다.
공부는 그만하자 원하는 기술 스택이 있다면 그에 맞는 프로젝트를 기획해서 구현해보자 공부가 아니라 프로젝트를 하자

 

  • "개발바닥"의 "클론코딩" 이라는 이름의 영상이 있다. 클론코딩에 관한 영상이 아니라 그보다 좋은 학습법을 이야기해주는 내용의 영상인데, 여기에서 사업주도 개발이 성장에 주요했다고 말씀하신다. 나도 도입해야겠다.

BigInteger 다루기

들어가기 전, BigInteger Java SE 7 공식문서coding-factory에서 참고하여 적은 것임을 밝힙니다.

 

BigInteger를 사용해야 하는 이유

우리가 프로그램을 만들 때 조건에 의해 굉장히 큰 수의 셈이 필요한 경우가 있다. int나 long의 범위만 해도 넘을 경우가는 잘 없겠지만, 변수의 정수 표현 범위를 넘어서게 되면 0이나 내가 의도하지 않았던 값으로 출력된다. 우리는 최악의 경우를 고려해야 하므로, 무한의 정수가 들어갈 가능성이 있다면 BigInteger는 사용할 수 있는 좋은 선택지이라 하겠다.

BigInteger는 int, long, Integer, Long과 달리 문자열 형태로 숫자를 처리하므로 아무리 큰 수라도 담을 수 있다.

 

타입 범위 메모리 크기 (64bit 기준) 기본/참조형 저장된 위치
int -2,147,483,648 ~ 2,147,483,647 4 Byte 기본형 Stack
long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 8 Byte 기본형 Stack
BigInteger 무한 (Infinity) Minimum 70 Byte 참조형 Heap
  • BigInteger는 표현하고자 하는 자리수에 비례하여 사용하는 메모리 크기가 늘어난다.
  • BigInteger의 메모리 크기는 최소 사이즈인 70 Byte일 때는 BigInteger를 "7" 과 같이 한 자리 수로만 사용할 때의 메모리 크기이다.
  • Stackoverflow의 한 문답에 따르면 64-bit JVM을 기준으로 1 digit (=자리수)일 때 70 Byte, 20 digit일 때 80 Byte, 100 digit이면 112 Byte 정도 된다고 한다. Long이 24 Byte이고 long이 8 Byte임을 생각하면 3배에서 10배 정도의 크기이다.
  • 무한이 아닌지 조건을 생각해보고 곰곰히 사용해야 하겠다.

 

BigInteger 사용법

선언

import java.math.BigInteger;

BigInteger bigNumber = new BigInteger("10001");
  • BigInteger는 java.math 안에 있으며 위와 같이 선언 가능하다.
  • 주의할 점은 BigInteger를 초기화하기 위해서 문자열을 인자 값으로 넘겨주어야 한다는 점이다. BigInteger의 공식 문서을 보면 byte[]와 Random 변수를 사용해서 2진수를 활용한 선언, 범위 안에서 랜덤한 수를 지정하는 선언도 사용할 수 있다.

 

 

사칙연산

BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("10000");

System.out.println("덧셈(+) :" +bigNumber1.add(bigNumber2));
System.out.println("뺄셈(-) :" +bigNumber1.subtract(bigNumber2));
System.out.println("곱셈(*) :" +bigNumber1.multiply(bigNumber2));
System.out.println("나눗셈(/) :" +bigNumber1.divide(bigNumber2));
System.out.println("나머지(%) :" +bigNumber1.remainder(bigNumber2));

/*
  덧셈(+) :110000
  뺄셈(-) :90000
  곱셈(*) :1000000000
  나눗셈(/) :10
  나머지(%) :0
 */
  • BigInteger은 문자열이기에 사칙연산이 안된다. 그렇기에 BigIntger 내부의 숫자를 계산하기 위해서는 BigIntger 클래스 내부에 있는 메서드를 사용해야 한다.

 

 

형 변환

BigInteger 클래스를 기본 타입으로 형 변환을 해야할 경우

BigInteger bigNumber = BigInteger.valueOf(100000); //int -> BigIntger

int int_bigNum = bigNumber.intValue(); //BigIntger -> int
long long_bigNum = bigNumber.longValue(); //BigIntger -> long
float float_bigNum = bigNumber.floatValue(); //BigIntger -> float
double double_bigNum = bigNumber.doubleValue(); //BigIntger -> double
String String_bigNum = bigNumber.toString(); //BigIntger -> String

 

2개의 수 비교

비교시엔 compareTo를 사용한다.

BigInteger bigNumber1 = new BigInteger("100000");
BigInteger bigNumber2 = new BigInteger("1000000");
		
int compare = bigNumber1.compareTo(bigNumber2);

 

우리가 알고 있는 CompareTo 리턴 값과 동일하게, 1, 0, -1로 표현된다.

BigInteger bigNumber1 = new BigInteger("50");
BigInteger bigNumber2 = new BigInteger("1000");
BigInteger bigNumber2_same = new BigInteger("1000");

int compare = bigNumber1.compareTo(bigNumber2);
System.out.println("작은 수를 큰 수랑 비교 할 때 : " + compare); // -1
int compare2 = bigNumber2.compareTo(bigNumber2_same);
System.out.println("2개의 수가 같을 때 : " + compare2); // 0
int compare3 = bigNumber2.compareTo(bigNumber1);
System.out.println("큰 수를 작은 수랑 비교할 때 : " + compare3); // 1 

/*
큰 수를 작은 수랑 비교 할 때 : -1
작은 수를 큰 수랑 비교할 때 : 1
2개의 수가 같을 때 : 0
*/

프로그래밍에서 내가 이루고 싶은 것 (21.07.30 ver)

 

실력을 늘리고 싶다면 양질전환의 법칙에 따라라.
양이 갖추어졌을 때 질은 자연스레 늘어난다.

 

난 내가 꿈꿔왔던 좋은 코드와 멋진 프로그래밍 설계를 내 능력으로 만드는 중이다.
내 손에 닿는 건 다 만들어보자.

 

닿는 걸 만들어보기 위해 필요한 기술을 찾아보고 해당 스택을 공부하는 시간도 가져보자


내가 만들어 보고 싶은 것

  • 기본적인 백엔드 서버 + 다양한 DB 연동
  • 기본적인 채팅 앱
  • Url shortener 만들어보기
  • 간편 결제 서비스 만들어보기
  • AWS로 간단한 서비스 구축

 

크게 보았을 때 적용할 것들

  • TDD, 코드리뷰
  • 어드민 사이트 만들기
  • AWS 
  • Spring Framework, Spring Batch, ORM(JPA) 고민하기!
  • GRPC 
  • Kubernetes/Docker
  • MSA 기반의 대용량
  • 분산처리 시스템 개발

 

실력 업을 위해서

  • 오픈소스 튜토리얼톤 Openstack 합류!!!
  • 꾸준히 이틀에 1시간 이상 운동
  • 일주일에 5문제 이상 프로그래밍 문제 풀기
  • 해커톤 눈에 보이면 다 지원하기
  • AWS SAA 따기!

 

굉장히 신기한 것

- Google의 Starline 3D 홀로그램 영상 통화

 

 

언제든 하고 싶은 거 생기면 적습니다.

EC2 인스턴스

필요한 내용 위주로 정리하겠습니다.

 

 

EC2 요금별 인스턴스

  • 온디맨드 인스턴스
    • 시간당 컴퓨팅 파워 사용량에 따라 요금을 지불하는 모델
    • 수요에 따라 컴퓨팅 파워를 늘이고 줄일 수 있고, 하드웨어 리소스의 고정 비용을 훨씬 적은 가변 비용으로 처리할 수 있음
  • 예약 인스턴스
    • 예약 인스턴스는 인스턴스의 사용을 예약하여 사용하는 것
    • 온디맨드 인스턴스 요금에 비해 대폭 할인된(75%) 요금을 제공 받음
  • 스팟 인스턴스
    • 예비로 남아있는 EC2 컴퓨팅 용량에 입찰하여 인스턴스를 사용한 것
    • 온디맨드 요금과 비교하여 훨씬 할인 된 요금으로 사용할 수 있으며, 실행 비용을 대폭 절감할 수 있음.

'AWS > AWS SAA' 카테고리의 다른 글

샘플 문항에서 물어보는 개념들  (0) 2021.07.27
AWS SAA 시험 가이드  (0) 2021.07.26
AWS SAA 일지  (0) 2021.07.20
AWS SAA 학습 자료집  (0) 2021.07.20
AWS SAA 시험 신청하기 (+온라인 원격 시험 정보)  (0) 2021.07.19

1. 클라우드 컴퓨팅

클라우드 컴퓨팅은 서로 다른 물리적 위치의 컴퓨터 리소스를 가상화 기술로 통합해 제공하는 기술을 말한다. 사용자는 클라우드 서비스 플랫폼을 통해 컴퓨팅 파워, 데이터베이스, 스토리지, 애플리케이션, 기타 IT 리소스를 온디맨드로 제공받으며 인터넷에서 종량 요금제 방식으로 필요한 만큼 리소스에 거의 바로 액세스 할 수 있고, 사용한 부분에 대해서만 비용을 지불한다.

2. 클라우드 컴퓨팅 모델

IaaS, PaaS, SaaS - 출저

IaaS, PaaS, SaaS

  • IT 인프라의 여러 필요한 구성 요소 중 예전에는 모두 사용자가 관리해야만 했지만, 이제는 일정 부분을 클라우드에서 내려받는 형태가 많이 도입되었다.
  • 얼마만큼 사용자가 관리하고 얼마만큼 클라우드에서 제공받는가에 따라 다음과 같이 네 가지로 나누어 진다.
  • 위의 그림에서 보이는 데로 노란색의 You manage는 사용자가 관리해야 할 부분이고, 흰색의 Managed by vendor는 기업(클라우드)에서 관리해주는 부분이다.

 

  1. Packaged Software
    • 그림과 같이 직접 인프라, 플랫폼, 어플레케이션까지 모두 구성하여 관리하는 모델
    • 컴퓨터를 사서 직접 전부 설치하는 경우
  2. IaaS (Infrastructrue as service)
    • 그림과 같이 Infrastructure 레벨의 물리적인 컴퓨팅 리소스와 가상화 기술만 제공하는 서비스
    • 사용자는 OS를 선택하여 올리고 그 상위 계층만 신경 쓰면 되는 모델
    • AWS의 EC2를 사용하는 경우
    • 개발자와 인프라 관리자의 역할을 분담시킬 수 있음
  3. PaaS (Platform as a service)
    • 개발자가 응용 프로그램을 작성할 수 있도록 플랫폼 및 환경을 제공하는 모델
    • 인프라를 모니터링 하거나 OS 딴을 고려할 필요가 없고 사용자는 애플리케이션 자체에 집중할 수 있다.
    • IaaS는 VM 머신이나 물리적인 컴퓨팅 자원을 제공한다면, PaaS는 NodeJS, Java와 같은 런타임 프로그램을 미리 깔아놓고 거기에 소스코드를 넣어서 돌리는 구조.
    • Heroku, Google App Engine이 이에 해당
    • 플랫폼에 종속된다는 단점이 있음
  4. SaaS (Software as a service)
    • 모든 것을 기업(클라우드)에서 제공함으로 사용자는 별도의 설치나 부담이 필요 없이 SW를 사용 가능
    • 소비 관점에서 제공되는 IT 방식의 서비스로 정리할 수 있다. 
    • 사용자는 개발이나 구성을 신경 쓸 필요 없이 웹만 접속하면 되기 때문에 사용하기 매우 쉽다.
    • MS 오피스 365, 드롭박스, 카카오톡이 이에 해당

 

요약

한 단어로 설명한다면?

 

3. 클라우드 컴퓨팅 배포 모델

클라우드

클라우드 기반 애플리케이션은 클라우드상에 완전히 배포되며 애플리케이션의 모든 부분이 클라우드에서 실행

 

하이브리드

하이브리드 배포는 클라우드 기반 리소스와 클라우드에 위치하지 않은 기존 리소스 간에 인프라와 애플리케이션을 연결하는 방법. 가장 흔한 하이브리드 배포 방법은 클라우드와 기존 온프레미스 인프라 사이에서 이루어지는 것임.

 

온프로미스

클라우드 컴퓨팅 리소스를 프라이빗하게 요청이 올 때마다 자원을 사용할 수 있도록 배치하는 것이다. 대부분의 경우 온프레미스 배포 모델은 리소스 활용도를 높이기 위해 애플리케이션 관리 및 가상화 기술을 사용한다는 점에서 레거시 IT 인프라와 같다.

 

 

참고

'AWS' 카테고리의 다른 글

서버리스  (0) 2023.09.05
하드디스크를 가상 메모리로 사용하기 (Swapping, AWS freetier)  (0) 2022.01.12

샘플 문항에서 물어보는 개념들

문제를 적고 필요한 개념을 적고, 가능하다면 개념 링크까지 연결하자.

 

1) CRM(고객 관계 관리) 애플리케이션은 Application Load Balancer 뒤의 여러 가용 영역에 있는 Amazon EC2 인스턴스에서 실행됩니다. 이러한 인스턴스 중 하나에 장애가 발생하면 어떻게 됩니까?

 

A) 로드 밸런서가 장애 발생 인스턴스로 요청을 보내는 것을 중지합니다.

B) 로드 밸런서가 장애 발생 인스턴스를 종료합니다.

C) 로드 밸런서가 장애 발생 인스턴스를 자동으로 교체합니다.

D) 인스턴스가 교체될 때까지 로드 밸런서가 504 게이트웨이 시간 초과 오류를 반환합니다.

 

2) Amazon SQS 를 분리된 아키텍처로 갖추고 있는 회사에서 비동기 처리를 수행해야 합니다. 이 회사는 폴링 요청의 빈 응답 수를 최소로 유지하려고 합니다. 빈 응답을 줄이려면 솔루션 아키텍트는 어떻게 해야 합니까?

 

A) 큐의 메시지 최대 보존 기간을 늘립니다.

B) 큐의 재드라이브 정책에서 최대 수신 수를 늘립니다.

C) 큐의 기본 가시성 제한 시간을 늘립니다.

D) 큐의 수신 메시지 대기 시간을 늘립니다.

'AWS > AWS SAA' 카테고리의 다른 글

[AWS SAA] EC2 인스턴스  (0) 2021.07.28
AWS SAA 시험 가이드  (0) 2021.07.26
AWS SAA 일지  (0) 2021.07.20
AWS SAA 학습 자료집  (0) 2021.07.20
AWS SAA 시험 신청하기 (+온라인 원격 시험 정보)  (0) 2021.07.19

AWS Certified Solutions Architect - Associate(SAA-C02) 시험

AWS 솔루션스 아키텍트 역할을 수행 능력 검증

 

세부 목표

  1. 요구 사항에 따라 적절한 AWS 서비스를 사용하고 아키텍처 원칙을 준수하여 솔루션 설계
  2. 워크로드 수명 주기 전반에 걸쳐 모범 사례를 기반으로 조직에 구현 지침 제공
  3. 안전하고 성능이 뛰어나며 비용 효율적이고 가용성이 높고 확장 가능한 시스템을 설계한 최소 1년 이상 실무 경험
  4. 컴퓨팅, 네트워킹, 스토리지, 관리 및 데이터베이스 AWS 서비스를 사용한 실무 경험
  5. AWS 기술이 포함된 솔루션에 대한 기술 요구 사항을 식별하고 정의할 수 있는 능력
  6. 요구 사항을 충족하는 AWS 서비스를 식별하는 능력
  7. AWS에서 잘 설계된 솔루션을 빌드하기 위한 모범 사례에 대한 이해
  8. AWS 글로벌 인프라에 대한 이해

 

문제 형식

  • 객관식: 정답 1개와 오답 3개(정답 이외의 답)가 있습니다.
  • 선다형: 5개 이상의 응답 중에 2개 이상의 정답이 있습니다. 문장을 가장 잘 완성하거나 질문에 대한 답으로 가장 적합한 응답을 하나 이상 선택합니다. 답을 하지 않은 문항은 오답으로 처리됩니다.

 

합격 점수

  • 시험 결과는 100~1,000 기준의 점수로 채점됩니다. 합격 최소 점수는 720점입니다.

 

영역 시험 비율(%) 영역

  • 영역 1: 복원력을 갖춘 아키텍처 설계 - 30%
  • 영역 2: 고성능 아키텍처 설계 - 28%
  • 영역 3: 안전한 애플리케이션 및 아키텍처 설계 - 24%
  • 영역 4: 비용에 최적화된 아키텍처 설계 - 18%

 

영역 1: 복원력을 갖춘 아키텍처 설계

1.1 멀티 티어 아키텍처 솔루션 설계

  • 액세스 패턴을 기반으로 솔루션 설계를 결정합니다.
  • 설계에 사용되는 구성 요소에 대한 조정 전략을 결정합니다.
  • 요구 사항에 따라 적절한 데이터베이스를 선택합니다.
  • 요구 사항에 따라 적절한 컴퓨팅 및 스토리지 서비스를 선택합니다.

 

1.2 고가용성 및/또는 내결함성 아키텍처 설계

  • 가용 영역 전반에 내결함성 아키텍처를 제공하는 데 필요한 리소스의 양을 결정합니다.
  • 단일 장애 지점을 완화하는 고가용성 구성을 선택합니다.
  • 애플리케이션을 변경할 수 없는 경우 레거시 애플리케이션의 안정성을 개선하는 AWS 서비스를 적용합니다.
  • 비즈니스 요구 사항을 충족하는 데 적절한 재해 복구 전략을 선택합니다.
  • 솔루션의 고가용성을 보장하는 주요 성능 지표를 식별합니다.

 

1.3 AWS 서비스를 사용하여 결합 해제 메커니즘 설계

  • 구성 요소의 소결합을 달성하기 위해 활용할 수 있는 AWS 서비스를 결정합니다.
  • 결합 해제를 활성화하기 위해 서버리스 기술을 활용할 시기를 결정합니다.

 

1.4 적절한 복원력을 갖춘 스토리지 선택

  • 데이터의 내구성을 보장하는 전략을 정의합니다.
  • 데이터 서비스 일관성이 애플리케이션 운영에 미치는 영향을 파악합니다.
  • 애플리케이션의 액세스 요구 사항을 충족하는 데이터 서비스를 선택합니다.
  • 하이브리드 또는 비클라우드 네이티브 애플리케이션과 함께 사용할 수 있는 스토리지 서비스를 식별합니다.

 

영역 2: 고성능 아키텍처 설계

2.1 워크로드를 위한 탄력적이고 확장 가능한 컴퓨팅 솔루션 식별

  • 컴퓨팅, 스토리지 및 네트워킹 요구 사항에 따라 적절한 인스턴스를 선택합니다.
  • 성능 요구 사항을 충족하도록 확장 가능한 적절한 아키텍처 및 서비스를 선택합니다.
  • 솔루션의 성능을 모니터링하는 지표를 식별합니다.

 

2.2 워크로드를 위한 확장 가능한 고성능 스토리지 솔루션 선택

  • 성능 요구 사항을 충족하는 스토리지 서비스 및 구성을 선택합니다.
  • 향후 요구 사항을 수용하도록 확장 가능한 스토리지 서비스를 결정합니다.

 

2.3 워크로드를 위한 고성능 네트워킹 솔루션 선택

  • 성능 요구 사항을 충족하는 데 적절한 AWS 연결 옵션을 선택합니다.
  • AWS 퍼블릭 서비스에 대한 연결을 최적화하는 데 적절한 기능을 선택합니다.
  • 성능 이점을 제공하는 엣지 캐싱 전략을 결정합니다.
  • 마이그레이션 및/또는 수집에 적합한 데이터 전송 서비스를 선택합니다.

 

2.4 워크로드를 위한 고성능 데이터베이스 솔루션 선택

  • 적절한 데이터베이스 조정 전략을 선택합니다.
  • 성능 향상을 위해 데이터베이스 캐싱이 필요한 시점을 결정합니다.
  • 성능 요구 사항을 충족하는 적합한 데이터베이스 서비스를 선택합니다.

 

영역 3: 안전한 애플리케이션 및 아키텍처 설계

3.1 AWS 리소스에 대한 보안 액세스 설계

  • 사용자, 그룹, 역할 간에 선택할 시점을 결정합니다.
  • 지정된 액세스 정책의 순 효과를 해석합니다.
  • 루트 계정을 보호하는 데 적절한 기술을 선택합니다.
  • AWS IAM의 기능을 사용하여 자격 증명을 보호하는 방법을 결정합니다.
  • 애플리케이션이 AWS API에 액세스할 수 있는 안전한 방법을 결정합니다.
  • AWS 리소스에 대한 액세스 추적 가능성을 생성하는 데 적절한 서비스를 선택합니다.

 

3.2 보안 애플리케이션 계층 설계

  • 주어진 트래픽 제어 요구 사항에 따라 보안 그룹 및 네트워크 ACL을 사용할 시점 및 방법을 결정합니다.
  • 퍼블릭 서브넷과 프라이빗 서브넷을 사용하여 네트워크 세분화 전략을 결정합니다.
  • Amazon VPC에서 AWS 서비스 엔드포인트 또는 인터넷 기반 리소스에 안전하게 액세스하는 데 적절한 라우팅 메커니즘을 선택합니다.
  • 외부 위협으로부터 애플리케이션을 보호하는 데 적절한 AWS 서비스를 선택합니다.

 

3.3 적절한 데이터 보안 옵션 선택

  • 액세스 패턴을 기반으로 개체에 적용해야 하는 정책을 결정합니다.
  • AWS 서비스의 저장 데이터 및 전송 중 데이터에 적절한 암호화 옵션을 선택합니다.
  • 요구 사항에 따라 적절한 키 관리 옵션을 선택합니다.

 

영역 4: 비용에 최적화된 아키텍처 설계

4.1 비용 효율적인 스토리지 솔루션 식별

  • 요구 사항에 따라 가장 비용 효율적인 데이터 스토리지 옵션을 결정합니다.
  • 비용을 최소화하기 위해 시간 경과에 따라 데이터를 스토리지 계층에 저장하는 자동화된 프로세스를 적용합니다.

 

4.2 비용 효율적인 컴퓨팅 및 데이터베이스 서비스 식별

  • 워크로드의 각 측면에 대해 가장 비용 효율적인 Amazon EC2 결제 옵션을 결정합니다.
  • 요구 사항에 따라 가장 비용 효율적인 데이터베이스 옵션을 결정합니다.
  • 비용 관점에서 적절한 조정 전략을 선택합니다.
  • 워크로드에 가장 적합한 컴퓨팅 리소스를 선택하고 크기를 조정합니다.
  • 관리형 서비스 및 서버리스 아키텍처를 통해 TCO(총 소유 비용)를 최소화하는 옵션을 결정합니다.

 

4.3 비용에 최적화된 네트워크 아키텍처 설계

  • 비용을 절감하기 위해 콘텐츠 전송을 사용할 수 있는 시점을 파악합니다.
  • AWS 내에서 데이터 전송 비용을 절감하기 위한 전략을 결정합니다.
  • AWS 환경과 온프레미스 환경 간에 가장 비용 효율적인 연결 옵션을 결정합니다.

 

부록: 시험에서 다룰 수 있는 주요 도구, 기술 및 개념들

  • 컴퓨팅
  • 비용 관리
  • 데이터베이스
  • 재해 복구
  • 고가용성
  • 관리 및 거버넌스
  • 마이크로서비스 및 구성 요소 결합 해제
  • 마이그레이션 및 데이터 전송
  • 네트워킹, 연결 및 콘텐츠 전송
  • 보안
  • 서버리스 설계 원칙
  • 스토리지

AWS 서비스 및 기능 분석:

  • Amazon Athena
  • Amazon ES(Amazon Elasticsearch Service)
  • Amazon EMR
  • AWS Glue
  • Amazon Kinesis
  • Amazon QuickSight AWS 결제 및 비용 관리:
  • AWS Budgets
  • Cost Explorer

애플리케이션 통합:

  • Amazon SNS(Amazon Simple Notification Service)
  • Amazon SQS(Amazon Simple Queue Service)

'AWS > AWS SAA' 카테고리의 다른 글

[AWS SAA] EC2 인스턴스  (0) 2021.07.28
샘플 문항에서 물어보는 개념들  (0) 2021.07.27
AWS SAA 일지  (0) 2021.07.20
AWS SAA 학습 자료집  (0) 2021.07.20
AWS SAA 시험 신청하기 (+온라인 원격 시험 정보)  (0) 2021.07.19

21년 7월 20일 시작.

나의 미션

Index Todo Link Done
1 샘플 문항 보면서 감잡기 링크 O
2 AWS 시험 안내서 읽으며 시험 방식과 문제 출제 방식 정리 링크 O
3 AWS 시험 안내서 읽으며 문제마다 물어보는 포인트 적기 링크 O
4 AWS overview 훑어보기 링크 O
5 AWS Solutions Architect - Associate certificate Study— 공식 문서 정리 Part 1, 2, 3 읽고 나의 정리집, 문제 포인트 노트 만들기 링크 123, 4 3
6 샘플 문항 다시 풀어보기 링크  
7 Examtopic에서 300문제 풀고 틀린 문제 오답정리 링크  
8 읽으면서 그래도 모르는 거 체크해보기 링크 123, 4  
9 많이 틀리는 영역에서 더 세세한 내용확인 후 정리집에 추가 (FAQ, 백서, 모범사례 순) 링크  
10 Udemy 6회 모의고사 링크  
11 준비 시험 보고 7~9번 반복    

 

추천 공부 순서

  • AWS 개요 -> 각 서비스별 FAQ -> 백서 -> 모범사례

'AWS > AWS SAA' 카테고리의 다른 글

[AWS SAA] EC2 인스턴스  (0) 2021.07.28
샘플 문항에서 물어보는 개념들  (0) 2021.07.27
AWS SAA 시험 가이드  (0) 2021.07.26
AWS SAA 학습 자료집  (0) 2021.07.20
AWS SAA 시험 신청하기 (+온라인 원격 시험 정보)  (0) 2021.07.19

+ Recent posts