Programming
hosts 파일에 도메인을 저장해 놓으면, DNS가 없더라도, 페이지에 접속할 수 있다. ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1localhost 255.255.255.255broadcasthost ::1 localhost # Added by Docker Desktop # To allow the same kube context to work on the host and the container: 127.0.0.1 kubernetes.docker.internal # End of section
👉 웹 서버란? HTTP 요청을 받아, 정적데이터(static contents)를 제공하는 프로그램 ( Apache, Nginx ) 👉 웹 컨테이너란? 웹 서버에서 JSP, PHP, ASP.net 등의 파일을 받아 실행하고, 그 결과 값을 다시 웹 서버로 보내주는 프로그램 ( Tomcat .. ) 👉 웹 애플리케이션 서버란? 웹 서버 + 웹 컨테이너 HTTP 요청을 받아, 동적인 컨텐츠를 제공하는 프로그램 ( Tomcat, JBoss, Jeus ... ) WS와, WAS를 둘다 사용하면 좋은점 [ 서버 부하 방지 ] : 역할을 나눔 - WAS는 DB조회, 다양한 함수 실행 - WS는 정적인 정보만 빠르게 제공 [ 보안 강화 ] - 물리적 공간 분리 가능 - WS에만 SSL 보안 적용 [ 효율적인 Auto..
컴포넌트 마운트란? 컴포넌트 생성부터, 최초 렌더링까지의 과정 컴포넌트 언마운트란? 화면의 렌더링된 컴포넌트를, 삭제하기 까지의 과정 컴포넌트 렌더링 시작 useLayoutEffect 호출 컴포넌트 렌더링 완료 useEffect 호출 onLayout 이벤트 발생 컴포넌트 언마운트 시작 useLayoutEffect 반환 함수 호출 useEffect 반환 함수 호출 컴포넌트 언마운트(파괴) 완료
얕은복사 포인터를 생성해, 기존의 데이터를 가리키는 것 let person = {comment: 1} let newPerson = person // 얕은 복사 , newPerson에 person 주소값 저장 newPerson.comment = 10 // newPerson의 comment, person의 comment 둘다 10으로 만듬 const equal = person == newPerson console.log(equal) // true가 나옴 깊은 복사 새로운 변수를 생성하고, 기존의 데이터를 복사하는 것 let person = {comment: 1} let newPerson = {...person} // 깊은 복사, newPerson에 person 객체 모든값 저장 newPerson.commen..
useState import React, {useState} from 'react'; export default function myState() { const [state, setState] = useState(); /* 인자로, number type의 변수를 받거나, 인자로, number type의 변수를 반환하는 함수를 받고, [number, (number)=> void] 형식의 배열을 반환한다. */ }
1. os가 프로그램에게 메모리를 할당한다. 2. 컴퓨터가 실행할 코드를, 메모리의 코드영역에 저장한다. ( C언어를 기준으로 설명 ) 변수 선언 - 메모리를 할당하는 것 전역변수 - 프로그램 전체 내에서 사용할 수 있는 변수 지역변수 - 프로그램 블록{} 내에서 사용할 수 있는 변수 블록외부에 선언된 변수는, 데이터 영역에 저장되며, 프로그램 종료시에 지워진다. 블록안에 선언된 변수는, 스택영역에 저장되며, 블록 내부에서만 사용할 수 있다. 이때, 블록 내부에서 선언된 변수를 지역변수라고 부른다. 지역변수는 함수가 종료되면(리턴), 메모리의 스택영역에서 지워진다. ( 스택이 함수 호출전으로 돌아감 ) static 변수는 데이터 영역에 저장므로, 지역변수로 선언 되더라도 없어지지 않는다. 사용자가 직접 ..
[ 웹, 앱 개발에서 보안 ] 사용자는, 개발자가 만든 함수외에 그 어떤 함수도 실행할 수 없도록 해야한다. 정상적인 통신과정 사용자 요청 -> 서버 함수 실행 -> 함수 결과 전달 비정상적인 통신과정 사용자가 함수 만들어 전달 -> 서버에서 사용자 함수 실행 -> 함수 결과 전달 사용자가 직접 함수를 만들어 서버에 제공할 수 있으면 사용자 마음대로 서버의 데이터를 다룰 수 있어, 매우 위험하다. 그러므로 개발자는, 사용자가 서버에 함수를 전달 할 수 없도록 개발해야한다.
👉 오버로딩 객체의 메소드를 중복정의하는 것 ( 여러개 만들기 ) ( 이름은 같지만, 인자는 다른 메소드 만듬 ) // 이름은 같지만, 인자의 유형과 개수가 다른 메서드를 만들 수 있다. class Post { def test(one, two) { ... } def test(A, B, C) { ... } } 오버로딩의 장점 매개 변수의 생김새에 따라서, 다른 메서드가 호출되게 만들 수 있다. ( 유동적인 메서드 호출 ) - 그냥 다른이름의 메서드를 사용하는 것이 낫지 않나? 👉 오버라이딩 객체의 메소드를 재정의하는 것 ( 새로 덮어쓰기 ) ( 부모객체의 메소드를 무시하고, 새로운 메소드 만들기 ) // Post 객체 class Post { def test() { ... } } // Post 객체의 자식인..
luxon 란? 날짜, 시간 관련 기능을 처리하는 Node.js 패키지 luxon 설치 npm i luxon luxon 사용법 현재시각 가져오기 import {Datetime} from 'luxon' console.log(Datetime.now()) JS Date객체를, luxon Date객체로 바꾸기 fromJSDate() 메소드를 사용한다 import {Datetime} from 'luxon' const jsDate = new Date() console.log(Datetime.fromJSDate(jsDate)) luxon Date객체가, 현재 시각부터 얼마나 전인지 확인하기 toRelative() 메소드를 사용한다 import {Datetime} from 'luxon' const preDate = ..