전체 글
-
Type of TS part Three개발언어/TypeScript 2022. 6. 12. 12:33
Never - never는 함수가 반환 하는 type이 두 가지 일 수도 있는 상황에 쓰이기도 한다. 위 코드의 함수안에서 위와 같은 코드를 작성하는 것은 불가능 하다. 왜냐하면 name의 type이 string일 수도 있기 때문이다. 위 와 같이 typeof 를 사용해서 name 변수의 type을 check한 다음에만 name의 type을 확정해서 코드를 작성할 수 있다. 그리고 마지막 else안에서의 name의 type은 never이다. 즉 else의 코드 블럭은 절대 실행되지 말아야 한다는 의미이다. type이 제대로 들어 와서 string이거나 number이면 마지막 else 코드 블럭은 절대로 실행되는 일이 없을 것이다. [출처 - https://nomadcoders.co/typescript-f..
-
async와 await 그리고 유용한 Promise APIs개발언어/JavaScript 2022. 6. 10. 15:59
async / await promise를 계속 chaining하다 코드가 지저분해 지기 쉽상이다. 이런 것 위에 좀더 간편한 api로 async와 await을 사용하면 promise를 좀더 간편하고 간결하게 사용할 수 있게 해주고, promise가 좀 더 동기적으로 실행되는 것 처럼 보일 수 있도록 해준다. async와 await 새로운 것이 추가된 것이 아니라 기존에 존재하는 promise 위에 조금더 간편한 api를 제공하는 것이다. 이렇게 기존에 존재하는 것 위에 또는 기존에 존재하는 것을 감싸서 조금더 간편한 api를 제공하는 것을 syntatic sugar라고 한다. 예) JavaScript에서 class는 전혀 새로운 것이 아니라 prototype을 기본으로한 syntatic sugar이다. ..
-
Promise 개념부터 활용개발언어/JavaScript 2022. 6. 9. 14:18
Promise JavaScript에서 제공하는 비동기 처리를 간편하게 할 수 있도록 도와주는 Object이다. callback 함수를 사용하지 않고 비동기 코드를 깔끔하게 처리하게 해준다. Promise는 정해진 장시간의 기능을 수행하고 나서, 정상적으로 기능이 수행되어 졌다면 성공의 message와 함께 처리의 결과 값을 전달해주고, 기능을 수행하다 예상치 못한 문제가 발생했다면, error를 전달해 준다. JavaScript안에 내장 되어 있는 Object이다. asynchronous operation을 위해서 사용된다. 비동기적 코드를 사용할 때 callback 함수 대신 유용하게 사용할 수 있다. 두가지 Point 1. state 프로세스가 무거운 operation을 실행하고 있는 중인지, 아니면..
-
비동기 처리의 시작 Callback 이해하기개발언어/JavaScript 2022. 6. 8. 14:41
JavaScript는 동기적인 언어이다. hoisting이 된 이후 부터 코드가 작성한 순서에 맞추어서, 하나하나 씩 동기적으로 실행 된다는 의미이다. *hoisting : var(변수) 혹은 function(함수) 선어들이 자동적으로 제일 위로 올라가는 것을 의한다. 함수 setTimeout() 브라우저에서 제공되는 api로, 지정한 시간이 지나면, 지정한 callback함수를 호출하는 것이다. 해당 함수에는 handler:TimeHandler라는 callback함수를 전달해주고, 어느정도 시간을 timeout할 것 인지 지정해주는 인자들이 존재한다. 해당 함수의 callback함수를 전달한 인자만큼의 시간뒤에 실행해달라고 브라우저에게 요청한다. 브라우저 api는 무조건 브라우저에게 먼저 요청을 보내게..
-
PHP - 상속 1,2,3(소개, 사례, 상속의 형식)카테고리 없음 2022. 6. 3. 11:02
소개 Inheritancne 객체를 수정하고 싶을 때 메소드를 추가 시킨다거나 메소드를 빼는 작업들을 할 수있다. 그런 과정 중에 객체를 직접 수정해도 되겠지만, 직접 수정할 수 없는 경우가 있다. 예) 해당 객체를 직접 만든 것이 아니라 php가 제공하는 SPL라이브러리에서 만들어 진 것이라면, 직접 만든 것이 아니므로 코드를 마음대로 바꿀 수가 없다. 그런데 해당 객체에다가 메소드를 추가하고 싶다면 => 상속 사례 File Handling SplFileInfo - The SplFileInfo class SplFileObject -The SplFileObject class SplTempFileObject - The SplTempFileObject class File을 핸들링 하는 객체 3가지가 있는데,..
-
DB 테이블 관계의 종류Data Base/관계형 데이터 모델링 2022. 5. 18. 16:38
1:1 관계(일대일 관계) 1:1 관계란 특정 엔티티 쪽에서 상대 엔티티와 반드시 단 하나의 관계를 가지는 것을 의미한다. 1:N 관계(일대다 관계) 1:N 관계는 한 쪽 엔티티가 관계를 맺은 엔티티 쪽의 여러 객체를 가질 수 있는 것 을 의미한다. 현실세계에는 1:N관계가 많이 있는데, 실제 DB를 설계할 때 자주 쓰이느 방식이다. 1:N 관계는 N:M관계처럼 새로운 테이블을 만들지 않는다. 특정 테이블이 관계를 대상 테이블을 소유한다고(has a 관계) 표현한다. 또한 1:N의 관계를 계층 관계로 이해 할 수도 있다. departments_manager - employees 여러 개가 되는 N입장에서는 (1)유일한 상위 테이블 중 어떤 테이블에 속해 있는지 표현해야 하므로 부모 테이블의 PK를 자식 ..
-
docker에 대한 기본 이해Infra/컨테이너 2022. 5. 1. 19:56
docker 프로세스 window macOS Linux 맨 처음 도커를 사용하기 위해서, 도커 관련한 프로그램을 설치했다. 심지어 linux에서는 해당 docker가 떠 있는지 확인을 했다. 물론 mac이나 window에서도 꼭 프로그램이 떠있어야 docker command가 먹힌다. docker command는 일종의 클라이언트라고 이해하면 된다. => 데몬 프로세스 형태로 동작 데몬 프로세스 프로그램이 떠있는 상태에서 docker command를 실행하면, 그 명령이 떠 있는 docker 데몬 프로세스에 전달이 되서, docker에 기능이 동작을 한다. docker command를 내리면, 결국 내부적으로 Rest API를 사용해서, docker deamon process를 호출하는 방식 docker..
-
리눅스에 Docker /Docker-Compose설치하기Infra/컨테이너 2022. 5. 1. 19:28
ubuntu 20.04 에서, docker 설치하기 1. 최신 패키지 리스트 업데이트 sudo apt update 2. docker 다운로드를 위해 필요한 https 관련 패키지 설치 sudo apt install apt-transport-https ca-certificates curl software-properties-common 여기 까지는 프로그램을 설치하는 것이다. https://download.docker.com/linux/ubuntu/gpg 서버에 접속을 해서 docker라는 프로그램을 다운로드 받아야 하는데, 위 서버에 접속을 하려면 https 라는 프로토콜(기능)을 지원을 해야한다. 2번 과정에서 설치한 프로그램이 주로하는 역할은 앞서 언급한 프로토콜을 지원하기 하는 것이다. 3. doc..