화살표 함수(() => {})는 함수를 간단하게 표현할 수 있는 ES6문법입니다. 일반 javascript(function ())과 비슷한 방식으로 동작하지만 몇가지 분명한 차이점이 있습니다. 문법(Syntax) // (param1, param2, paramN) => expression // ES5 var add = function(x, y) { return x+y; } // ES6 let add = (x, y) => {return x+y}; 위의 예제에서 보시다시피, 표현법이 다르죠? Regular function(ES5)와 Arrow function(ES6)는 결과는 같은데 타이핑이 절반 가까이 줄어들었습니다. 보기에도 깔끔하구요 또한, 괄호를 생략할 수 있는 경우가 있어서 더 줄어들 수 있죠. in..
클로저는 자바스크립트의 고유 개념이 아니다. 함수를 일급 객체로 취급하는 함수형 프로그래밍언어에서 사용되는 중요한 특성이다. MDN에서는 "클러저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합이다"라고 설명한다. 자바스크립트는 렉시컬 스코프를 따르는 프로그래밍 언어이다. const x =1; function outerFunction(){ const x =10; function innerFunction(){ console.log(x) //10 } } → innerFunction에서 outerFunction에 있는 x에 접근이 가능하다. 중첩함수 inner의 상위스코프는 외부함수 outerFunction이기 때문이다. 다음은 inner에서 outer 변수에 접근이 불가능하다. const x =1; func..
new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함수를 말한다. 생성자 함수에 의해 생성된 객체를 인스턴스라고 한다. JS는 Object 생성자 함수 이외에도 String,Number,Boolean,Function,Array,Date,RegExp,Promise등의 빌트인 생성자 함수를 제공한다 //String 생성자 함수에 의한 String 객체 생성 const obj = new String('Park'); // String {"Park"} //Function 생성자 함수에 의한 Function 객체(함수) 생성 const func = new Function("x","return x-x"); // f anonymous(x) 생성자 함수에 의한 객체 생성 방식의 장점 생성자 함수에 의한 객체 생성..
Prototype 프로토타입 자바스크립트에서 프로토 타입은 두 가지의 의미를 혼용해서 사용한다. 프로토타입의 두가지 의미 __proto__ : 상위에서 물려 받은 객체의 프로토타입에 대한 정보 prototype : 자신의 프로토타입 객체 즉, 하위로 물려줄 프로토타입의 정보 예시 정의한 Animal 함수의 __ proto __ 는 Amimal 객체를 생성할 때 사용될 원형프로토타입을 가르키고 있다. Animal 함수의 prototype은 Animal의 Prototype가르키고 있다. (두 가지 의미중 두 번째 ) 예시 2 생성한 cat 객체와 dog 객체의 __proto__(prototype link)은, cat 객체와 dog 객체를 생성한 프로토타입 객체를 가르키고 있습니다. 프로토타입 체인(Proto..
스트림 → 자바8 부터 추가된 컬렉션(배열 포함)의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자이다. → Stream이 제공아는 대부분의 요소 처리 메소드는 함수적 인터페이스 매개 타입을 가지기 때문에 람다식 또는 메소드 참조를 이용해서 요소 처리 내용을 매개값으로 전달할 수 있다. stream 사용 List list = Arrays.asList("홍길동","김자바","덕덕"); Stream stream = list.stream(); stream.forEach( name -> System.out.println(name)); 내부 반복자를 사용하므로 병렬 처리가 쉽다. 내부 반복자 : 컬렉션 내부에서 요소들을 반복시키고, 개발자는 요소당 처리해야 할 코드만 제공하는 코드 패턴. ..
지난번 글에서는 Cookie 문제까지 발생한 글을 적었다. 이번 글에서는 그 Cookie를 어떻게 공유하는지 설명할 예정이다. 먼저 원인은 도메인이 다르기 때문인데 도메인을 일치시켜주려면 도메인을 사면된다 ! 간단하다 ! 일단 도메인 구입 했고 ,, 삥 뜯기는 기분 ... 하지만 난 절대 돈을 비싸게 쓰지 않을거야 그러므로 듣보잡 도메인 구매 ( .com이 아닌 .shop으로 끝나는 ) aws에서 route 53 으로 이동하자 ! 그 후 호스팅 영역탭에서 호스팅 영역을 생성해야하는데 저 도메인 이름에 나는 polodingo.shop 을 입력해줬다 즉, 도메인을 생성한 도메인 이름을 치면 된다 ! 짠 이런식으로 2개가 들어있을텐데 NS 와 SOA 중에 NS 유형에서 값 / 트래픽 라우팅 대상 보면 총 4개..
back server에서 npm install pm2를 설치한 것 처럼 기존 프로젝트 front 경로도 pm2를 설치 후 pull해주자 ! | 알고 가야하는 점 ! 첫 번째, 지금 프로젝트는 nextjs 로 진행했기 때문에 getServerSideProps와 같은 backend에서 먼저 data를 받아와야 하는 함수가 들어있다 따라서 backend 가 무조건 켜져있어야지만 front를 켤 때 오류를 방지할 수 있다 ! 두 번째, 현재 나는 saga 로 상태관리를 하고 있는데, saga 폴더의 index.js에서 나는 axios의 defaults 값으로 baseURL을 지금까지는 axios.defaults.baseURL = 'localhost:3001'; 이렇게 적어주고 사용해왔었다. 하지만 지금 우리가 ..
자 이제 서버 실행도 시켰고 ! 중요한 건 쉘에서 서비스를 중지시키면 홈페이지도 중지가 되버린다.. 이랬던게 이렇게 꺼져버린다. 이게 참 애매한게 그렇다고 해서 항상 백앤드창을 계속 접속할 수 없는 노릇인데.. 이 현상이 노드가 foreground process 로 돌아가서 생기는 문제인데 이러면 shell을 종료했을 때 foreground process도 같이 종료된다. node app 으로 실행하면 foreground process가 된다는 것. foreground process란 ? -> 터미널을 끄면 같이 꺼지는 것 (node app) background process -> 터미널을 꺼도 안 꺼지는 것 오늘은 이걸 해결해보자 먼저 다시 백앤드 서버 실행 엥 ? 오류다 뭐지 ? 이 원인은 우분투(u..