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
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 March 8, 2019 04:08
git-hook(client-hook)을 이용하여 push 전에 README.md 파일에 목차 넣어서 자동으로 갱신해주기
  • 원격 저장소 루트에 pre-push.js 작성
    • 실제 작업 프로세스
    • 파일 구조 파악해서 계층형 데이터 생성 -> 이걸로 마크다운 생성
    • javascript로 작성되었기 때문에 node.js런타임이 필요함
  • 로컬 저장소 .git/hooks하위에 pre-push 스크립트 파일 작성
    • push 될때 트리거되는 스크립트
    • pre-push.js를 실행하고, git cli로 마무리하는 녀석
  • Atom Editor + git-plus쓰는 나로썬 너무 조으다 :)

작업 결과 화면

@ucpwang
ucpwang / README.md
Created January 31, 2018 08:38
[javascript & java] HMAC값 생성 (sha1, base64)

[javascript & java] HMAC값 생성 (sha1, base64)

javascript

const crypto = require('crypto');

const key = 'secret key';
const data = 'data data data data data data data data data data data';

const hmac = crypto.createHmac('sha1', key);
@ucpwang
ucpwang / README.md
Created January 24, 2018 10:09
UTC기준 RFC822 포멧 시간 문자열 만들기 (java, javascript)

UTC기준 RFC822 포멧 시간. (ddd, DD MMM YYYY HH:mm:ss ZZ)

  1. javascript > moment
var gmtDateRFC822 = moment.utc().format('ddd, DD MMM YYYY HH:mm:ss ZZ');
console.log(gmtDateRFC822)
// Wed, 24 Jan 2018 10:01:13 +0000
  1. java > DateTimeFormat
@ucpwang
ucpwang / var-let-const.md
Created December 14, 2017 10:59 — forked from LeoHeo/var-let-const.md
javascript var, let, const 차이점

var, let, const 차이점은?

  • varfunction-scoped이고, let, constblock-scoped입니다.

  • function-scopedblock-scoped가 무슨말이냐?

var(function-scoped)

jsfiddle 참고주소

@ucpwang
ucpwang / README.md
Last active December 13, 2017 06:15
javascript GUID

javascript GUID

const makeGUID = () => {
  const s4 = () => Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
  return `${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;
}
> makeGUID();
< "3e41f370-a0ce-b12b-6b88-eb0e88ff36ad"
@ucpwang
ucpwang / README.md
Last active November 27, 2017 08:13
오픈소스 `plantuml`을 이용하여 다이어그램을 그려보자

오픈소스 plantuml을 이용하여 다이어그램을 그려보자

우선 MAC에서 plantuml 패키지를 설치

$ brew install plantuml

plantuml의 workspace로 사용할 폴더를 생성하자

$ mkdir ~/workspace/plantuml
@ucpwang
ucpwang / multiple_ssh_setting.md
Created November 24, 2017 04:27 — forked from jexchan/multiple_ssh_setting.md
Multiple SSH keys for different github accounts

Multiple SSH Keys settings for different github account

create different public key

create different ssh key according the article Mac Set-Up Git

$ ssh-keygen -t rsa -C "your_email@youremail.com"
@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 기본 생성자에 있다.