전체 글
-
Node.js 로그인 화면 만들기 2 (package.json)카테고리 없음 2022. 6. 15. 17:11
app.listen() 모듈화 서버를 띄어 주는 코드를 작성할 파일을 bin하위의 www.js로 생성한다. www.js에서 app.listen을 이용해서 서버를 실행하는 명령어 바꾸기 package.json이라는 file을 이용을 할 것이고, 이것을 이용하면서 해당 file이 어떤 기능을 하는 file인지 알아본다. 또한 node_modules 폴더는 어떤 폴더인지 package-lock.json은 어떤 기능을 하는 file인지도 알아 본다. npm init # yes을 축약 옵션으로 모든 것이 기본 setting 값으로 들어간다. npm init -y 내가 만든 package 소프트웨어의 설정들을 초기화 해주는 명령 npm init 명령을 입력한 후 enter를 치면 위와 같은 문구가 쭉 뜨고, 마지막..
-
espress의 server 프레임워크 사용하지 않고 개발개발언어/Node.js 2022. 6. 13. 16:08
http는 내장 모듈이기 때문에 npm으로 따로 다운받을 필요는 없다. 서버를 restart한 뒤에 브라우저를 통해 해당 port에 접속을 해보면, server를 열기위한 로딩이 끝임없이 돌아간다. server가 열려있긴 하지만 따로 root 페이지에 대한 설정을 해주지 않았기 때문에 root 경로를 찾지 못하고 끊임 로딩이 되는 것이다. createServer의 인자로 callback함수를 작성한 뒤 , 서버를 restart한다. 그리고 브라우저 url에 해당 localhost port로 request된 url이 터미널에 출력되는 것을 확인 할 수 있다. 즉, req.url로 들어오면 root 경로 이후에 있는 url을 파싱 해올 수 있다는 의미이다. req.url로 라우팅 하기 이 파싱한 값을 이용해..
-
espress로 서버 띄우기개발언어/Node.js 2022. 6. 13. 15:25
파일 : app.js const express = require("express"); const app = express(); app.listen(3000,()=> { console.log("서버 가동"); }); app.js 파일에 위와 같이 코드를 작성하고 비주얼스튜디오 에디터를 이용해 터미널을 열어 node 명령어를 실행시키면, app.js 파일을 javascript로 읽어준다. 다시말해 node 명령어는 V8엔진을 이용해서, 작성한 코드를 해석해달라는 명령어이다. *V8엔진 : 크롬 브라우저에서도 사용되는 자바스크립트 컴파일러이다. 1. npm을 이용해서 modle설치 -s 는 --save 명령어와 동일하다. npm install을 할 땐 일단은 --save라는 명령어를 넣어야 한다. 그래야 추후..
-
TypeScript의 함수 4 (Conclusions)개발언어/TypeScript 2022. 6. 13. 12:29
Conclusions 제네릭을 사용해서 직접 사용해서 직접 call signature을 만드는 일은 거의 없다. 왜냐하면 실제 개발에서는 주로 다른 패키지를 사용하거나 혹은 라이브러리를 사용하고, 그리고 그 라이브러리들이 제네릭을 통해서 생성이 된다. 다시 말하면 라이브러리를 만들거나. 다른 개발자가 사용할 기능을 개발하는 경우엔 제네릭이 유용할 것이다. 하지만 그외 대부분의 경우에는 제네릭을 직접 작성할 일은 없을 것이다. 대부분 제네릭을 사용만 하게 될 것 이다. nest.js next.js react.js 를 사용하게 된다면 제네릭을 사용하게 될 것이고, 타입스크립트에게 제네릭을 보내게 될 것이다. 즉 제네익을 사용하는 call signature를 작성하게 될 것이다. call signature 외..
-
TypeScript 함수 4 (Generic Recap)카테고리 없음 2022. 6. 12. 19:00
ts는 코드를 보고 type을 유추해내고, placeholder를 작성한 코드에서 발견하는 타입으로 대체한다. 1. T라는 제네릭을 사용할 것 이라고 ts에게 알려준다. 2. T는 배열에서 오고, 함수의 첫번째 파라미터에서 올 것이라고 ts에 알려준다. 3. ts는 이것을 기반으로 함수 실행시 실제 대입된 배열을 살펴보고 type이 number라는 것을 알게된다. 4. ts는 T를 number 타입으로 대체한다. 5. T는 call signature를 요구하는 대로 생성한다. 제네릭이 any와 다른 이유 배열의 type과 함수의 반환 type을 any로 설정하면 superPrint로 구체화되어 정의된 함수의 return 값도 any가 되므로 더 이상 type의 보호를 받을 수 없다 제네릭 T를 사용하면 ..
-
TypeScript의 함수 3 (Polymorphism)개발언어/TypeScript 2022. 6. 12. 18:23
Polymorphism 다형성(polymorphise)이란 무엇일까? poly는 그리스어로 many,several,much,multi 라는 의미이다. polygon(다각형)같은 단어를 생각하면 된다. 더불어 morphos혹은 morphic은 form(형태), structure(구조)란 뜻을 가지고 있다. 즉 polymorphous란 여러가지 다른 구조들이라는 의미이다. 기본적으로 함수는 여러가지 다른 모양을 가지고 있다. 앞서 말한 함수의 다형성에서 함수는 서로다른 2-3개의 인자를 가질 수 있다는 사실을 살펴보았다. 그리고 타입스크립트에서 함수는 string이나 object를 첫번째 인자로 가질 수 있다. 그러니까 우리는 이미 약간의 여럭가지 모양의 다형성을 경험해 본 것이다. 제네릭이 다형성에 어떻게..
-
TypeScript의 함수 2 (Overloading)개발언어/TypeScript 2022. 6. 12. 16:21
Overloading function overloading / method overloading 실제로 오버로딩된 함수를 직접 작성하지는 않을것이다. 그 대신 대부분 다른 사람이 만든 외부 라이브러리를 사용할 텐데, 이런 패키지나 라이브러리 들은 오버로딩을 엄청 많이 사용한다. 그래서 오버로딩에대해 제대로 알아 두는 것은 중요하다. 좀 더 긴 방식의 call signature 작성 방법 위 와 같은 방법이 존재하는 이유은 오버로딩 때문이다. Overoloading은 무엇일까? => 오버로딩은 함수가 여러개의 call signatures를 가지고 있을 때 발생한다. 그냥 여러 개 가 아니라 서로 다른 여러개의 call signature을 가졌을 때 발생하는 것이다. 위 코드의 Add라는 함수는 첫번째 모양..
-
TypeScript의 함수 1(Call Signatures)개발언어/TypeScript 2022. 6. 12. 13:13
Call Signatures 다형성(polymorphism) / 오버로딩(overloading) / 제네릭(generics) 위 와 같이 함수를 정의 하면 ts는 위의 함수들이 return할 값이 number라는 것을 추측할 수 있다. 만약 add함수만의 타입을 만들고 싶다면? => call signature call signatures라는 것은 함수 위에 마우스를 올렸을 때 보게 되는 것을 말한다. 위 그림과 같은 것을 call signatures라고 한다. call signatures라는 것은 함수를 어떻게 호출해야 하는 것인지 알려준다. 더불어 함수의 반환 타입도 알려준다. 이건 함수가 어떻게 구현되는지를 알려주는 것이 아니라 함수의 타입, 인자(argurents)의 타입, 함수의 반환 타입을 알려..