dev 썸네일형 리스트형 JS 코딩테스트를 위한 코드 스니펫 1. 0~9 까지 숫자 배열 생성 Array.from({length:10}, (val,idx)=>idx) 2. 정수 난수 생성 min Vagrant 포트 포워딩 vagrant 에서 포트포워딩 설정을 해 주면 host(PC) 에서 guest(VM)로 요청을 전달할 수 있습니다. vagrant 포트포워딩 방법은 아래와 같습니다. 1. Vagrant file에 포트포워딩 설정 추가 Vagrantfile을 열어서 포트포워딩 관련 configure를 추가해 줍니다. 이 때, guest는 VM의 포트 번호를 뜻하며 host는 PC의 포트 번호를 뜻합니다. 아래 설정대로 하면 PC에서 localhost:8080으로 요청을 보내면 VM 3000번 포트로 요청을 전달해 줍니다. Vagrant.configure("2") do |config| config.vm.network "forwarded_port", guest: 3000, host: 8080 end 2. Vagrant 실행 .. docker build 시 awscli not found 에러 docker build 하는 과정에서 aws cli 설치 가이드에 따라 RUN pip install awscli --upgrade --user 를 했더니 awscli를 찾지 못했다. 일반적으로 /usr/local/bin에 설치되기 때문에 추가 설정 없이 사용할 수 있지만, user 옵션을 붙이면 경로가 ~/Library/Python/3.6/bin 에 설치된다. 따라서 다음과 같이 환경변수 설정을 해줘야 한다. echo 'export PATH="/Users/$(whoami)/Library/Python/3.6/bin:$PATH"' >> .bashrc 또는 설치 시에 --user 옵션을 빼고 /user/local/bin에 설치해 사용 가능하다. CPS 예외 처리 패턴 CPS에서는 일반적으로 요류를 호출 체인의 다음에서 콜백으로 전달하여 수행된다. Node.js 콜백 규칙에 따르면 오류는 콜백의 첫번째 인수로 전달된다. const fs = require('fs') function readJSON(fileName, callback){ fs.readFile(filename, 'utf8',(err,data)=>{ let parsed; if(err) // 오류 전달 후 현재 함수 종료 // 콜백이 호출되는 즉시 readJSON을 종료하기 위해 return을 사용한다. return callback(err); try{ parsed = JSON.parse(data) }catch(err){ // 에러 catch 후 오류 전달 return callback(err); } callback.. 자바스크립트 Execution Context 1 Execution Context 개념 Execution context는 javascript 코드를 실행하기 위해 필요한 환경을 말한다. 자바스크립트 엔진이 코드를 실행하기 위해서는 다음 정보를 알아야 한다. 변수 : 전역변수, 지역변수, 매개변수, 객체 프로퍼티 함수 선언 Scope 정보 this javascript 엔진은 execution context를 객체로써 관리한다. execution context 객체는 위의 정보를 저장하기 위해 아래와 같이 3개의 프로퍼티를 갖는다. 각 프로퍼티에 대한 간단한 설명은 다음과 같다. variable object (VO) : 변수, 매개변수, 함수 선언 정보를 담는다. scope chain : 스코프 정보를 담는다. thisValue : this 바인딩 정보를 .. 화살표 함수와 this 화살표 함수와 this 일반 함수와 화살표 함수의 this는 바인딩할 객체를 결정하는 시점이 다르다. 일반 함수 : 함수 호출 방식에 따라 동적으로 결정 화살표 함수 : 정적으로 결정. 항상 상위 스코프의 this 를 가리킨다 (Lexical this) 다음 예시를 통해 둘의 차이를 알 수 있다. /* ======================== 일반 함수 =========================== */ function Prefixer(prefix) { this.prefix = prefix; } Prefixer.prototype.prefixArray = function (arr) { return arr.map(function (x) { return this.prefix + ' ' + x; // 여.. JPQL, Criteria JPQL 개요 JPA에서 사용되는 JPQL은 SQL 쿼리를 추상화 한다. 즉 하나의 쿼리 언어를 통해 다양한 DB를 사용할 수 있다. JPQL은 SQL문과 유사하지만, 다른 점이 존재하기 때문에 이를 고려해 사용해야 한다. 예를 들어 inline view를 사용할 수 없고, insert 문이 존재하지 않는다(Entity manager를 사용해야 한다). 한편, JPQL의 대상은 테이블이 아닌 객체라는 것 또한 고려해야 한다. 즉, JPQL은 DB 테이블과 직접적인 의존관계를 지니지 않는다는 것을 생각해야 한다. 기본 질의 JPQL은 기본적으로 SQL 문법과 유사한 구조를 가지고 있다. // SELECT SELECT ... FROM ... [WHERE ...] [GROUP BY ... [HAVING ..... Java Date와 Spring boot JPA(Hibrnate) Java8 이전의 Date는 불변 객체가 아니라는 점, 상수 필드 남용 및 일관성 없는 상수값 등 많은 문제점을 가지고 있다. (참조 : 머루의 개발블로그, Java의 Date) Java8 이후에는 LocalDateTime을 사용해 기존의 문제를 대부분 해결 가능하다. Java8을 사용할 수 없는 상황이라면, joda-time을 사용할 수 있으며 안드로이드의 경우 date4j를 사용할 수 있다. 한편, Spring JPA에서 LocalDateTime을 사용할 때는 Spring boot의 버전을 고려해야 한다. Java 8의 날짜와 시간 클래스는 Hibernate 5.3(JPA 2.2) 부터 별도의 설정 없이도 정상적으로 사용 가능하다. Spring boot는 2.1 버전부터 Hibernate 5.3을 지.. 이전 1 2 3 4 5 6 7 8 ··· 10 다음