Backend (126) 썸네일형 리스트형 [Javascript] - String String (문자열) - 문자열은 0 에서 65535 사이의 크기를 가지는 부호가 없는 16비트 정수로 이루어진 불변 배열입니다. const test_array = [99, 111, 114, 110]; const test_string = String.fromCharCode(...test_array); test_string.charCodeAt(0) === 99 // true test_string.length // 4 typeof test_string // "string" 문자열을 String.fromCharCode 함수로 만들 수도 있는데, 이 함수는 임의 개수의 숫자들을 인자로 받습니다. 문자열 요소는 charCodeAt 함수로 접근할 수 있습니다. 문자열은 항상 동결된 상태이며, 배열과 마찬가지로 l.. [Javascript] - Object Object (객체) - 자바스크립트는 null 과 undefined 를 제와한 모든 것을 객체로 취급합니다. - 객체는 자바스크립트의 기본 데이터 구조입니다. 객체는 속성을 갖고 있으며, 각 속성에는 이름과 값이 있습니다. 이름은 문자열이고 값은 어떤 자료형이든 될 수 있습니다. - 객체 리터럴을 사용해 새로운 객체를 만들 수 있습니다. - 객체 리터럴의 범위는 중괄호 ({}) 로 결정됩니다. 괄호 안쪽에 0개 이상의 속성을 콤마로 구분하여 나열 가능합니다. let bar = 'abcd'; let test_object = { "0/0": 0, foo: bar, bar, test_method() { return 'test'; } }; console.info(test_object.foo === test_o.. [Javascript] - Array Array (배열) - 배열은 연속적인 메모리로 구성되고, 같은 크기의 배열 요소로 나눠지며, 각 요소는 정수 색인과 연결되어 빠른 접근이 가능합니다. - 자바스크립트는 처음 배포 당시 배열을 포함시키지 못했습니다. 자바스크립트의 객체가 워낙 강력해서 배열이 빠졌다는 사실을 늦게 깨달았으며, 성능 문제만 무시한다면 객체는 배열이 할 수 있는 모든 것을 할 수 있습니다. - 자바스크립트의 배열은 진짜 객체이나 다음의 측면에서 객체와 살짝 다릅니다. 배열은 length 속성을 갖고 있습니다. 배열의 length 는 배열이 담고 있는 요소의 개수가 아닌, 가장 큰 색인보다 1 큰 값을 나타냅니다. 예를 들어 배열에 요소가 네 개 있고 마지막 요소의 색인이 10 이라면 length 는 11 입니다. 배열은 Ob.. [Javascript] - Boolean Boolean Type (불 타입) - 불 타입은 true, false 만 가질 수 있다. - true, false 에 대해 typeof 연산자는 "boolean" 을 반환합니다. 관계 연산자 === 같음 !== 같지 않음 = 보다 크거나 같음 - 관계 연산자에서 몇가지 특이 케이스 undefined null // false undefined === null // false NaN === NaN // false NaN !== NaN // true "11" < "2" // true "2" < 5 // true 5 < "11" // true - 값이 NaN 인지를 확인하려면 반드시 Number.isNaN(x) 을 사용해야 한다. - 반복문의 종료 조건으로 =.. [Javascript] - Big Integer Big Integer (큰 정수) - 자바스크립트에는 64비트 정수가 없다 int64 형은 최대 9223372036854775807 까지의 정수를 담을 수 있는데, 자바스크립트의 Number.MAX_SAFE_INTEGER 범위보다 세자리나 큼 자바스크립트의 숫자형은 한개라 새로운 숫자형을 추가하는데에도 문제가 있음 -> 단순성을 잃게되고, 잠재적으로 다른 버그를 초래할 가능성이 커짐 만약 64비트 정수형을 추가하더라도 이후 72비트, 96비트, 128비트 등등을 대응할 필요는 없을까? 라는 논쟁이 이어질 수 있습니다. - 큰 정수를 언어에 추가하는 대신 라이브러리화 하는 것이 적절해 보이며 해당 부분을 이번 내용에서 보도록 하겠습니다. 큰 정수는 배열 형태로 저장할 것입니다. (크기가 자유롭기에) 배열의.. [Javascript] - Number Number (숫자) - 자바스크립트의 수는 실수(real-number) 에서 영감을 받았지만 진짜 실수(real-number) 는 아닙니다. - 자바스크립트는 number 라고 하는 하나의 숫자형을 갖고 있습니다. 따라서 오는 이점은 숫자 타입간의 고민을 하지 않아도 되서 개발자의 생산성 증가 타입 변환으로 인한 오류 없음 int 형을 사용해서 발생하는 오버플로 문제도 일어나지 않음 (아래 자바와 비교) Javascript : 2147483647 + 1 // 2147483648 정확하게 맞음 Java : 2147483647 + 1 // -2147483648 완전히 잘못됨 - 인텔의 iAPX-432 프로세서를 위해 처음 개발된 IEEE 부동소수점 연산 표준(IEEE 754) 을 차용했습니다. 부동소수점 .. [Javascript] - Name Name (이름) - 변수나 속성, 함수에 부여하는 것 - 자바스크립트는 변수 이름의 길이에 제한을 두지 않음 const fruit = 'apple'; // fruit 라는 이름의 변수를 선언 const newyork_queens_hillcrest_right_bottom_side_university_name = 'St Johns'; // 억지로 만들었지만 이것보다 긴 이름도 상관없음 - 이름만 보고 무엇을 하는 것인지 짐작이 가능해야함 (코드를 읽기만 해도 프로그램을 설명할 수 있어야 합니다.) // bad const f = ['apple', 'banana', 'peach']; // good const fruits = ['apple', 'banana', 'peach']; // 변수명만으로 어떤 값을 가지.. Go 언어 - [8장] (실무 패턴) ※ 디스커버리 Go 언어 라는 책 내용을 전반적으로 다루지만 책 리뷰보다는 좀 더 간단하게 정리해보겠습니다. 8. 실무 패턴 이번 장에서는 실무에서 맞닥뜨리는 설계 문제들을 어떻게 풀 수 있는지 보도록 하겠습니다. 예를 들면, Go 언어에서는 제네릭 프로그래밍을 지원하지 않는데, 이를 어떻게 흉내낼 수 있는지 아는 것보다 제네릭으로 어떤 문제를 풀고 싶은지가 더 중요합니다. 이렇게 생각하면 굳이 제네릭을 이용하지 않아도 되는 경우가 많습니다. 8.1 오버로딩 오버로딩은 같은 이름의 함수 및 메서드를 여러 개 둘 수 있는 기능인데, Go 언어에서는 지원되지 않습니다. 어떤 경우에 오버로딩이 필요한지 생각해보겠습니다. - 자료형에 따라 다른 이름 붙이기 : 오버로딩을 반드시 하지 않아도 되는 경우가 많으며,.. 이전 1 ··· 11 12 13 14 15 16 다음