분류 전체보기137 setTimeout함수를 실행했을 때 일어나는 과정은? 🤔아래의 문장은 맞는 문장일까?? setTimeout(print, 3000); print 함수는 3초후 호출된다 ??? :: print 함수는 호출 시점이 정확히 3초후라는 걸 보장할 수 없어 틀렸다. 💨이벤트 기반 프로그래밍 이벤트? 이벤트는 사용자가 클릭하는 마우스, 입력하는 키보드 등의 행위가 이벤트이다. 우리는 이 이벤트의 대응해 맞는 행동을 취한다. 컴퓨터는 이 이벤트가 언제 발생할 지 모르지만 브라우저는 이를 감지할 수 있다. 때문에 우리는 브라우저에게 특정 이벤트 발생시 처리할 내용을 알려주고 이벤트 처리를 위임한다. 정리 :: 이벤트 기반의 프로그래밍에서는 어떤 이벤트가 발생할 때, 실행할 작업을 미리 등록해두는데, 작업 내용이 담긴 함수를 이벤트 핸들러라고 하며 브라우저에게 이벤트 처리를.. 2022. 6. 22. Alias 타입 저번에 타입스크립트에서 객체를 선언할 때 선택적으로도 인스턴스를 선언할 수 있는 걸 보았다. 하지만 만약에 player라는 객체를 여러개 만들어야 한다고 가정하면 매번 이름과 나이를 반복적으로 작성해주어야 한다. 이러한 불편함을 없애주기 위해 Alias 타입이라는 것이 있다!! Alias 타입 type Player={ name :string, age?:number } const player1:Player={ name : "hojin" } const player2 : Player = { name :"ho-bolt" age : 27 } 이렇게 상단에 타입을 정의해 놓은 것을 선언해두면 다른 객체에서는 타입을 정의한 걸 반복적으로 작성할 필요가 없어진다! 자바의 클래스 정의랑 비슷한다! 🤔 여기서 Player.. 2022. 6. 21. Optional type 객체를 선언해줄 때 콜론 뒤에 중괄호에는 인스턴스의 타입을 명시해주고 = 뒤 중괄호에는 해당 인스턴스의 값을 선언해준다! 하지만 여기서 player라는 객체가 age를 가지고 있어도, 안가지고 있어도 되는 선택적으로 선언하고 싶다면? 해당 인스턴스 뒤에 ? 를 달아주면 된다! 그러면 해당 age는 _number/undefined_로 들어가게 된다! Oprtional type const player: { name:string, age?:number }={ name:"hojin", }Basic type const player: { name:string, age:number }={ name:"hojin", age:27 }😋 이런 타입스크립트의 장점? if(player.age 2022. 6. 21. 추론 타입, 명시 타입 😀추론 타입 let say="hello" const age=30 let b =false 타입스크립트도 자바스크립트와 똑같이 선언할 수 있다. 하지만 여기서 값의 타입을 유추하여 타입스크립트는 타입을 정해준다. 따라서 변수값을 재할당하는 데 기존에 선언했던 값의 타입과 다르다면 에러를 던져준다. let say="hello" say=30 //Type 'number' is not assignable to type 'string'. 이것이 자바스크립트와 가장 큰 차이점이다. 자바스크립트는 타입이 달라도 재할당 했을 때 문제없이 값이 바뀐다. 😏명시 타입 let say : string="hello" let b : boolean =true 이렇게 값의 타입을 콜론 뒤에 작성해주는 게 명시적으로 타입을 보여주면서 선.. 2022. 6. 21. Nginx를 사용하는 이유 이미지 출처 :https://jp-hosting.jp/centos7-%EC%97%90-nginx-%EC%84%A4%EC%B9%98/ 🤪Nginx란 무엇일까? Nginx는 경량 웹서버이다. 클라이언트로부터 요청을 받았을 때 요청에 맞는 정적 파일을 응답해 주는 HTTP Web Server로 활용된다 Reverse Proxy Server로 활용하여 WAS 서버의 부하를 줄일 수 있는 로드 밸런서로 활용되기도 한다. 😝Nginx 프로세서 nginx는 Event-Driven 구조로 동작하기 때문에 한 개 또는 고정된 프로세스만 생성하여 사용한다. 비동기 방식으로 요청들을 Concurrency 하게 처리할 수 있다 위 그림에서 보면 요청이 들어오더라도 새로은 프로세스와 스레드를 생성하지 않는다. 따라서 프로세스와.. 2022. 6. 19. Javascript this란 무엇일까?? this란 뭘까?? Javascript에서 this는 쉽게 말하자면 누가 나를 불렀냐 라는 뜻입니다. 즉 선언이 아니라 this의 값은 함수를 호출하는 방법에 의해 결정이 된다는 뜻입니다 실행하는 동안의 할당에 의해 설정될 수 없고, 함수가 호출될 때마다 다를 수 있다. this의 이해 this의 값은 어떻게 변화할까? this가 어떤 값과 연결되는 지는 this의 바인딩을 통해서 확인해 볼 수 있다. 바인딩이란, this의 호출 방식에 따라서 this가 특정 '객체'에 연결되는 것이다. this의 바인딩은 일반 함수 내부, 메서드 내부, 생성자 함수 내부, Call, Apply, Bind를 통한 '호출 방식'으로 나눠서 살펴볼 수 있다. 일반 함수 내부에서의 this는 글로벌 객체와 바인딩된다. 메서드.. 2022. 6. 19. 프록시 대리 : 남을 대신하여 일을 처리한다. 프록시 서버란?? : 대신 처리하는 서버 클라이언트와 서버간의 중계 서버로 통신을 대리 수행하는 서버 캐시, 보안, 트래픽 분산 등 여러 장점을 가질 수 있음 프록시 종류 Forward Proxy 일반적인 프록시는 포워드 프록시다 이미지 출처 : https://firework-ham.tistory.com/23 포워드 프록시 특징 캐싱 : 클라이언트가 요청한 내용을 캐싱 1번 클라가 오늘 날씨 어떤 지 요청 서버는 오늘 비가 온다고 응답 포워드 프록시에서 오늘은 비가 온다는 걸 캐싱해둠 2번 클라가 오늘 날씨 어떤 지 요청을 했을 때 이젠 서버로 가는 게 아니라 바로 프록시서버에서 응답 줌 => 1. 전송 시간을 줄여줌 불필요한 외부 전송을 줄여줌 외부 요청 감소 -.. 2022. 6. 19. TCP/IP 4계층 모델 네트워크 계층 모델 인터넷 프로토콜 스위트는 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 사용되는 프로토콜의 집합이다. 이를 TCP/IP 4계층 모델이나, OSI 7계층 모델로 설명한다. 여기선 TCP/IP 4계층으로 설명하겠다. 애플리케이션 계층 FTTP, HTTP SSH,SMTP,DNS, 등 응용 프로그램이 사용되는 프로토콜 계층이다. 웹 서비스, 이메일 등 서비스를 실질적으로 사람들에게 제공한다. FTP 장치와 장치 간의 파일을 전송하는 데 사용되는 표준 통신 프로토콜 SSH 보안되지 않은 네트워크에서 네트워크 서비스를 안전하게 운영하기 위한 암호화 네트워크 프로토콜 HTTP World Wide Web을 위한 데이터 통신의 기초이자 웹 사이트를 이용하는 데 사용하는 프로토콜 SMTP 전자 메일 전.. 2022. 6. 18. 네트워크 기초 네트워크 기초 : 네트워크란 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있지 않은 집합체를 의미한다. 노드 : 서버, 라우터, 스위치, 등 네트워크 장치를 말함 링크 : 유선, 무선을 의미 처리량과 지연 시간 : 네트워크를 구축할 땐 좋은 네트워크로 만드는 것이 중요. 좋은 네트워크란?? 많은 처리량을 처리 지연 시간이 짧음 장애 빈도가 적음 좋은 보안을 갖춤 처리량 : 처리량(throughput)란 링크를 통해 전달되는 단위 시간당 데이터의 양을 의미한다. 이미지 출처 : [https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=coke\_mania&logNo=221386766930] 단위로는 bps(bits pe.. 2022. 6. 18. WAS와 WS의 차이점 WS (Web Server ) : 웹서버는 정적인 컨텐츠(html, css, Js)를 제공하는 서버이다. ex) Apache, Nginx WAS (Web Application Server) : WAS는 DB를 조회하거나 로직을 처리해야 하는 동적인 컨텐츠를 제공하는 서버이다. ex) Tomcat, Jeus 결국 둘의 차이는 어떤 타입의 컨텐츠를 제공하느냐의 차이이다. - WAS와 WS는 각각 독립적으로 존재가능하다. - 대부분의 WAS는 정적인 컨텐츠를 제공해주고 있기 때문에 웹 서버 없이 WAS만 존재할 수 있다. - WAS는 WS를 포함하는 개념이라고 볼 수 있다. 위에서처럼 WAS 자체로 웹 서버의 역할을 수행하기 때문에 무조건적으로 웹 서버를 앞단에 두어야 할 필요는 없다. 하지만 일반적으로 WS.. 2022. 6. 17. 동적 바인딩 🌏 바인딩이란? 함수를 컴파일하면, 선언된 함수의 코드는 메모리에 저장되고, 함수 호출문에는 코드의 메모리 주소값이 저장된다. 여기서 프로그램을 실행하면 함수 호출문에서 함수 코드가 저장된 주소로 이동한 후 함수를 실행하고 원래 위치로 돌아오는데 이때 함수 호 출문에서 함수 코드가 저장된 주소로 연결하는 과정을 바인딩이라 한다. 🚗 동적 바인딩 동적 바인딩은 컴파일 과정에서 부모 클래스의 함수를 참조하는데 런타임 과정에서 실제로는 자식 클래스의 함수와 바인딩된다 why? 정적 바인딩의 경우, 컴파일 과정에서 정의된 타입 형식을 참조해 어떤 클래스와 메소드를 참조할 지 결정한다. (super class의 메소드 ) 동적 바인딩의 경우에는 런타임에서 실제 객체를 찾아 오버라이드된 자식 클래스의 메소드의 결과.. 2022. 6. 16. 객체지향 프로그래밍이란? 🍳 OOP 탄생 배경 : 객체지향 프로그래밍이 등장하기 전에는 절차지향적, 구조적 개발 방법론을 이용해 소프트웨어를 개발했다. 명시된 입력을 받아 명시된 순서로 처리한 다음 결과를 내는 방식이다 하지만 대규모 프로젝트같은 복잡한 로직이 요구되면 순서도로 나타내는 게 불가능해지고 스파게티 코드를 양상하게 되었다.이때 구조적 프로그래밍이 탄생했다. 구조적 프로그래밍이란 큰 문제를 해결하기 위해 작은 함수로 쪼개기 때문에 Top-Down (하향식)방식으로 불린다. 하지만 구조적 프로그래밍 도 데이터 자체를 구조화하지는 못했다. 전역 네임 스페이스는 포화상태가 되고 GUI 프로그래밍에선 실행 컨텍스트를 저장할 방법이 없었다. 이에 해결책으로 나온게 객체 지향 프로그래밍 이다. 객체지향은 먼저 작은 문제들을 해결.. 2022. 6. 16. 이전 1 2 3 4 5 6 ··· 12 다음