Skip to content

Instantly share code, notes, and snippets.

View ucpwang's full-sized avatar
:octocat:
working

Jacob(You-Hyun Hwang) ucpwang

:octocat:
working
View GitHub Profile
@ucpwang
ucpwang / README.md
Created October 14, 2015 08:46
Spring RestTemplate / multipart request korean parameter value encoding error

Spring RestTemplate / multipart request korean parameter value encoding error

spring:spring-web 3.2.2 에서 FormHttpMessageConverter에서 사용하는 partConverters 중 StringHttpMessageConverter 는 기본 charset이 ISO-8859-1 이다. 이로 인해서 Spring RestTemplate 을 통해서 multipart/form-data 형식으로 요청할 경우 파라미터의 인코딩이 깨지게 된다.

분석을 위해 코드를 열어보자.

RestTemplate 에서 별도 설정 없이 multipart/form-data 형식의 요청을 날리면, FormHttpMessageConverter 을 확장한 AllEncompassingFormHttpMessageConverter 를 통해서 컨버팅되어진다. 이때 AllEncompassingFormHttpMessageConverter 에서는 xml, json 등 타입에 따라 FormHttpMessageConverter.partConverters 외에도 더 필요한 컨버터가 있다면 add해주는 역할만 할뿐 별다른 행위를 하지는 않는다. 문제는 FormHttpMessageConverter 기본 생성자에 있다.

@ucpwang
ucpwang / README.md
Created October 14, 2015 09:15
any parameter object(DTO) convert map

any parameter object(DTO) convert map

private MultiValueMap<String, Object> convertParamDtoToMultiValueMap(Object param) throws IllegalAccessException, ClassNotFoundException {
    String className = null;
    if (param instanceof ApiQnaCreateParamDto) {
        className = "com.your.app.YourParamDto";
    } else if ([case by case]) {
        className = "[case by case]";
    } else {
 // ClassNotFoundException case
@ucpwang
ucpwang / README.md
Last active October 28, 2015 11:27
레드헷 OpenShift 로 rails study 해보기

레드헷 OpenShift 로 rails study 해보기

openshift 가입 및 클라우드 서버환경 구성

@ucpwang
ucpwang / README.md
Last active April 8, 2016 09:47
Mac in Docker Tip > Mac in iTerm2.app with Docker

Mac in Docker Tip

Mac 에서 iTerm2.app 으로 Docker 하기

난 맥에서 터미널이 필요하면 아이텀을 사용한다. 근데 docker 관련 개발을 진행하려면 'Docker Toolbox'로 설치된 'Docker Quickstart Terminal'을 사용해야하는데 iTerm2 버전이 패치되면서 애플스크립트 관련으로 제약이 걸려서인지 Docker Quickstart Terminal 이 정상적으로 작동을 하지 않는다. (잘되는 사람도 있다면, 적어도 난 안되는거다. ㅎ) 왜 그런지 찾는것도 좋은데 사실 귀찮을꺼다. 그래서 준비했다.

일단 맥에서 docker CLI 관련 몇몇 명령어 빼고는 안 먹는다.

@ucpwang
ucpwang / docker_cheat.md
Created April 18, 2016 03:13 — forked from nacyot/docker_cheat.md
도커(Docker) 치트 시트

Docker 치트 시트

한국어 번역(초벌) : nacyot

왜 Docker를 사용해야하는가?

Why Should I Care (For Developers)

"나에게 Docker의 매력은 간단히 격리된 환경을 만들 수 있다는 것과, 그러한 환경을 재사용할 수 있다는 점이다."런타임 환경을 한 번 만들어 패키지로 만들면, 이 패키지를 다른 어떤 머신에서도 다시 사용할 수 있다. 또한 여기서 실행되는 모든 것은 마치 가상머신과 같이 호스트로부터 격리되어있다. 무엇보다도 이런 모든 일들이 빠르고 간단히 가능하다.

@ucpwang
ucpwang / .block
Last active August 18, 2016 06:54 — forked from mbostock/.block
The Gist to Clone All Gists
license: gpl-3.0
@ucpwang
ucpwang / static_server.js
Created September 1, 2016 14:06 — forked from ryanflorence/static_server.js
Node.JS static file web server. Put it in your path to fire up servers in any directory, takes an optional port argument.
var http = require("http"),
url = require("url"),
path = require("path"),
fs = require("fs")
port = process.argv[2] || 8888;
http.createServer(function(request, response) {
var uri = url.parse(request.url).pathname
, filename = path.join(process.cwd(), uri);
@ucpwang
ucpwang / README.md
Last active September 7, 2016 06:46
Spring-boot-CLI 해보기

Spring-boot-CLI 해보기

설치해보기

sdk 커멘드 실행을 위한 sdkman 설치

$ curl -s "https://get.sdkman.io" | bash

spring-boot-cli 다운로드 & 다운로드 후 압축 풀기

@ucpwang
ucpwang / README.md
Last active November 30, 2020 06:13
스프링 부트 > profile 에 대해서 알아보자

스프링 부트 > profile 에 대해서 알아보자

특징

  • OS 환경변수를 이용한 방법 > SPRING_PROFILES_ACTIVE=dev,test와 같이 profile은 복수로 셋팅할 수 있음
  • application.properties, application.yml 등으로 셋팅하는 방법도 있음

스프링 부트 기반으로 개발한 서비스의 profile을 OS 환경변수를 통해 지정하는 방법

OS 환경 변수 SPRING_PROFILES_ACTIVE로 지정

$ export SPRING_PROFILES_ACTIVE=test
@ucpwang
ucpwang / README.md
Last active December 6, 2016 05:08
Docker MySql Local setting > character-set : `utf8mb4` & timezone : `Asia/Seoul`

Docker MySql Local setting > character-set : utf8mb4 & timezone : Asia/Seoul

example Dockerfile

FROM mysql:5.7
MAINTAINER ucpwang <ucpwang@gmail.com>

ENV MYSQL_ROOT_PASSWORD root
ENV MYSQL_DATABASE mydatabase