본문 바로가기

전체 글

(686)
2. Javascript ES2015 (8) - Map/Set ES2015에서 추가된 새로운 자료구조들 중, 자주 사용될만한 것은 Map, 그리고 Set입니다. 이미 JAVA에서도 Map과 Set을 다룬 적이 있기 때문에, 기본적인 개념은 각각의 아티클을 참고하는 것도 좋을 것 같습니다. 컬렉션 프레임워크(4) - Map 컬렉션 1 : Map의 개념[1/2] 이번에는 Map 컬렉션에 대해서 살펴보겠습니다. Map 컬렉션은 키(key)와 값(value)으로 구성된 Entry 객체를 저장하는 구조입니다. 중요한 특성 중 하나는, key는 중복 저장할 수 없으며 value는 중복 저 nozeroslope.tistory.com 컬렉션 프레임워크(3) - Set 컬렉션 1 : Set의 개념 List와 차별화되는 Set 컬렉션의 가장 큰 특징은, 수학의 집합과 유사한 성질을 ..
2. Javascript ES2015 (7) - async/awiat [2/2] 앞선 아티클에서 살펴보았던 async/await 코드 예제를 조금 더 응용해 보겠습니다. async function findAndSaveUser(Useres) { try { let user = await Useres.findOne({}); user.name = 'zero'; user = await user.save(); user = await Useres.findOne({ gender: 'm' }); // 생략 } catch (error) { console.log(error); } } 위 코드에서 화살표 함수를 동일하게 적용하여 async와 같이 사용할수도 있습니다. 같은 코드에 화살표 함수를 적용해 보겠습니다. const findAndSaveUser = async (Users) => { try { le..
2. Javascript ES2015 (7) - async/awiat [1/2] async/await는 노드 7.6 버전부터(ES2017) 추가된 기능입니다. 노드와 같이 비동기 중심의 코드를 작성하는 데 있어서 코드를 간소화하는데 큰 도움을 주는 문법이죠. 우선은 기본적으로 프로미스를 이해하고 있어야 합니다. async/await는 근본적으로 프로미스 문법을 간소화시켜주는 기능을 갖고 있기 때문입니다. 기본 콜백 지옥을 프로미스로 간소화하였지만, 앞선 아티클들에서 살펴보았듯이 then과 catch가 여전히 장황하게 반복됩니다. 앞서 살펴보았던 findAndSaveUser( ) 예제를 통해서 알아보겠습니다. 2. Javascript ES2015 (6) - 프로미스 [4/5] 앞선 아티클에서 우리는 3개의 뎁스를 가진 콜백 함수 예제를 살펴보았습니다. function findAndSa..
2. Javascript ES2015 (6) - 프로미스 [5/5] 앞선 아티클까지 우리는 프로미스 여러 개를 순차적으로 실행하는 방법까지 살펴보았습니다. 그런데, 순차적인 실행뿐만 아니라 여러 개를 한 번에 실행할 수 있는 방법도 존재합니다. 지금부터 그 방법을 하나씩 살펴보겠습니다. ○ Promise.all과 Promise.resolve / Promise.reject 아래 코드를 보겠습니다. Promise.all을 이용해서 여러개의 프로미스를 한 번에 실행하는 예제입니다. const promise1 = Promise.resolve('SUCCESS 1'); const promise2 = Promise.resolve('SUCCESS 2'); Promise.all( [promise1, promise2] ) .then( (result) => { console.log(resu..
2. Javascript ES2015 (6) - 프로미스 [4/5] 앞선 아티클에서 우리는 3개의 뎁스를 가진 콜백 함수 예제를 살펴보았습니다. function findAndSaveUser(Users){ Users.findOne( {}, (err, user) => { // 첫 번째 콜백 if(err){ return console.error(err); } user.name = 'zero'; user.save( (err) => { // 두 번째 콜백 if(err){ return console.error(err); } Users.findOne( { gender: 'm' }, (err, user) => { // 세 번째 콜백 /* 내용 생략*/ } ); } ); } ); } 위 예제에 대한 설명이 기억나지 않는다면, 아티클을 다시 복습해 보시기 바랍니다. 2. Javascrip..
2. Javascript ES2015 (6) - 프로미스 [3/5] 앞선 아티클에서 프로미스를 사용하는 기본적인 패턴에 대해서 살펴보았습니다. 2. Javascript ES2015 (6) - 프로미스 [2/3] 우리는 앞선 아티클에서, 프로미스를 생성해 then, catch, finally를 출력하는 과정을 살펴보았습니다. 그런데 여기서 드는 한 가지 의문, then이나 catch는 딱 '한 개만' 실행이 가능한 것일까요? 결론만 nozeroslope.tistory.com 이번 아티클에서는 프로미스를 이용해서, 통상적으로 사용하는 콜백 함수를 좀 더 가독성 있게 바꿔보도록 하겠습니다. 참고로 여기에는 전제조건이 있습니다. 아래 예제에서 사용하는 메서드 중, findOne과 save에는 내부에 new Promise가 함수 내부에 구현이 되어 있는 상황이라고 가정해야 합니다..
2. Javascript ES2015 (6) - 프로미스 [2/5] 우리는 앞선 아티클에서, 프로미스를 생성해 then, catch, finally를 출력하는 과정을 살펴보았습니다. 그런데 여기서 드는 한 가지 의문, then이나 catch는 딱 '한 개만' 실행이 가능한 것일까요? 결론만 얘기하자면 그렇지 않습니다. then이나 catch 선언문에서 다시 다른 then이나 catch를 붙일 수 있습니다. 앞선 아티클에서 살펴본 코드를 살짝 수정해 보겠습니다. 2. Javascript ES2015 (6) - 프로미스 [1/3] 당연한 이야기이지만, Javascript와 Node에서는 비동기를 주로 사용하게 되고, 이벤트 리스너에서 콜백 함수에 대한 정의를 자주 쓰게 됩니다. 그러나, 이 콜백 함수들의 사용은 꽤나 코드를 복잡하 nozeroslope.tistory.com ..
2. Javascript ES2015 (6) - 프로미스 [1/5] 당연한 이야기이지만, Javascript와 Node에서는 비동기를 주로 사용하게 되고, 이벤트 리스너에서 콜백 함수에 대한 정의를 자주 쓰게 됩니다. 그러나, 이 콜백 함수들의 사용은 꽤나 코드를 복잡하게 만드는 원인이 되기도 합니다. ES2015부터는 이러한 API에서의 콜백 사용이 프로미스(Promise)를 기반으로 변경되어 복잡한 콜백 문법을 간소화시키고 있습니다. ES2015부터 사용되는 이 프로미스는 특히 노드 학습에 있어서 중요한 부분을 차지하니, 잘 공부하시기 바랍니다. 프로미스 객체를 통한 실행 과정을 간단하게 요약해 보겠습니다. · new Promise 인스턴스를 선언합니다. 이 때, new Promise 파라미터에는 'resolve'와 'reject'를 파라미터로 갖는 콜백 함수를 전달..