반응형

Programming language 13

자바스크립트, Promise로 요청실패시 retry 처리하기

JavaScript로 코딩을 하다보면 I/O 연산은 논블로킹 방식으로 처리되기 때문에 비동기 처리를 반드시 적절하게 해야 한다. I/O함수에 콜백함수를 등록해 콜백함수 내에서 I/O 이후 로직을 처리하면 되지만 콜백이 중첩되다보면 콜백 지옥(callback hell)에 빠지게 된다. 뿐만 아니라 콜백방식을 사용하게 되면 중첩된 콜백함수 중 하나에서 에러가 발생했을 때 예외 처리가 꽤 까다롭다. 아래 순서도와 같이 데이터를 처리 한다고 가정해보자. 콜백 방식으로 처리 위 순서도를 처리하기 위한 콜백 방식의 코드를 보자. 아래 코드는 남자의 키 데이터를 요청하고, 그 후 여자의 키 데이터를 요청한다. 이 때 여자의 키 데이터를 요청 후 응답은 50% 확률로 실패하고 실패하면 null을 반환한다고 가정하자. ..

.jar 파일 만들고 php 에서 실행

풍부한 라이브러리를 제공하는 것이 Java의 장점 중 하나이다. 그리고 다른 프로그램 또는 OS에서 직접 Java코드를 실행해야 할 경우가 있다. 라이브러리 처럼 말이다. 이때 Java Class를 여러개 묶어서 실행가능한 .jar로 만들어 실행하면 된다. 여러 Class를 하나의 .jar 파일로 만들어 args[ ]를 넘기면서 실행해 결과를 볼 것이다. 1. 예제 코드 만들기 예제 코드를 간단히 만들어 봤다. 간단히 설명을 덧붙이자면, Main 에서 Person 클래스를 사용하고, Person은 args[ ]를 통해 초기화 된다. 그리고 그 결과를 간단히 볼 것이다. 소스코드는 아래와 같다. a. Main public class Main { /* * arg[0]: personName(String) * ..

JavaScript callback hell과 async-await

JavaScript를 사용하면서 성가신 것 중 하나가 I/O가 일어날 때 비동기 방식으로 동작한다는 점이다. 빈번한 I/O 처리 때문에 때문에, 코딩을 하다 보면 가끔 끔직한 결과를 만나게 될 때가 있는 것 같다. 특히, 연속적인 read, save 할때 말이다. 이를 해결하기 위해서 callback, async module(waterfall), promise 그리고 최근 async-await 까지 나왔다. async-await 방식이 기존에 방식에 비해 코드 가독성이 높아 쓰인다고 했지만 callback만 써왔기 때문에 async-await 코딩 방식에 익숙하지 않아 연습겸 글을 쓴다. Node.js로 모바일 앱 서버를 하나 구축하고 있다고 가정하자. 한 회원이 내가 쓴 글 목록을 보는 부분을 구현하고..

반응형