OX문제 정답:
- Amazon EC2는 가상 서버를 제공하는 서비스입니다.
- O
- Amazon RDS는 서버리스 데이터베이스를 제공합니다.
- X
- AWS Lambda는 서버를 직접 관리해야 하는 서비스입니다.
- X
- Amazon S3는 데이터를 저장하고, 웹에서 액세스할 수 있는 서비스를 제공합니다.
- O
- VPC는 AWS 리소스에 대한 프라이빗 네트워크 환경을 제공합니다.
- O
- AWS IAM을 통해 리소스에 대한 권한을 관리할 수 있습니다.
- O
- Amazon CloudFront는 전 세계에서 콘텐츠를 빠르게 전송할 수 있도록 도와주는 CDN 서비스입니다.
- O
- AWS Elastic Beanstalk은 애플리케이션 배포를 자동화하는 서비스입니다.
- O
- Amazon EC2는 단일 리전 내에서만 사용할 수 있습니다.
- X
- S3 버킷의 퍼블릭 액세스 설정을 차단하면, 모든 객체에 대한 퍼블릭 액세스가 차단됩니다.
- O
5지선다 문제 정답:
- Amazon EC2에 대한 설명으로 옳지 않은 것은?
- SLA를 통해 100% 가용성을 보장한다.
- EBS 스냅샷에 대한 설명으로 옳은 것은?
- AWS 클라우드 환경에서 데이터를 백업하는 기능이다.
- AMI(Amazon Machine Image)에 대한 설명으로 알맞은 것은?
- 필요한 소프트웨어 구성이 포함된 템플릿이다.
- S3 버전 관리 기능을 활성화하면 어떤 이점이 있는가?
- 객체의 이전 버전을 복구할 수 있다.
- S3 Glacier에 가장 적합한 사용 사례는?
- 장기 데이터 보관
- 탄력적 IP(EIP)에 대한 설명 중 옳지 않은 것은?
- 탄력적 IP는 추가 비용이 없다.
- Auto Scaling 정책을 설정하려면 무엇이 필요한가?
- CloudWatch 알람
- S3 정적 웹사이트 호스팅을 사용할 때 필요한 설정은?
- 퍼블릭 액세스 허용
- S3 스토리지 클래스 중 데이터 액세스 빈도가 매우 낮고, 비용이 가장 저렴한 옵션은?
- S3 Glacier Deep Archive
- SSE-KMS 암호화를 사용하면 어떤 기능을 추가로 제공받을 수 있는가?
- 키를 중앙에서 관리하고 감사 기능을 제공한다.
- 다음 중 CloudFront의 주요 기능이 아닌 것은?
- 데이터베이스 백업 제공
- VPC 피어링 연결을 설정하면 어떤 이점이 있는가?
- 두 VPC 간 프라이빗 연결 제공
- S3 객체 잠금(Object Lock)을 사용하는 이유는?
- 객체를 특정 기간 동안 삭제하거나 덮어쓰지 않도록 방지
- DynamoDB의 특징으로 올바른 것은?
- 완전 관리형 NoSQL 데이터베이스 서비스이다.
- Lambda 함수를 사용할 때 어떤 트리거를 설정할 수 없는가?
- EC2 인스턴스 상태 변경
- Amazon RDS에서 다중 AZ 배포의 주요 이점은?
- 자동 장애 조치 제공
- Elastic Beanstalk의 주요 이점은?
- 애플리케이션 코드 배포 자동화
- AWS Lambda의 실행 시간 제한은?
- 15분
- AWS CloudTrail은 어떤 목적으로 사용되는가?
- AWS 계정 활동 로깅
- Amazon ECS는 다음 중 무엇을 지원하지 않는가?
- 데이터베이스 관리
- AWS Kinesis Data Streams의 주요 사용 사례는?
- 실시간 데이터 스트리밍
- AWS IAM 정책은 무엇을 정의하는가?
- 사용자와 그룹의 액세스 권한
- AWS RDS 백업은 기본적으로 어떻게 수행되는가?
- 24시간마다 자동으로 수행
- CloudWatch 대시보드를 사용하면 어떤 작업을 수행할 수 있는가?
- 실시간 모니터링과 알람 구성
- Amazon SNS를 사용하는 주요 이유는?
- 실시간 알림 전송
- AWS CodePipeline의 주요 이점은?
- CI/CD 파이프라인 관리
- Elastic Load Balancer(ELB)의 기능으로 알맞은 것은?
- 애플리케이션 트래픽 분산
- Amazon Redshift는 주로 어떤 목적으로 사용되는가?
- 데이터 웨어하우스
- AWS Backup의 주요 이점은?
- 모든 AWS 서비스의 백업 중앙화
============================================================================================
1. 표현식
- 값을 생성하는 코드의 단위
2. 문장
- 작업을 수행하는 코드 단위
- 하나 이상의 표현식으로 구성될 수 있으며, 대부분의 경우 세미콜론으로 끝난다
3. 동적 타이핑
- 변수에 데이터가 대입되는 변수의 자료형이 결정함
- 자바에서는 변수를 설정하면 변수가 가질 수 있는 데이터타입을 지정하는 한편 JS에서는 var i = 100과같이 변수를 선언할때 변수의 데이터타입이 지정되지 않고, 변수의값이 할당되는 시점에 할당되는 값에 따라 변수의 데이터타입이 지정됨.
4. 배열의 정의
- arr[값, 값]으로 추가하여 배열을 정의할 수 있다.
5. 배열의 특정값 찾아내기
- 맨 뒤의 값을 찾을 시에는 legnth -1을 실행하여 맨뒤의 값을 찾을 수 있다.
- 또는 배열에서 'arr1[0]' 고ㅓㅏ같이 0번째의 배열값에 갈 수 있게 할 수 있다.
console.log(arr[arr1.length -1]);
6. 오브젝트 타입
- 다양한 데이터타입을 순서에 상관없이 모아놓은 데이터 타입
- 객체는 key, value로 구성되어 있으며, key는 문자열, value는 데이터 삽입이 가능함
let obj1 = {a : "apple", b : "banna", c : "carrot" }
7. var
- let이라는 키워드를 사용시 호이스팅이 발생하지 않는다
- var 호이스팅 현상
- 변수선언이 호이스팅되고, undefined로 초기화 되는 현상
console.log(x1);
var x1 = 100;
>>
undefined
- x1이 초기화가 되지 않은 상태에서 불러왔기때문에(100이라는 값이 넣어지지 않았기때문에) undefined 반환
- 이를 위한 해결책으로는 let/const로 선언을 한다.
8. 호이스팅이란?
- 변수 선언과 함수 선언이 실제 코드 실행 전에 상단으로 끌어올려지는 현상
9. const : 상수 변수
- 한번 값을 지정하면 이후에는 값을 바꿀 수 없는 상수 를 의미하는 변수
10. let/const의 호이스팅 현상
1) let의 경우
- let에서 값을 선언하기 이전 호출을 진행하면 레퍼런스 에러가 발생한다.
console.log (x1);
let x1;
console.log (x1)
>>
ReferenceError: Cannot access 'x1' before initialization
undefined
- 변수선언이 호이스팅되고, 선언문에 도달하기 전까지 이루어지지 않음
- 초기화 전까지의 변수는 TDZ(Temporal Dead Zone)에 높이게 됨
let x1; //TDZ보관
console.log(x1);
x1=100; //TDZ해제 , 참조가 가능해짐
console.log(x1);
>>
undefined
100
11. 함수 호이스팅
- 함수선언은 전체 스코프에서 접근이 가능하도록 호이스팅 됨
정상적인 함수 호이스팅
function hello( ) {
console.log(`hello`);
}
hello ( );
>>
hello
비정상적인 함수 호이스팅
hello( ) ;
function hello( ) {
console.log(`hello`);
}
hello( );
>>
hello
hello
- 선언이 되기 이전에도 호출이 되는 모습
따라서 함수 표현식은 변수 호이스팅의 영향을 받는다.
12. var로 함수선언시
var hello
hello = function( ) {
console.log(`hello`);
};
hello ( );
>>
hello
- 만일 선언 이전에 호출을 할 시 타입에러가 뜰 수 있다.
13. 연산자(operator)
- 나누기, 나머지, 몫을 가져오는 연산자
console.log(`7/4 = ${7/4}`); //나누기
console.log(`7%5 = ${7%5}`); //나머지
console.log(`7//5 = ${Math.floor(7/5)}`); // 몫
// 파이썬과 같은경우 몫을 출력하는 연산자가 존재하나, JS의 경우에는 Math.floor를 사용하여야야한다.
>>
7/4 = 1.75
7%5 = 2
7 // 5 = 1
나머지 연산자 부호
console.log(`4 % 3 = ${4%3}`);
console.log(`4 % -3 = ${4%-3}`);
console.log(`-4 % 3 = ${-4%3}`);
console.log(`-4 % -3 = ${-4%-3}`);
>>
4 % 3 = 1
4 % -3 = 1
-4 % 3 = -1
-4 % -3 = -1
- 나머지 연산자의 부호는 왼쪽피연산자 의 부호를 따라간다.
+연산 부호
console.log(`hello` + `world` );
>>
helloworld
- 또한 +연산자는 문자열을 결합할때 사용된다.
14. const message를 통한 배열출력
const message = "Hello, 자바스크립트!";
console.log(message[0]);
console.log(message[7]);
console.log(message[99]);
>>
H
자
undefined
- 한글, 영문 모두 한 글자 [1] 로 취급하고 범위 밖의 값은 undefined를 반환한다.
15. 전행연산자, 후행연산자
let i = 100;
console.log("#1 : " +i);
if(i++ > 100) {
console.log("#2 : "+i); // 후행연산자는 나중에 적용이 되는 모습이다.
}
console.log("#3 : " +i);
i = 100;
console.log("#4 : "+i);
if(++i > 100) {
console.log(# 5 : " +i);
}
console.log("#6 : " +i);
>>
#1 : 100
#3: 101
#4 : 100
#5: 101
#6 : 101
16. 동등연산자, 일치연산자
동등연산자의 경우
let n = 100;
let s = "100";
console.log(typeof (n));
console.log(typeof (s));
if (n == s) {
console.log("일치");
} else
console.log("불일치");
>>
number
string
일치
일치연산자
let n = 100;
let s = "100";
console.log(typeof (n));
console.log(typeof (s));
if (n === s) {
console.log("일치");
} else
console.log("불일치");
>>
number
string
불일치
- == : 데이터타입 상관없이 값을 비교 (정수든 문자열이든 100이니깐 맞는거다) : 동등연산자
- === : 데이터타입까지 같아야한다 (정수 100하고 "100"하고는 전혀 다르다) : 일치연산자
17. 강제자료형 변환
const n = 52;
console.log(n, typeof n);
console.log(String(n), typeof String(n));
console.log(n+10);
console.log(String(n)+10);
const b = true;
console.log(b, typeof b);
console.log(String(b), typeof String(b));
>>
52 number
52 string
62
5210
true boolean
true string
30. Number( ) 함수를 통해 숫자로 형변환시키기
숫자정수를 숫자로
const s = 123;
console.log(s, typeof s);
console.log(Number(s), typeof Number(s));
console.log(s + 456);
console.log(Number(s) + 456);
>>
123 string
123 number
123456 //"123" +456 을 통해서 123456이 반환
579
- 문자열숫자로 나오지만 number를 통해 강제로 number 123으로 만들었다
- 아래의 경우 123+456=579인 값이 반환이 된것이다.
문자를 숫자로
const x = "숫자";
console.log(x, typeof x);
console.log(Number(x), typeof Number x)
>>
숫자 string
NaN number
- "숫자" 라는 문자열에서 정수 숫자가 발견되지 않기때문에 NaN number가 뜬다.
boolean 값을 숫자로
const t = true;
console.log(t, typeof t);
console.log(Number(t), typeof Number(t));
>>
true boolean
1 number
- True의 경우 1을 반환하기 때문에 숫자 1로 형변환이 완료가 된다.
31. 함수 선언문
function add(x,y) {
//함수이름, 옆에 괄호내부는 매개변수, 인자값이라고 부름
return x+y; //함수본문
}
- function으로 정의 하되 반드시 함수이름이 있어야한다.
32. 함수표현식
- 변수는 값을 주고 받을 수 있음
let a = 100;
let b = a;
console.log(a); //100
console.log(b); //100
>>
100
100
- 함수표현식을 사용하면 함수를 변수와 같이 사용할 수 있음
33. 익명함수와 기명함수
let add = fucntion(x, y) {return x+y}
함수변수 익명함수 표현식
let sum add;
add(10, 20);
add(10, 20);
let add = function plus(x, y) {return x+y};
기명함수 표현식 : 함수 외부에서는 함수 이름을 사용할 수 없으나, 내부에서는 자기 자신을 호출할때 사용할때 사용할 수 있음
34. 콜백함수
- 개발자가 코드를 이용해 명시적으로 호출하는 함수가 아닌
- 개발자는 단지 함수를 등록하기만 하고
- 어떤 이벤트가 발생하거나 특정 시점에 도달했을때 시스템에서 호출하는 함수
예) 이벤트 핸들러 : 특정 이벤트가 발생하였을때 실행할 함수
<input type = "button" onClick="function( ) {...}" />
35. 즉시 실행함수 = 자기 호출함수
- 함수정의와 동시에 바로 실행하는 함수
- IIFE(Imediately Invoked Function Expression)
- 함수표현식을 소괄호로 둘러싼 후 바로 호출(실행) 할 수 있도록 소괄호 쌍을 추가한다.
function add(x,y) {
console.log(x+y);
}
add (10, 20);
>>
function (x, y) {
console.log(x+y);
}
(10, 20)
36. 화살표 함수
- 함수표현식에서 function 키워드를 빼고 함수 파라미터와 함수 본문 사이에 화살표(=>) 를 넣는다.
- 만약 매개변수가 한 개일 경우 {중괄호}를 뺄 수 있다.
37. JS의 배열
- 배열길이는 length 속성으로 알 수 있음
- 배열 삽입을 할때 빈값에 삽입할경우 undefined으로 정의된 vlaue가 사이에 끼워지게 된다.
38. 배열의 탐색
console.log(values [0]);
console.log(values [1]);
...
- value를 찾아가면서 탐색하는 방법
for (let i = 0; i < values.length; i++) {
console.log(values [i]);
}
- for문을 이용한 배열을 탐색
for (let index in values) {
console.log(index, values[index]);
}
- let index 함수 사용으로 배열탐색
이번 챕터 문제정리
### 초급 문제
#### O/X 문제
1. JavaScript에서는 세미콜론 없이 코드를 작성할 수 있다.
2. var 키워드는 ES6 이후에도 가장 널리 사용되는 변수 선언 방법이다.
3. const로 선언된 변수는 값이 변경될 수 없다.
4. 배열의 길이를 구하려면 length 속성을 사용한다.
5. NaN은 'Not a Number'를 의미하며, typeof로 검사하면 'number'를 반환한다.
#### 객관식 문제
6. 다음 중 동등 연산자는 무엇인가요?
1. \==
2. \===
3. \=
4. !=
7. JavaScript에서 데이터를 변환할 때 사용하는 함수는?
1. parseInt
2. parseFloat
3. Number
4. 위의 모든 것
8. 함수 선언문을 정의하는 키워드는?
1. def
2. function
3. func
4. declare
9. 다음 코드의 출력은?
```javascript
let x = 10;
console.log(x++);
```
1. 10
2. 11
3. undefined
4. 에러
10. 다음 코드에서 출력 결과가 다른 것은?
javascript
console.log("5" + 5);
console.log(5 + "5");
console.log(5 - "5");
1. "55"
2. "55"
3. 0
4. 에러
### 중급 문제
#### O/X 문제
11. let과 const로 선언된 변수는 TDZ(Temporal Dead Zone)에 영향을 받는다.
12. 화살표 함수는 this 값을 바인딩하지 않는다.
13. for...of 반복문은 배열과 함께 사용할 수 있지만, 객체와는 사용할 수 없다.
14. JavaScript의 모든 객체는 프로토타입을 가진다.
15. JSON.stringify는 객체를 JSON 형식의 문자열로 변환한다.
#### 객관식 문제
16. 다음 코드의 출력 결과는?
```javascript
const obj = { a: 1, b: 2 };
console.log(Object.keys(obj));
```
1. [1, 2]
2. ['a', 'b']
3. { a: 1, b: 2 }
4. undefined
17. 다음 중 배열 메서드가 아닌 것은?
1. map
2. reduce
3. filter
4. assign
18. 다음 코드의 실행 결과는?
```javascript
function test(a, b = 10) {
return a + b;
}
console.log(test(5));
```
1. 15
2. 5
3. NaN
4. undefined
19. 다음 중 JavaScript의 비동기 처리 방식이 아닌 것은?
1. 콜백
2. 프로미스
3. async/await
4. try/catch
20. 다음 코드의 출력 결과는?
```javascript
console.log(typeof null);
```
1. null
2. undefined
3. object
4. string
### 고급 문제
#### O/X 문제
21. 프로미스의 상태는 pending, fulfilled, rejected로 나뉜다.
22. 클래스의 상속은 prototype을 기반으로 이루어진다.
23. 스프레드 연산자는 객체 병합에 사용할 수 있다.
24. try/catch 블록은 동기적 코드에서만 예외 처리가 가능하다.
25. setTimeout 함수는 이벤트 루프의 콜백 큐에 추가된다.
#### 객관식 문제
26. 다음 중 이터러블(iterable) 객체가 아닌 것은?
1. Array
2. String
3. Map
4. Number
27. 다음 코드의 출력 결과는?
```javascript
console.log("hello".charAt(0));
```
1. "h"
2. "e"
3. "o"
4. undefined
28. 다음 코드의 실행 결과는?
```javascript
const arr = [1, 2, 3];
arr[10] = 99;
console.log(arr.length);
```
1. 3
2. 10
3. 11
4. 99
29. 다음 코드의 실행 결과는?
```javascript
const promise = new Promise((resolve, reject) => {
resolve('Success');
});
promise.then(data => console.log(data));
```
1. Success
2. Error
3. undefined
4. rejected
30. 다음 코드의 실행 결과는?
```javascript
const set = new Set([1, 2, 3, 3]);
console.log(set.size);
```
1. 2
2. 3
3. 4
4. undefined
'SeSac 생성형 AI를 활용한 클라우드&보안전문' 카테고리의 다른 글
파이썬 정리 (0) | 2024.12.13 |
---|---|
리액트 2 (0) | 2024.12.12 |
리액트 간단정리 (1) | 2024.12.11 |
클라우드 컴퓨팅 3 (0) | 2024.12.11 |
클라우드 컴퓨팅 2 (0) | 2024.12.11 |