[JS-DSAA] 04 자바스크립트 문자열

백은진·2021년 5월 16일
1

책과 함께하는 공부

목록 보기
12/22

자바스크립트 문자열 기본

자바스크립트의 기본 자료형인 String에는 다양한 문자열 메서드가 존재한다.

문자열 접근

String.prototype.charAt()

The String object's charAt() method returns a new string consisting of the single UTF-16 code unit located at the specified offset into the string.

String.prototype.substring()

The substring() method returns the part of the string between the start and end indexes, or to the end of the string.

문자열 비교

자바스크립트에서는 미만 연산자 < 와 초과 연산자 > 를 이용해 문자열을 쉽게 비교할 수 있다. (문자의 순서를 비교하는 것이다.)

서로 다른 길이의 두 문자열을 비교한다면, 문자열의 시작부터 비교하기 시작하여 더 짧게 길이의 문자열 길이만큼 비교한다.

문자열 검색

String.prototype.indexOf()

The indexOf() method returns the index within the calling String object of the first occurrence of the specified value, starting the search at fromIndex. Returns -1 if the value is not found.

문자열 분해

String.prototype.split()

The split() method divides a String into an ordered list of substrings, puts these substrings into an array, and returns the array. The division is done by searching for a pattern; where the pattern is provided as the first parameter in the method's call.

문자열 바꾸기

String.prototype.replace()

The replace() method returns a new string with some or all matches of a pattern replaced by a replacement. The pattern can be a string or a RegExp, and the replacement can be a string or a function to be called for each match. If pattern is a string, only the first occurrence will be replaced.

정규 표현식

자바스크립트에는 정규 표현식에 사용할 수 있는 기본 객체 RegExp가 존재한다.

RegExp.prototype[@@search]()

The [@@search]() method executes a search for a match between a this regular expression and a string.

RegExp.prototype[@@match]()

The [@@match]() method retrieves the matches when matching a string against a regular expression.

String 객체의 정규 표현식과 관련된 두 함수 (RegExp 객체를 인자로 받음)

RegExp.prototype.exec()

The exec() method executes a search for a match in a specified string. Returns a result array, or null.

RegExp.prototype.test()

The test() method executes a search for a match between a regular expression and a specified string. Returns true or false.

인코딩

인코딩은 컴퓨터 과학 분야에서 효율적인 전송이나 저장을 위해 문자들을 특수 포맷으로 표현하는 포괄적인 개념이다.

모든 컴퓨터 파일 유형은 특정 구조로 인코딩된다.

Base64 인코딩

Base64 is a group of similar binary-to-text encoding schemes that represent binary data in an ASCII string format by translating it into a radix-64 representation. The term Base64 originates from a specific MIME content transfer encoding.

  • btoa(): creates a base-64 encoded ASCII string from a "string" of binary data ("btoa" should be read as "binary to ASCII").

  • atob(): decodes a base64 encoded string("atob" should be read as "ASCII to binary").

문자열 단축

Bit.ly 같은 단축 URL을 지닌 사이트는 다음과 같은 방식으로 동작한다.

  1. DB가 URL에 대해 정수 기반 고유 ID를 생성한다.
  2. 정수 ID는 문자열로 단축된다. Base64 인코딩을 사용해 문자열을 단축하는 경우 11231230은 VhU2가 된다.

암호화

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

방식은 다음과 같다.

  1. 서버는 브라우저에게 자신의 비대칭 공개 키를 전송한다.
  2. 브라우저는 현재 세션을 위한 대칭 키를 생성한다. 해당 대칭 키는 서버의 비대칭 공개 키로 암호화된다.
  3. 서버는 자신의 비밀 키로 브라우저의 세션을 복호화해 세션 키를 추출한다.
  4. 이제 두 시스템 모두 세션 키를 가지고 있고 세션 키를 사용해 자료를 안전하게 전송한다.

위의 방식은 안전하게 이루어진다. 브라우저와 서버만이 세션 키를 알기 때문이다.

RSA 암호화

RSA 알고리즘은 가장 널리 사용되는 공개 키 암호화 알고리즘이다.

RSA는 큰 정수의 인수분해 난이도에 기반한 암호화 알고리즘이다. RSA에서는 두 개의 큰 소수와 보조 값이 공개 키로 생성된다. 누구나 메세지를 암호화하기 위해 공개 키를 사용할 수 있지만 소인수를 지닌 사람만이 메세지를 해독할 수 있다.

방식은 다음과 같다.

  1. 키 생성: 공유되는 공개 키와 비밀로 유지되는 비밀 키가 생성된다. 생성된 키 생성 방법은 비밀이어야 한다.
  2. 암호화: 공개 키를 통해 비밀 메세지를 암호화할 수 있다.
  3. 복호화: 비밀 키로만 아호화된 메세지를 복호화할 수 있다.
profile
💡 Software Engineer - F.E

1개의 댓글

comment-user-thumbnail
2021년 5월 23일

안녕하세요. 혹시 전이법칙에 대한 설명 부탁드려도 될까요? 제가 이해하기로는 o(o(h(n)))이 되어야할 것 같은데 본문에 나온 내용으로는 어떤 규칙이 있는건지 모르겠습니다. (저도 같은 교재로 공부하고 있습니다.)

답글 달기