saltfactory's blog


엣지있게 설명한 Ionic 수정증보판 작업을 진행 합니다.

최신 Ionic 버전을 위한 개정판 준비

엣지있게 설명한 Ionic 책이 출판될 때 Ionic 버전은 v1.0 RC 이였습니다. 이후 Ionic은 폭풍같은 성장세와 활발한 커뮤니티를 통해 빠른 버전 업데이트가 진행이 되었고 지금은 v1.2.4 까지 릴리즈 되었습니다. 또한 Ionic은 새로운 표현식을 포함한 Ionic HTML 컴포넌트를 가지고 v2.0.0을 릴리즈할 준비를 하고 있습니다. 이 처럼 Ionic은 현재 가장 활발하고 인기 있는 하이브리드 앱 개발 프레임워크라는 사실을 확인할 수 있습니다. 이에 맞춰 엣지있게 설명한 Ionic 수정증보판을 준비하게 되었습니다.

Continue Reading

Ionic 하이브리드 앱 (PhoneGap, Cordova) iOS 3D Touch 적용하기

서론

iPhone 6s의 가장 큰 특징 중에 하나가 3D Touch 이다. 새로운 SDK가 발표되면 새로운 디바이스에 설치되는 앱에는 이런 기능을 추가하고 싶어질 것이다. 3D Touch 는 마치 단축키메뉴 같은 역활을 한다. 앱을 터치하여 앱을 구동시키지 않고, 앱이 실행되고 있지 않아도 특정 메뉴에 접근하거나 특정 작업을 바로 할 수 있는 기능을 구현할 수 있다. 만약 Cordova 기반의 하이브리드 앱을 개발하고 있다면 iPhone 6s 디바이스에 어떻게 3D Touch 를 적용할 수 있을지 관심을 가져볼 수 있다. Cordova 개발자들 사이에서도 3D Touch를 사용하여 적용할 수 있는 방법에 대해서 연구하고 여러가지 플러그인을 내어 놓고 있다. 이 글에서는 Cordova 기반 Ionic 프레임워크로 하이브리드 앱에서 cordova-plugin-3dtouch Cordova 플러그인을 사용하여 간단하게 iPhone 6s 에서 3D Touch를 적용하는 방법을 소개한다.

Continue Reading

PhoneGap(Cordova) 안드로이드 앱에서 외부 링크 새로운 브라우저 앱으로 열기

서론

PhoneGap(Cordova)으로 만든 하이브리드 앱은 WebView 안에서 동작하기 때문에 앱 내의 링크가 아닌 외부 링크를 사용하면 앱이 사라지고 외부링크 페이지가 열리게 되는 문제가 있다. 이 문제를 간단하게 해결하기 위해 외부 링크를 클릭하면 외부링크 페이지가 앱의 WebView에서 열리지 않고 브라우저 앱을 통해 열릴 수 있는 방법을 앞에서 PhoneGap(Cordova) 외부 링크(a link) 새창으로 열기 라는 글로 소개를 한적이 있다. 이 글에서 iOS와 Android의 두가지 경우를 소개하였는데 Android 에서는 최신 Cordova 업데이트 이 후 이 글의 내용을 더이상 사용하지 못한다. appView.setWebViewClient() 메소드를 더이상 사용할 수 없기 때문이다. 이 글에서는 최신 Cordova 버전에서 안드로이드 앱을 만들 때 안드로이드의 shouldOverrideUrlLoading를 사용하여 외부링크를 새로운 브라우저에 열리게 하는 방법을 소개한다.

Continue Reading

Spring에서 RestTemplate을 사용하여 웹(API 서버)에 Multipart/Form-data (첨부파일 포함) 전송하기

서론

Spring에서 RestTemplate을 사용하면 간단하게 REST 서비스 요청을 쉽게 처리할 수 있다. RestTemplate 모듈이 Spring 에 포함되고 난 이후 Apache HttpClient 등 다른 외부 라이브러리를 사용하지 않고 Spring에서 제공하는 것 만으로도 훨씬 효율적으로 개발할 수 있다. RestTemplate는 이름에서도 느껴지듯 REST 요청을 하는데 최적화 되어 있는 Http Request Template이라고 생각하면된다. JSON 형태의API를 요청하여 객체로 매핑하거나, 객체를 서버로 전송할 때 객체를 쉽게 JSON 형태로 전송할 수 있는 기능을 가지고 있다. 만약 Spring 컴포넌트 안에 Http Request 요청을 하는데 JSON 타입의 API 요청이 아닐 때는 RestTemplate을 사용할 수 없을까? 만약 그렇다고하면 Spring은 너무 제한적이고 무책임하게 RestTemplate을 설계하였다고 볼 수 있다. 하지만 Spring의 기본 철학은 AOP 이다. 이런 철학은 컴폰넌트간의 의존성이 유연하고 컴포넌트간의 상호작용과 확장성이 자유로운 구조로 모듈을 설계되게 만들었다. RestTemplate 역시 단순히 JSON 형태의 데이터를 처리하는 단순한 모듈이 아니라 일반 Http Request 요청을 처리할 수 있게 설계되었을 뿐만 아니라다 사용자가 직접 기능을 수정하거 확장하여 사용할 수 있게 설계되어 있다. 이렇게 유연한 RestTemplate을 사용하여 REST 서비스가 아닌 경우의 Http Request 요청과 Multipart/Form-data를 처리하는 방법고 MultiValueMapConveter를 사용하여 POJO 객체를 바로 POST 전송할 수 있는 방법을 소개한다.

Continue Reading

Spring에서 RestTemplate을 사용하여 REST 기반 서비스 요청과 테스트하기

서론

우리는 며칠간에 걸쳐 Spring Boot로 Spring 기반 REST 서비스와 템플릿 뷰를 사용하여 Multipart Form data를 사용하기 위한 컨트롤러를 구현하는 방법을 살펴보았다. 또한 컨트롤러를 테스트하기 위해서 MockMvc를 사용하여 짧은 코드로 간단하게 Spring 테스트 프레임워크에서 URL을 요청하여 컨트롤러를 테스트하는 방법도 살펴보았다.

Spring 기반 프로젝트를 진행하면 컴포넌트 내부에서 URL을 요청해야하는 경우가 있다. 이전에는 Apache의 HttpClient 라이브러리를 포함시켜 Http Request를 컴포넌트 내부에서 사용했지만 최근 Spring에서는 Http Request 요청을 간단하게 사용할 수 있도록 SpringTemplate라는 모듈을 포함하고 있다. 이번 포스팅에서는 RestTemplate을 사용하여 Spring 안에서 GET, POST, PUT, PATCH, DELETE REST 요청을 처리하는 방법을 살펴본다.

Continue Reading