ASH84
Software Engineer focused on turning complexity into simplicity. Co-founder at Payhere. Previously Tech Lead of remit team at Banksalad.
Experience
- Head of tech Payhere.Inc, 2024โpresent
- CTO Payhere.Inc, 2020โ2023
- TechLead, Banksalad, 2018โ2020
- Senior Software Engineer Danal, 2014โ2018
Latest Blog Posts
-
May 28, 2013(Java) RSS ํ์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ROME...
-
Mar 02, 2013[ํ๊ธฐ] ์ 13ํ JCO๋ฅผ ๋ค๋ ์์์๋ฐ ๊ฐ๋ฐ์๋ JCO๋ฅผ ๋ค๋ ์์ผ ํ๋๊ฐ? ํ๋ ๋ฌผ์์ ๊ฐ์ง๊ณ ์์๋ค. ์๋ ์ ๋๋ ์ ์ ์๋ฐ ๊ฐ๋ฐ์๊ฐ ์๋์๊ธฐ ๋๋ฌธ์ JCO ๋ฅผ ๊ฐ๋ ๋๋ฃ๋ค์ ๋ฐ๋ผ๋ณด๋ฉด์ ๊ตณ์ด ๊ฐ ํ์๊ฐ ์์๊น ํ๋ ์๊ฐ์ ๊ฐ์ง๊ณ ์์๋ค. Deview ์๋ ๋ค๋ฅด๊ณ ๊ฐ์ธ์ ์ผ๋ก ์๋ฐ๋ผ๋ ์ธ์ด๋ ์ด๋์ ๋ ์์ฑ๋ ์ธ์ด๋ผ๋ ๋๋์ด ๋ค์๋ค. ๋ ์๋ก์ธ๊ฒ ์์๊น ํ๋ ๋๋? ๊ทธ๋ ์ง๋ง ์ฌํด ๋ด๊ฐ ์ฒ์ ์ฐธ๊ฐํ JCO์ ๋๋๊ณผ ๋ด์ฉ์ ์ฐ๋ ค๊ณ ํ๋ค. ์ง๊ทนํ. ์ฃผ๊ด์ ์ธ ์๋ฐ ์ด๋ณด ๊ฐ๋ฐ์์ JCO ํ๊ธฐ๋ผ๋ ์ ์ ์์ง๋ง์๊ธธ.ย ...
-
Feb 19, 2013(Java) Effective Java ์ ๋ฆฌ ํํธ.๋ณ๊ฑฐ๋ ์๋๊ณ Effective ์๋ฐ ์ฝ์ผ๋ฉด์ ๋ช๊ฐ์ง ๋ฉ๋ชจํ ์ฌํญ๋ค ์ ๋ฆฌํ๋ค. ย **[ํญ๋ชฉ45. ์ง์ญ๋ณ์์ ์ ํจ๋ฒ์๋ฅผ ์ต์ํํ์.]** ...
-
Feb 12, 2013(maven) maven phasemaven์์ ๋น๋๋ฅผ ํ๋ค๋ณด๋ฉด goal ์ ์ ๋ ฅํด์ผํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ ๊ทธ๋ฅ package ๋ฅผ ์ ๋ ฅํ๋ฉด jar๋ฅผ ์์ฑํด ์ฃผ๋๊ฒ์ผ๋ก ์๊ฐํด์ ์์ ์ ํ๊ณค ํ๋๋ฐ, maven ํํ์ด์ง ๊ฐ์ ๊ฐ phase์ ๋ํ ๋ด์ฉ์ ๋ฐ์ทํด์๋ค. ๋ช๊ฐ์ง ์ดํด๋ณด๋ฉด package ๋ ๋น์ฐํ compiled code ๋ฅผ ๊ฐ์ง๊ณ jar์ ๊ฐ์ ๋ฐฐํฌํ์์ผ๋ก ๋ง๋ ๋ค๊ณ ๋์ด ์๋ค. install์ ๋ง ๊ทธ๋๋ก ์ค์น์ธ๋ฐ, package ๋ ๊ฒ์ ๋ค๋ฅธ ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ ์๋๋ก (maven)local repos...
-
Feb 08, 2013(Java) ์ฑ๊ธํค + Map์ ์ด์ฉํ ๊ฐ์ฒด๊ด๋ฆฌ....
-
Jan 14, 2013[Java] SortedSet์ ๋ํด์....
-
Jan 12, 2013[Java] StringAppender, StringBuilder ์งญ....
-
Dec 27, 2012[Java] LinkedList, ArrayList์ ๋ญ๊ฐ ๋ค๋ฅธ๊ฐ.ํด๋ฆฐ์ฝ๋๋ฑ์ ์ฑ ์ ๋ณด๋ฉด์,ย ์ธํฐํ์ด์ค์ ๋ง์ถฐ์ ํ๋ก๊ทธ๋๋ฐ ํ๋ผ๋ ์ด์ผ๊ธฐ๋ฅผ ๋ง์ด ๋ค์๊ณ , C#์ ArrayList๊ฐ ์ต์ํด์ ๊ทธ๋ฐ์ง ์ฃผ๋ก ์๋ฐ์์ ์ฌ์ฉํ๋ Collection์ค ํ๋๊ฐ ์๋์ ๊ฐ์ List ์ด๋ค.ย ...
-
Dec 20, 2012Nexus๋ฅผ ์ด์ฉํ ์ฌ๋ด Maven Repository ๋ง๋ค๊ธฐ 1.์์ ์ดํด๋ฆฝ์ค์ maven์ ์ค์นํ๋ ๊ณผ์ ์ ๋ํด์ ์ค๋ช ํ๋๋ฐ, ์ด๋ฒ ์ฅ์๋ ์ฌ๋ด maven Repository๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด์. ์ผ๋จ ์ฌ๋ด Repository๋ฅผ ๊ตฌ์ฑํด์ผ ํ๋ ๊ฐ์ฅ ํฐ ์ด์ ๋ ๋งค๋ฒ ์ฐธ์กฐํ๊ณ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์์ผ ํ๋ ๋ถํธํจ๋ ์๊ฒ ์ง๋ง, ์์งํ ํ์์๊ฒ ๋ ํ์ํ๊ฑด ์ฌ๋ด์์ ๋ง๋ค์ด์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ Repository์ ์ฌ๋ ค๋๊ณ ๋ค๋ฅธ ๋๋ฃ๊ฐ๋ฐ์๋ถ๋ค์ด ์ฝ๊ฒ ์ฐพ์์ ์ธ์ ์๊ฒ ํ๋๊ฒ์ด ๋ ์ค์ํ๋ค.ย ...
-
Dec 19, 2012[Java] StringBuilder delete() ์, ํ์ฌ ๊ธธ์ด ์ฒดํฌํ ๊ฒ.๋๋ฌด ๊ฐ๋จํ๊ฒ์ด๊ธด ํ๋ฐ, ์ต๊ทผ์ ๋ง๋ ์์ค์์ ์ค์๋ฅผ ํ์ ์ด ์์ด์ ์ฒด๋ฒ(?)์ฐจ ์ด๋ ๊ฒ ์ ๋๋ค. ๋ฌด์์ธ๊ฐ ๊ฐ๋ณ ๋ฌธ์์ด ์กฐํฉ์ ์ํด์๋ String ์ด ๋จ์ฐ ํ๋ฌ๋ฆฌ๋ ๊ฒ์ ๋ณดํธ์ ์๋ฐ ๊ฐ๋ฐ์๋ผ๋ฉด ๋ค ์๋ ์ฌ์ค์ผํ ๋ฐ, ๊ทธ๋์ StringBuilder๋ฅผ ์ฌ์ฉํ๋๋ฐ ์ค์ ํ ์ ์๋ ๋ถ๋ถ์ด๋ค. ย ์๋์ ์ฝ๋๋ ์ผํ(,) ๊ธฐ๋ฐ์ ๋ฌธ์์ด์ ๋ง๋ค์ด ๋...
-
Nov 22, 2012[JAVA] Comparable ์ธํฐํ์ด์ค ๊ตฌํํ์๋ Comparable ์ธํฐํ์ด์ค๋ฅผ ์ด์ฉํด์ compareTo ํจ์๋ฅผ ๊ตฌํํ๋ ๊ฒ ๋ณด๋ค๋ ์ฌ์ค Comparator ๋ฅผ ์ด์ฉํด์ ์ ๋ ฌ์ ํ์ฉํ๋ ์ผ์ด์ค๋ฅผ ์์ฃผ ์ฌ์ฉํ์๋ค. (๋ฌผ๋ก ๊ทธ ์์์ ์ด๋ฏธ ๊ตฌํ๋์ด ์๋ ๊ธฐ๋ณธ ํด๋์ค์ compareTo()๋ฅผ ์ฌ์ฉํ๋ค.) ์ฌ๊ธฐ์๋,** Effective Java**ย ํญ๋ชฉ12๋ฒ์ Comparable ์ธํฐํ์ด์ค์ ๊ตฌํ์ ๊ณ ๋ คํ์ ๋ผ๋ ๋ถ๋ถ์ ๋ํด์ ์์ฝํด์ ์ ๋ฆฌํ๊ณ , Watch ํด๋์ค๋ฅผ ํตํด์ ์๊ณ๋ฅผ ๋น๊ตํ๋ compareTo() ํจ์๋ฅผ ๊ตฌ...
-
Aug 16, 2012[JAVA]ํ์ฌ ์ธ์ฝ๋ฉ ์ถ๋ ฅํ๊ธฐ์๋ฐ๋ JVM ์ธํ ์ ํตํด์(์ดํด๋ฆฝ์ค๋ฅผ ํตํด์๋ ๊ฐ๋ฅ) ์ธ์ฝ๋ฉ์ ๋ณ๊ฒฝํ ์ ์๋๋ฐ, ์ฌ์ฉ์๊ฐ JAR๋ฅผ ์คํ์ํฌ๋, JVM ์ธํ ์ ๋ฐ๋ผ์ ์ธ์ฝ๋ฉ์ ๋ค๋ฅด๊ฒ ์ค ๊ฒฝ์ฐ๊ฐ ์๋ค. ๊ทธ๋ด๋, ํ๋ก๊ทธ๋จ ๋ด์์ ํ์ฌ ์ธ์ฝ๋ฉ์ ๊ฐ์ ธ์์ ์ฌ์ฉํด์ผ ํ ๊ฒฝ์ฐ๊ฐ ์๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด ์ธ์ฝ๋ฉ์ ๊ฐ์ ธ์ค๋ฉด ๋๋ค.ย ...
-
Feb 18, 2012[JAVA] Gson ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก JSon ์ด์ฉํ๊ธฐ์ต๊ทผ์ ํ์ฌ์์ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ์ด ๊ฒ์ ์๋๊ณ ํ๋กํ ํ์ ํ์ ํ๋ ๋์ค์์ด๊ฒ์ด ์์ด์ ์๊ฐํ๋ ค๊ณ ํ๋ค. ๋ชฉ์ ์๊ทธ๋ฌ๋ค. ๋ฐ์ดํฐ์์ด์์ฒญ๋ง์๋๋ฐ์๋ฒ์์๊ฐ์ ธ์ค๊ธฐ๋ฒ ์ฐจ๋๊น๊ฒฐ๊ณผ๋ฅผ์บ์ฌํ์๋๋ชฉ์ ์ด์๋ค. ๊ทธ๋ฐ๋ฐ๋ฉ๋ชจ๋ฆฌ์์ฌ๋ ค์ ธ์๋์บ์ฌ๋ฅผ์ฌ์ฉํ์๋์๋ฒ์๋ถ๋ด๋๋๊ณ , ๊ทธ ์ฌ์ฉ๋ ์ญ์ ๋ง๋ง์น ์๋ค๋ ๊ฒฐ๋ก ์์ด๋ฅด๋ ๋ค. ๊ทธ๋์ ์๊ฐํ๊ฒ์ด ํ์ผ์์ ์ฅํ๋๊ฒ ์ด์๋ค. ๋ฌธ์ ๋ ๋ฑ 2๊ฐ์ง์๋ค. ``` 1. ๊ฐ๊ฐ์์ฟผ๋ฆฌ์๋ํด์์ด๋ป๊ฒ์ ์ฅ๋์ด์๋ํ์ผ์๊ณ ์ ํ๊ฒ๊ตฌ๋ณํ ๊ฒ์ธ๊ฐ? 2. ํจ์จ์ ์ธํ์ผ๊ตฌ์กฐ๋๋ฌด์์ผ๊น? ``` 1๋ฒ์๋ํ๋ต์MD5 ํค๋ณํ์ํตํด์ํด๊ฒฐํ๊ณ ์ํ๋ค. ์ฆ, ์ด...
-
Jan 15, 2012[JAVA] ๋จ์ํ ์คํธ๋ฅผ ๋ณด๋ค ์ฝ๊ฒ, JUnit ์ ์ฌ์ฉํ์.๋จ์ ํ ์คํธ๋ฅผ ์ด๋ป๊ฒ ๊ตฌ์ฑํด์ผ ํ ๊น์ ๋ํด์ ์๊ฐํด ๋ณผ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์๋๊ฒ ๊ฐ๋ค. ์ค์ ๋ก ํ์๊ฐ ์ํ ์กฐ์ง์์๋ ์์ง ๋จ์ํ ์คํธ์ ๋ํ ํ์์ฑ์ ์ธ์ง ํ์ง ๋ชปํ๊ฒ์ธ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง, ์๋ฌดํผ ์๋กญ๊ฒ ํ๋กํ ํ์ (Prototype)์ ๊ตฌ์ฑ์ค์ธ ์๋ฐ ๊ธฐ๋ฐ์ ๋ฌธ์ ์ด๋ฏธ์ง ์ถ์ถ ํ๋ก์ ํธ์์๋ ํด๋ฆฐ์ฝ๋์ ๋จ์ํ ์คํธ๋ฅผ ํ์๋ก ํฌํจ์ํค๊ธฐ๋ก ํ์๋ค.ย ...
-
Jan 09, 2012[Sejong] ํ๊ธ์ธ์ง ์ฌ๋ถ ์ฒดํฌ(Java)ํ๊ธ์ธ์ง ์๋์ง๋ฅผ ์ฒดํฌํ๋ ํจ์์ ๋๋ค. ์ ๋ ฅ๋ฐ์ ๊ธ์ ํ๋ํ๋๋ฅผ ์ ๋์ฝ๋ ์์ ํ๊ธ ๋ฒ์์์ ์๋์ง ์ฒดํฌํ๊ณ ๋ถ๋ถ์ ์ผ๋ก ํ๊ธ์ธ์ง, ์ ์ฒด๊ฐ ํ๊ธ์ธ์ง, ์๋๋ฉด ์ ๋ ฅํ ๋ฌธ์์ด์ด ํ๊ธ์ด ์๋์ง๋ฅผ ์ฒดํฌํ๋ ํจ์ ์ ๋๋ค.ย ย ...
-
Nov 30, 2011[JAVA] HashTable ์ ์ด์ฉํ ๋ก์ปฌ์บ์ฌ(LocalCache)...
-
Nov 18, 2011[JAVA] MD5 + ์๋ฆฟ์์ต๊ทผ์ ํด์ฌํ ์ด๋ธ์ ํค ๊ฐ์ ๋ง๋ค๊ธฐ ์ํด์ ์ ๋ ฅ ๋ฌธ์์ด์ ๋ํ MD5๋ฅผ ์ถ์ถํ๋ ์๋ฐ ์์ค๋ฅผ ์ธํฐ๋ท์์ ๊ตฌํ๋๋ฐ, ์ ๋ ฅ ๋ฌธ์์ด์ ๋ฐ๋ผ์ MD5 ๋ก ์ถ์ถ๋๋ ์๋ฆฟ์๊ฐ ๋ฌ๋ผ์ ํด์ฌํ ์ด๋ธ์ ํค ๊ฐ์ผ๋ก ์ฐ๊ธฐ์๋ ์กฐ๊ธ ๋ถํธํ ์ ์ด...