본문 바로가기
패스트캠퍼스/자습

자바스크립트로 하는 자료구조와 알고리즘(4장) - 문자열

by sunnykim91 2019. 10. 16.

문자열 접근

charAt() 메소드

ex) 'dog'.charAt(1);  // 'o'

 

substring() 메소드, 두번째 인자가 없으면 끝까지 반환함.

ex) 'YouTube'.substring(1,2)  // 'o'

 

 

문자열 비교

a와b를 비교하면 b가 더 크다. 

abc와 b를 비교해도 b가 더 크다.

ab ad를 비교하면 ad가 더 크다.

 

문자열 검색

 

indexOf 일치하는 문자열의 위치를 반환 

ex)

'Red Dragon'.indexOf('Red'); // 0을 반환한다.

'Red Dragon'.indexOf('RedScale'); // -1을 반환한다.

'Red Dragon'.indexOf('Dragon', 0); // 4를 반환한다.

 

**어떤 문자열 내에 특정 문자열이 존재하는지 확인하기 위해서는 -1을 반환하는지 확인해보면 알 수 있다.

 

startWith 특정 문자열로 시작하냐

endWith 특정 문자열로 끝나냐

 

문자열 분해

.split() 매개변수를 입력받아 부분 문자열을 만들 수 있음.

ex)

var test = 'chick'

teest.split("")  // ['c','h','i','c','k']

 

문자열 바꾸기

 

replace(string, replactString)  문자열을 다른 문자열로 대체

 

 

정규 표현식

 

자바스크립트에는 RegExp라는 기본 객체가 포함되어있음.(정규표현식)

RegExp 메소드 :

 search() - 문자열 내에 일치하는 문자열을 찾는다. 일치하는 문자열의 인덱스를 반환

 match() - 일치하는 문자열을 찾는다. 모든 일치하는 문자열을 반환한다.

 

String 메소드 :

 exec : 문자열 내에 일치하는 문자열을 찾는다. 일치하는 첫 번째 문자열을 반환

 test : 문자열 내에 일치하는 문자열을 찾는다. true/false 반환

 

자주 쓰는 정규표현식

 

1) 숫자를 포함하는 문자  /\d+/

2) 숫자만 포함하는 문자 /^\d+$/

3) 부동소수점 문자  /^[0-9]*.[0-9]*[1-9]+$/;

4) 숫자와 알파벳만을 포함하는 문자   /[a-zA-Z0-9]/

5) 질의 문자열  /([^?=&]+)(=([^&]*))/    

    : 웹 애플리케이션에서 웹 URL은 대개 경로 찾기나 데이터베이스 질의 목적의 매개변수를 포함함

   이러한 매개변수를 파싱하기 뒤해 정규표현식은 유용하다.

 

 

암호화

TLS는 서버와 클라이언트 간에 암호화된 연결을 수립하기 위한 표준 보안 기술이다.

 

1. 서버는 브라우저에게 자신의 비대칭 공개 키를 전송

2. 브라우저는 현재 세션을 위한 대칭 키를 생성. 해당 대칭키는 서버의 비대칭 공개 키로 암호화된다.

3. 서버는 자신의 비밀 키로 브라우저의 세션을 복호화해 세션 키를 추출한다.

4. 이제 두 시스템 모두 세션 키를 가지고 있고 세션 키를 사용해 자료를 안전하게 전송

 

RSA암호화  (가장 널리 사용됨)

RSA는 큰 정수의 인수분해 난이도에 기반한 암호화 알고리즘이다. 

RSA에서는 두 개의 큰 소수와 보조 값이 공개 키로 생성된다. 

누구나 메시지를 암호화하기 위해 공개 키를 사용할 수 있지만 소인수를 지닌 사람만이 메시지를 해독할 수 있음.

키 생성과 암호화 복호화 3단계로 존재

 

키생성은 공개 키와 비밀키가 생성

암호화는 공개 키를 통해서 비밀 메시지를 암호화

복호화는 비밀키로만 암호화된 메시지를 확인할 수 있음.

반응형