프로그래밍📚

타입스크립트란? 타입스크립트는 자바스크립트의 단점을 보완하고자 나온 언어로 자바스크립트 기반보다 타입을 지정함으로 인해 버그를 줄일 수 있고 유지보수가 쉽습니다. 타입스크립트를 배우기 전에 알아두면 좋은 지식은 총 세 가지가 있습니다. 첫 번째로 데이터 타입에 대해서 알고 있어야 합니다. 두 번째로는 변수나 동적메모리의 동작원리에 대해서 알아두면 좋고 마지막으로 객체 지향 철학에 대해 알고 계시면 많은 도움을 받을 수 있습니다. 타입스크립트 환경과 자바스크립트 환경을 비교해 보면 타입스크립트 환경의 경우 자바스크립트가 동작하지만 자바스크립트 환경의 경우 타입스크립트가 동작하지 않습니다. 데이터 타입을 명시하면 어떻게 좋을까요? 테이터 타입을 명시하지 않는 자바스크립트는 변숫값을 정확하게 알 수 없어서 매..
함수 함수를 사용하는 이유 함수는 긴 코드를 분리하여 처리하기 위한 목적으로 가독성을 향상시킬 수 있고, 유지 보수나 확장에 용이합니다. 때문에 함수는 코드에서 없어서는 안되는 존재가 됐는데요, 요즘 클래스형 코드에서 함수형 코드로 많이 바뀐 이유도 그 이유입니다. 대부분의 프로그래밍 언어들은 함수의 집합체라고도 할 수 있는데요. 함수는 서로 연동되기도 유기적으로 동작하기도 합니다. 함수의 종류 함수는 크게 표준함수와 사용자 정의함수로 나뉩니다. 표준 함수는 언어에서 기본적으로 제공되는 함수를 말하는데요. 우리가 사용하는 console.log, printf와 같은 것을 말합니다. 표준함수는 사용하다보면 기능적으로 한계가 존재하는데요 이때 사용자 정의 함수를 사용하기도 합니다. 사용자 정의함수는 표준함수처..
연산자 연산자란 정적인 데이터들을 유기적으로 행동하여 새로운 가치를 창출해 내는 것을 말하며 우리가 많이 아는 산술연산자도 여기에 포함이 되며 산술연산자뿐만 아니라 대입연산자, 부호연산자, 증감연산자, 관계연산자, 논리연산자, 비트연산자 등이 존재합니다. 산술연산자 사칙연산을 말하며 일상에서 가장 많이 사용되는 연산자입니다. 종류 의미 예시 + 부호의 왼쪽과 오른쪽의 값을 더한다 1 + 2 = 3 - 부호의 왼쪽 값에서 오른쪽 값을 뺀다. 5 - 2 = 3 * 부호의 왼쪽 값에서 오른쪽 값을 곱한다. 2 * 3 = 6 / 부호의 왼쪽 값을 오른쪽 값으로 나눈다. 6 / 2 = 3 % 부호의 왼쪽 값에서 오른쪽 값으로 나눈 값의 나머지를 반환한다. 3 % 2 = 1 대입연산자 대입 연산자는 오른쪽에 부호의..
변수 변수란 변경이 가능한 수를 말하며 변수에는 어떠한 값(문자열, 숫자, 객체, 배열 등등)이 들어갈지 알 수 없습니다. 그렇다면 왜 변수를 사용하는 것일까요? 변수는 메모리에 저장된 데이터들 중에 메모리 위치 즉, 주소값을 기억하는게 아니라 변수라는 이름으로 기억을 하는것입니다. 예시 ) 너 어제 서울특별시 OO구 OO로 XXX동 XXX호 갔어? -> 너 어제 홍길동네 갔어? 주소값 : 서울특별시 OO구 OO로 XXX동 XXX호 변수 : 홍길동네 상수 상수는 변수와 다르게 값을 변경할 수 없는데요. 때문에 상수는 변하지 않는 수라고 합니다. 상수는 꼭 선언과 동시에 초기 값을 설정을 해줘야 합니다. var a; // 가능 let b; // 가능 const c; // 불가능 > const c = 10 ..
strict mode라 불리는 엄격 모드는 기존 자바스크립트 언어의 일부 기능을 제한하고 엄격하게 문법 검사를 하기 때문에 기존에는 넘어갔던 에러들을 확인할 수 있습니다. strict 모드 설정 strict 모드 설정은 스크립트와 함수에서 선언을 할 수 있습니다. 1) 스크립트에서 선언 "use strict"; // code ... 2) 함수에서 선언 function foo () { "use strict"; // code ... } strict 모드 특징 대상 제한 사항 변수 선언되지 않은 변수나 객체를 사용할 수 없음. eval() 함수 내에서 선언된 변수는 외부에서 사용할 수 없음. 프로퍼티 읽기 전용 프로퍼티에는 대입할 수 없음. 한 프로퍼티를 여러 번 정의할 수 없음. 함수 함수를 구문이나 블록 ..
이전에 작성한 예외처리 글을 생각해 봅시다. 왜 예외처리를 하는 건가요? 바로 에러를 잡기 위해서입니다. 자바스크립트는 싱글스레드여서 에러가 발생하게 되면 서버가 죽는 경우를 많이 겪으실 텐데요. 그래서 우리가 마주할 다양한 에러 객체들과 어떤 방식으로 처리할 수 있는지 알아보도록 하겠습니다. new Error() 우리가 코드를 짜다보면 가장 많이 만나는 SyntaxError, TypeError, ReferenceError 이 삼대장 기억하시나요? 에러는 기본적으로 javascript에서 코드를 읽고 동작을 하게 됐을 때 문제가 생기면 내장 에러 객체를 이용하여 에러를 우리에게 보여주게 됩니다. 하지만 에러는 우리가 직접적으로 만들 수도 있는데요. 바로 에러 객체를 통해서 만들 수 있습니다. 에러객체는 ..
비동기가 발생하는 다양한 경우가 존재하지만 백엔드에서 가장 많이 접하는 비동기는 바로 query를 사용할 때입니다. 비동기로 처리를 하면 처리 속도가 빨라지니까 무조건 사용하는 게 좋을까요? 비동기처리를 한다고 해서 무조건 다 좋은 것만은 아닙니다. 왜냐하면 비동기 처리 시에도 문제점이 존재하기 때문이죠. 그렇다면 어떤 문제가 발생을 할까요? let data; setTimeout(()=>{ data = 10 },1000) let value = data * 10 console.log(value) 비동기 동작을 위해서 setTimeout을 이용하여 data값을 입력받고 그 값으로 value 값을 구하는 코드를 작성을 해보았습니다. 이때 우리가 예상하는 value 값은 얼마인가요? 100이라고 생각할 수 있는..
비동기가 발생하는 다양한 경우가 존재하지만 백엔드에서 가장 많이 접하는 비동기는 바로 query를 사용할 때입니다. 비동기로 처리를 하면 처리 속도가 빨라지니까 무조건 사용하는 게 좋을까요? 비동기처리를 한다고 해서 무조건 다 좋은 것만은 아닙니다. 왜냐하면 비동기 처리 시에도 문제점이 존재하기 때문이죠. 그렇다면 어떤 문제가 발생을 할까요? let data; setTimeout(()=>{ data = 10 },1000) let value = data * 10 console.log(value) 비동기 동작을 위해서 setTimeout을 이용하여 data값을 입력받고 그 값으로 value 값을 구하는 코드를 작성을 해보았습니다. 이때 우리가 예상하는 value 값은 얼마인가요? 100이라고 생각할 수 있는..
회원가입을 할 때 우리가 비밀번호를 그대로 database에 저장을 하게 되면 어떻게 될까요? database가 털리면 회원가입한 유저들의 정보들이 그대로 노출이 되는 불상하가 일어나는데요. 이 같은 일이 발생하지 않게 하는 게 바로 암호화입니다. 암호화는 node에서 제공하는 crypto라는 모듈, npm에서 설치해서 사용할수 있는 bcrypt라는 모듈이 존재합니다. 그렇다면 모듈을 이용하여 어떻게 비밀번호를 암호화 하는지 알아봅시다. crypto const salt = crypto.randomBytes(64).toString("base64"); const hashPassword = crypto .pbkdf2Sync(password, salt, 10000, 64, "sha512") .toString("..
코드둥
'프로그래밍📚' 카테고리의 글 목록 (3 Page)