728x90
반응형

전체 글 882

세상은 참으로 다양한 사람이 산다...

인종 차별이나 인격에 대한 비하 발언도 아니고....단지 팩트는...사람 간에 똑똑함과 미련함의 차이가 생각보다 크게 난다는 것이다.이미 알고 있는 사실이고...많이 느껴 왔지만...오늘 새삼 더 느끼게 된다. 취업이 힘들다 말하지 말고...본인이 왜 취업이 안되는 것인지 돌아보고 조금 더 노력해 보자... 취업이 잘 되는 사람들이 본인들보다 왜 더 잘 되는 것인지...얼마나 더 많이 노력하는 것인지...그래서 나보다 얼마나 무엇을 더 알고 있는지 돌아보자. 그 갭이 생각보다 매우 크다는 것을 깨닫게 될 것이고..그 갭을 채우려면 지금보다 더욱더 치열하게 노력하지 않은 이상...그들과 같은 레벨로 올라서기에는 한계가 있다는 것을 알게 될 것이다.

파라미터에 따라 특정 변수에 값 Set 하기

Java로 Entity를 만들고 멤버 변수로 1 ~ 31일을 만들어 둔 다음 넘오는 날짜에 따라 특정 날짜 변수에 값을 담는 작업을 하다 알게 된 내용이다. 역시 새롭게 알게 된 내용이라 정리 차원으로 올린다. MontTimeTable Entity는 아래와 같다. @Entity @EntityListeners(value = {AuditingEntityListener.class}) @Data @Table(name = "month_timetable") public class MonthTimetable { @Id @Column @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column private Integer policy_inst..

Java/Spring 2018.10.24

JPA QueryDsl 에서 Group By Count 값 가져오기

JPA, QueryDsl 쓰기 참 힘들다. 그래도 하나 하나 어렵게 해 나가고 있는데 오늘은 또 Group By한 Count 개수를 반환하는 것을 만든 삽질 내용을 올린다. 리파지토리 단 소스는 아래와 같다. @Override public QueryResults getBusinessTotalCount() { QUser user = QUser.user; return from(user).where(user.userType.eq(UserType.B2B)).groupBy(user.platform).select(user.platform, user.platform.count()).fetchResults(); } 그리고 가지고 온 내용을 가지고 맵으로 이쁘게 정렬해서 반환해 주면 된다. public Map getBu..

Java/Spring 2018.09.28

RestTemplate에서 PUT으로 파라미터 전송하기

http로 값을 전송 하면서 보통 GET, POST를 많이 쓰고 PUT 으로는 전송을 잘 안하게 되는데, PUT으로 받아야 하는 API를 만들다가 값이 잘 전송이 안된다는 것을 알게 되었고, 이럴 때 어떻게 값을 전송해야 하는지 삽질의 결과물을 남겨 둔다. 보통 postman을 사용하여 값을 전송하는데 POST일 경우에는 body의 Typ을 form-data 또는 raw를 하게 된다. PUT일 경우에도 form-data 로 전송하니 값을 받을 수 없어서 이리 저리 확인해 보니 PUT일 경우에는 다음과 같이 전송 해야 한다. 이와 마찬가지로 Spring에서 RestTemplate를 이용하여 PUT 파라미터를 전송하게 될 경우 아래와 같이 하여야 한다. MultiValueMap body = new Linke..

Java/Spring 2018.09.13

Jackson ObjectMapper에서 json data를 Map이 아니라 Object로 받기

API 통신을 하면 보통 데이터 외에 Code나 Message가 같이 오고, 필요한 데이터는 한번 가공해서 받아야 한다. 그런데 이렇게 받게 되는 경우 안의 데이터가 무조건 HashMap으로 받아지게 된다. 이런 경우에 원하는 Object로 받기 위해 제네릭을 사용해 보았지만 역시 맵으로만 받아지게 되어서 구글링을 통해 해결하였다. 다음과 같은 방법으로 사용하면 된다. import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.web.client.RestTemplate; import com.fasterxml.jackson.core.type.TypeReference; String response = restTemplate.p..

Java/Spring 2018.09.12

캐릭터셋에 대한 고민...

회사에서 sms 발송 시 특정 문자가 깨져 나가는 문제가 발생...sms 발송 시스템은 "세X 텔레X"을 사용 하는데 특정 DB에 값을 넣어 두면 jar로 실행 되는 데몬이 해당 DB 값을 읽어서 발송 하는 방식임.DB에 값이 들어갈 때까지 UTF-8 형식이고 깨지지 않고 들어가는데, 실제 폰에서 받아 보기만 하면 깨지는 상황.깨지는 문자는 "–" 임. 일반 키보드에서 치는 "-"와는 다르고, 워드나 한글 등에서 copy & paste 한 것으로 보임.실제 폰에서 받아 볼 경우 해당 문자는 "?"으로 치환 되어 옴. 해당 현상을 재현 하기 위해 php에서 테스트 해 보았으나 재현 안되고Java에서는 아래와 같은 방식으로 재현 됨. 콘솔에 찍힌 결과 값은 아래와 같음.euckrString : 201? 21..

Develop! 2018.03.21

[삽질] stomp, sockjs를 이용하여 websocket 연결 시 info 가 404로 나오는 경우

WebSocket을 이용하여 특정 내용을 처리하는 로직을 개발 중에 삽질한 내용을 정리 차원에서 올린다. 클라이언트는 SockJS와 stompClient를 이용하였고, 서버는 Spring에서 기본적으로 정리한 내용을 크게 바꾸지 않은 상태로 코딩 하였다. 전반적으로 코드의 내용은 https://spring.io/guides/gs/messaging-stomp-websocket/ 에서 나오는 내용과 거의 다르지 않다. 다만 해당 내용을 코딩 중에 sockjs에서 websocket 서버의 "endpoint/info?timestamp" 와 같은 주소를 찾지 못하는 경우가 발생 했다. 이로 인해 서버의 특정 모듈 Dependency가 잘못 되던가, 알지 못하는 문제로 인해 발생 하는 것인줄 알고 프로젝트를 Spr..

Java/Spring 2018.03.13

Ajax form data를 Query String으로 전달 시 % 값이 사라지는 문제

특정 폼에 %가 들어가는 경우 DB에 저장이 안되는 이슈가 발생하여 수정하는 중에 삽질하게 된 내용을 정리 차원에서 기록한다. 대부분 %의 문제는 DB에 SQL Injection이나 XSS 등의 문제를 회피하기 위해 발생하는 현상이라서 DAO 처리 과정 중에 문제가 발생 한 것이 아닐까란 추측으로 디버깅을 해 보았으나 SQL Prepare가 잘 되어 있었다. 고로 DAO 상에서 발생하는 문제는 아니라는 결론... 그럼 서버 단의 Filter에서 파라미터를 잘라 먹는 것은 아닐까란 생각으로 이미 만들어진 보안 Filter를 찾아서 몇 시간 삽질 했으나 이미 Filter에 값이 들어오기 전 부터 없어진 다는 것을 확인. 그럼 스크립트의 문제인 것인가?란 의문을 가지고 개발자 도구에서 console.log 로..

Java8의 for, stream foreach, parallelStream foreach 간단 속도 테스트

Java8에 들어간 stream, parallelStream이 좋다는 이야기만 듣고 대충 개념만 이해한 상태에서... "그냥 좋겠지"란생각으로 쓰려다... 간단하게 테스트 해보고 정리 ^^ 참고로 로컬 PC에서 돌렸으며, 로컬 PC의 물리 cpu 코어 개수는 4개이다. import java.util.ArrayList; import java.util.List; public class StreamTest { public static void main(String[] args) throws InterruptedException { List intList = new ArrayList(); // 테스트할 loop의 개수... for (int i = 0; i { if(integer % 1000 == 0) { Sys..

Java 2017.02.14

원격지의 이미지 파일을 읽어서 원하는 곳에 업로드 하기

보통 개발 시에 파일 업로드를 하려 하면 html form에서 multipart/form-data로 파일을 선택해서 업로드 하고, 이를 서버 단에서 받아 처리를 하게 된다. 하지만 이런 방법이 아니라 원격지의 이미지 파일을 읽어온 후 필요 시 리사이지, 그리고 나서 다시 다른 곳에 있는 서버로 파일을 업로드 하는 기능이 필요해 개발을 하다 보니, 많이 사용되는 방법이 아니기에 정리해 둔다. import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.IOException; import java.net.URL; import java.nio.file.Files; impor..

Java 2017.02.09

코딩 하면서 유용한 Tool Site

코딩하면서 유용하게 사용하고 있는 사이트들이 몇 개 있는데... 자주 사용하다 보니... 그냥 이렇게 정리해 두고 필요할 때 끄집어 내서 사용하면 좋겠다 싶어 정리 ^^ 순서는 중요도랑 아무 상관 없이... 그냥... 1. Json online Editor http://www.jsoneditoronline.org/ JSON Editor Online - view, edit and format JSON online Ooops! Looks like you opened the website of jsoneditoronline having the url prefixed with www, whilst the official url doesn't have this prefix. You will be redirecte..

Develop!/etc 2017.01.24

잡설...

요즘 주변에서 일어나는 일들을 보면서 드는 생각들을 적어본다.정리된 생각이 아니니... 주저리 주저리 잡설이 될 듯 싶다. * 개발을 잘 한다는 의미는 무엇일까? 한 쪽 사람은 다른 사람을 개발 못한다고 욕하고, 다른 쪽에서는 이 사람을 개발 못한다고 욕한다.요즘 드는 생각으로는 뭐가 개발을 잘하는 것이고, 뭐가 못하는 것인지... 이제 잘 모르겠다는...예전에는 뭔가 명확한 원칙, 기똥찬 코딩 실력...여러가지 어려운 전문용어...새로운 개념 도입... 깔끔한 정리 등등뭔가 개발 잘하는 것에 따라오는 수식어들이 있었는데...상황에 따라, 권력을 쥐고 있는 사람에 따라 관점이 달라지듯... 개발을 잘 하는 지의 여부도 달라지는 현상을 본다. 그냥 정확하게 알게 된 결론은...서로 잘난척을 할 뿐...뭐가..

바이크의 꿈은 날라가고...

야마하 mt-03 타고 싶은데...배기량 때문에 2종 소형이 필요해서... 학원을 알아 봤는데...마나님이 안된다고 하셔서 야마하 mt-03은 꿈을 버리게 되었습니다. 그래서 좀 배기량 작은 스쿠터는 어떨까 하고 검색하다가 우연찮게... 이뻐 보이는 스쿠터가 있어서... http://storefarm.naver.com/lsl19690/products/485629786 요놈 ㅎㅎ사고 싶어 마나님에게 링크를 보냈더니...단박에 거절 ㅠㅠ ( 저 죽으면 어떻게 가족이 먹고 사냐고... 바퀴 2개 짜리는 안된다네요 ㅠㅠ) 그냥 오래된 구아방이나 몰고 다녀야 겠네요 ㅠㅠ

인생이야기 2016.11.16

사회 생활 잘 한다는 말의 의미는...

얍삽하다는 의미인 것 같다...그런 사람들이 알아서 먼저 살길 찾아가는 것 같고... 그러다 보면 가만히 있는 사람이 쓰레기 청소 다 하고... 피해 보는 것 같다. 알아서 살길 찾아 가는 것 까지야 뭐라 안하는데...가기 전까지 왜 이리 잘난척 다하면서, 조직에 혼신을 다 바칠 것처럼 하면서...이제와서 나 몰라라 하는거냐 -.-;; 그렇게 살지마라...

HTML5 Canvas를 이용한 브라우저에서 이미지 용량 줄이기

이 역시 티몬 구매후기에서 이미지 업로드와 관련된 기능을 적용하면서 나온 내용을 정리 차원에서 적어 둡니다. 구매후기 작성 시 이미지를 선택해서 업로드를 하게 되는데, 기존에는 이미지의 사이즈를 제한하는 기능이 있었고 이로 인해 이미지 제한에 걸려 이미지를 업로드 하지 못하거나, 업로드 된 원본 이미지도 용량이 너무 큰 문제가 있었습니다. (장당 3MB) 아무런 제약 없이 이용자는 이미지를 마음껏 올릴 수 있으려면 이미지 리사이즈가 필요한데, 서버단에서 용량 리사이징을 하게 되면 아까운 네트웍 비용이 들어가게 되므로 클라이언트 단에서 용량을 줄일 필요가 있었습니다. 그래서 사용하게 된 것이 HTML5의 Canvas 기능이죠. 물론 이전에 HTML5를 제대로 사용해 본 적이 없어서... 모든 기능은 최고의..

이미지 파일 업로드 오류 수정 기록...

구매후기 이미지 업로드에서 오류가 나고 있어서 해당 내용을 검토 중에 알게 된 내용을 정리합니다. 기본적으로 아래와 같은 방식으로 업로드가 되고 있습니다. 브라우저 -> php -> Java 그런데 문제는 어느 한쪽의 문제가 아니라 php, Java 둘다 문제가 발생... 그리고 문제의 원인은 둘다 Version Up이였습니다. 1. 먼저 Java Error Message가 "Required MultipartFile parameter 'file' is not present" 라고 발생. 구글링 하니 http://stackoverflow.com/questions/25830503/spring-mvc-http-status-400-required-multipartfile-parameter-file-is-not-..

Java/Spring 2016.11.08

Spring Batch(스프링 배치)에서 작업 시간이 길어지는 경우

Spring Batch를 그닦 많이 써본 경험이 없지만, 특정 요구 사항이 있어서 개발하게 되었습니다.작업을 하면서 겪은 오류를 어떻게 해결 했는지 History 및 Backup을 위해 적어 둡니다. 보통 배치는 Reader와 Writer로 구분합니다.특정 정보를 Reader에서 읽어 들여서 필요한 내용을 가공하고 Writer에서 필요한 행동을 합니다. 그런데 Reader에서 정보를 읽어 들이고 가공하는 시간이 오래 걸리면서 Writer에서 DB Connection을 못 찾게 되고, Writer 작업을 수행하지 못하게 되는 경우가 발생했습니다. 구글링을 한 결과 "autoReconnect 값을 true로 해라", "validationQuery를 날려라" 등등이 나왔지만 유효하지 않은 해결책이였습니다. 결..

Java/Spring 2016.10.27

PHP curl로 파일 전송할 때 mime type 같이 전송하기

필요에 의해 html -> php -> java api로 파일을 전송해야 할 일이 생겼다. Java Api는 UI에서 바로 사용하면 안되는 상태라서 php를 거쳐 가야 하는데 html에서 올린 파일을 Java API로 전달 하는 과정이 생각보다 쉽지 않아 정리 차원에서 글을 남긴다. Html에서 php로 파일을 올리게 되면 $_FILES 라는 전역변수 안에 정보가 담기고, 실제 파일은 php.ini에서 지정한 임시 디렉토리에 저장된다. 해당 경로는 $_FILES['업로드한 html form name']['tmp_name'] 에 저장되어 있으며, 해당 파일을 다시 Java API 쪽으로 넘겨 주면 된다. 넘겨주는 방법은 curl을 사용하면 된다. 다음과 같은 방법으로 하면 된다. $headers = arr..

Develop!/php 2016.05.23

List에서 특정 요소 제거하기

List에서 불필요한 item을 제거하기 위해 loop를 돌리게 되면 제거 후 size가 맞지 않는 일로 인해 null point exception을 만나기가 쉽다. 이럴 경우 제대로 된 방법이 무엇인지는 모르지만... 실제로 돌려보고 Exception이 나지 않은 방법을 찾아 정리 차원에서 남겨 둔다. 검색해서 참고한 URL은 https://stackoverflow.com/questions/17279519/removing-items-from-list-in-java/17279565#17279565?newreg=0dee1db24aaa4154a0cebdc173ed5aeb List toRemove = new ArrayList(); for(Object a: list){ if(a.getXXX().equalsIgn..

Java/Etc 2016.02.11

php의 람다식, 가변 함수

오랜만에 php 코드를 들여다 볼 일이 생겼는데, 알지 못할만한 소스코드들이 있어 헤메다가 정리 차원에서 적어둔다. 1. php의 람다식. http://php.net/manual/kr/function.array-walk.php array_walk($data, function(&$value, $key, $joinUsing) { $value = $key . $joinUsing . $value; }, $glue); array_walk의 2번째 인자값을 function 변수로 넘길 수도 있지만 위에처럼 람다식으로 그냥 적어버릴 수 있다. 안드로이드에서 Callback 함수로 람다식으로 적는 경우가 많은데, 그런식으로 작성하나 보다. 오랜만에 php 하니 새롭다 ^^;; 2. 가변함수 이런말 첨 들어보는데, 위의..

Develop!/php 2015.08.20

MySQL의 Float, Double에서 Length와 Decimal이 의미하는 것...

위도와 경도를 표기하기 위해서 DB Column을 만드는 중 알게 된 내용을 정리해 본다.정확한 내용이 아닐 수도 있으니 참고 사항으로만 보길... MySQL에서 float, double 타입을 Create할 때 float(length, decimals) 와 같은 형식으로 만든다.여기서 length와 decimal이 의미하는 내용이 정확히 무엇인지 알기 위해 구글링을 했지만, 매뉴얼에나 나올법한 알아듣지 못할 소리를 번역기로 돌린 듯한 글만 있... 그래서 좀더 검색해 보니 얻어 걸린 글에서 아래와 같은 내용이 보였다. https://dev.mysql.com/doc/refman/5.0/en/floating-point-types.html M(length)는 전체 길이 즉 정수 부분과 소수 부분을 합친 길이..

Develop!/MySQL 2015.06.02

바코드 인식기 만들기

급하게 바코드 인식 관련 프로그램을 만들다 보니 오픈소스를 검색하게 되었고 Google에서 제작한 zxing 이란 것을 발견하게 되었습니다. (GitHub : https://github.com/zxing/zxing) 해당 코드와 관련된 포스팅들이 여럿 나왔지만 다 조금 씩 부족한 부분들이 있어서 정리 차원에서 올립니다. 물론 제가 올린 내용도 부족한 부분이 많습니다. 1. 외부 앱을 이용한 방법 이미 외부 앱을 이용해서 구동하는 방법은 잘 정리된 곳이 있습니다. 관련 포스팅은 http://code.tutsplus.com/tutorials/android-sdk-create-a-barcode-reader--mobile-17162 를 참고하시면 됩니다. 간단하게 정리하자면 Github에서 다운로드 받은 소스 ..

Java/Android 2015.05.13

체리 웨스트 게이트 터보차져 수리 및 eni 0W-30 오일 교환

오일전문 커뮤니티(http://cafe.naver.com/redzonekr) 에서 복돌님이 주구장창 이야기 하셨던 엄청난 반응을 보여준다는 eni 0W-30으로 오일을 교환하고 왔습니다.언제나 그렇듯이 오일은 '오일스마트 수원점'에서 했구요. (평가 봐 보세요 ㅎㅎ 장난 아닙니다 ^^)오일 교환 전에 스포텁 4년차 정기 정검 받으러 '기아자동차 수원 서비스센터' 가야 했기에 먼저 서비스 센터에 입고했습니다.접수 받아 주시는 분이 정기 정검 말고 특이점 이야기 하라고 하길래, 와이프가 주행 중 기어를 R로 놓는 순간 시동이 2번 꺼진 적이 있어서 그 이야기를 했습니다.접수 완료 후 미케닉이 시동 꺼질 당시의 상황을 물어보았지만... 제가 있을 때 꺼진게 아니라 와이프가 있을 때 꺼진거라서 정확한 설명을 하..

MySQL의 zero date("0000-00-00 00:00:00") 값이 Date 값으로 넘어오지 않는 경우

MySQL에 DateTime 필드에 값이 없을 경우 기본 값으로 "0000-00-00 00:00:00" 들어가는 경우가 있다. 이럴 경우 쿼리해 온 값이 Java의 Model 객체에 Setter로 값을 넣는 과정에서 에러가 발생한다. 에러 메시지는 다음과 같다. "Cannot convert value '0000-00-00 00:00:00' from column 4 to TIMESTAMP" 뭐 '0000-00-00 00:00:00' 값은 timestamp 값으로 바꿀 수 없다는 메시지 같은데... 이럴 경우 어떻게 해결해야 하나 고민하다가 구글링을 통해 알게 된 내용을 정리한다. 보통 Model 객체의 Setter를 아래와 같이 작성하게 된다. setter에서 Date 객체로 받아야 하는데 값을 넘겨줄 수..

Java 2015.04.06

이클립스에서 jquery.min.js 파일의 오류 제거하기

이클립스 사용하다 보면 jquery.min 파일에서 "Missing semicolon" 이라는 오류가 뜨게 된다.이럴 경우 다음과 같은 방법으로 예외 처리를 하게 되면 된다. 출처 : http://metalbird.tistory.com/59 ============================================================================================= query min.js 의 경우 이상없이 작동하나 에러가 표시되게 된다. 이게 싫어서 일반 jquery*.js로 쓰기도 했으나 간단하게 해결할수 있는 방법이 있어서 메모한다. 에러 예외처리에 추가하는것이다. Project > Properties > JavaScript > Include Path > 아래..

Spring에서 MessageUtil 사용하기

다국어 사용을 위해서 그동안 Struts2 기반 MessageUtil만 사용하다가 Spring 기반으로 변경하기 위해 구글링, 작업한 내용을 정리 차원에서 올립니다. 1. applicationContext.xml에 다음 내용을 추가 /WEB-INF/messages/messages 2. MessageUtil import java.util.Locale; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.springframework.context.support.MessageSourceAccessor; import org.springframework.web.context.reques..

Java/Spring 2015.02.24

메소드 파라미터(parameter) 및 어노테이션(Annotation) 정리

출처 : http://warmz.tistory.com/727 1. HttpServletRequest, HttpServletResponse 2. HttpSession 3. Local - java.util.Locale 지역 정보 4. InputStream, Reader - HttpServletRequest의 getInputStream(), Reader 5. OutputStream, Writer - HttpServletResponse의 getOutputStream(), Writer - 서블릿 형태로 만들때 사용한다. 6. @PathVariable - @RequestMapping의 URL {} 부분의 패스 변수를 받는다. 만약 타입이 틀린 값이 들어오면 HTTP 400 - Bad Request 가 전달 된다.?..

Java/Spring 2015.02.24

[Redis] redis 정리

1. overcommit_memory 값 변경 https://charsyam.wordpress.com/2013/01/24/%EC%9E%85-%EA%B0%9C%EB%B0%9C-redis-vm-overcommit_memory-%EC%9D%84-%EC%95%84%EC%8B%9C%EB%82%98%EC%9A%94/#comment-1256 위 포스트를 보다가 overcommit_memory 값은 어디에 셋팅되어 있고, 어떻게 변경하는 것인지 궁금해서 구글링.아래와 같은 포스트 찾음. http://redis.io/topics/faq 현재 셋팅 된 값은 /proc/sys/vm/overcommit_memory 에 있음. http://redis.io/topics/admin 값 셋팅은 /etc/sysctl.conf 안에 v..

Server/Etc 2014.12.01

콘솔에서 특정 파일명 또는 특정 단어가 들어간 파일 찾기

오랜 기간 콘솔 작업을 안하다가 다시 콘솔에서 작업할 일이 생겼는데...그동안 잘 사용해 오던 명령어들이 생각이 안나서 구글링... 이왕 찾게 된 김에 정리해 둘 겸 적어 둡니다.필요하신 분들은 사용해 보세요 ㅎㅎ 1. 해당 파일 안에 특정 문구가 들어간 파일 찾기 (하위 디렉토리 포함) grep -rl "원하는 단어" pathex) [user@server redis]$ grep -rl "sysctl.conf" ././src/redis-server./src/redis.c./src/redis-sentinel./src/redis.o 요즘 redis를 보고 있는데 sysctl.conf라는 단어가 들어간 파일을 찾을 경우 위와 같이 하면 된다.위 내용은 src/redis-server 라는 파일 안에 sysctl..

Server/Shell 2014.12.01
728x90
반응형