개발2015. 2. 7. 11:06
JSON으로 데이터를 만들때 주의해야 할 점..

[{
"title" : "JSON File read Example 1",
"subTitle" : "JSON 파일 읽어 들이기 예제",
"filePath" : "aaaa",
"fileNm" : "aaaaa",
"cardCount" : "4",
"pubShortUrl" : "http://jeonjin.tistory.com"
},
{
"title" : "JSON File read Example 2",
"subTitle" : "JSON 파일 읽어 들이기 예제",
"filePath" : "bbbb",
"fileNm" : "bbbbbb",
"cardCount" : "10",
"pubShortUrl" : "http://jeonjin.tistory.com"
},
{
"title" : "JSON File read Example 3",
"subTitle" : "JSON 파일 읽어 들이기 예제",
"filePath" : "cccc",
"fileNm" : "ccccc",
"cardCount" : "6",
"pubShortUrl" : "http://jeonjin.tistory.com"
}]


JSON은 데이터를 표현 할때 key와 Value로 표현을 하는데 key값에 "가 없으면 제대로 표현되지 않는다.

너무 기본적인건가..근데 난 이거때문에 30분을 삽질했네..ㅋㅋㅋ


Posted by Z700zZz
JavaScript2015. 2. 6. 09:38

TextInput에서 글자수 입력 제한을 받는 방법은 Input의 maxlength를 이용하는 방법이 있다.


<input id="title" placeholder="" type="text" maxlength="50">


위와 같은 방법으로 글자수 입력 제한을 둘수가 있는데..

실제로 사용해 보면 영문이나 숫자는 maxlength에 입력된 길이 대로 입력이 제한 되는것을 볼수 있지만..

한글은 그렇지 않은것을 볼수가 있다.


<input id="title" class="form-control" placeholder="" type="text" maxlength="50" onblur="inputLengthCheck(this);">


function inputLengthCheck(eventInput){

var inputText = $(eventInput).val();

var inputMaxLength = $(eventInput).prop("maxlength");

var j = 0;

var count = 0;

for(var i = 0;i < inputText.length;i++) { 

val = escape(inputText.charAt(i)).length; 

if(val == 6){

j++;

}

j++;

if(j <= inputMaxLength){

count++;

}

}

if(j > inputMaxLength){

$(eventInput).val(inputText.substr(0, count));

}

}


그래서 만든 코드..

한글일 경우 길이를 2를 더하고 그외의 문자일 경우 1을 더해서 실질적인 길이를 반환해준다.

onblur에 준 이유는 영문이나 숫자는 입력 될때마다 길이를 체크해 정해진 길이 이상으로 입력이 될때 바로바로 체크가 가능하지만..한글의 경우 입력 완료후 엔터를 치거나 스페이스바를 쳐야만 확인이 가능하다. 그래서 Input에서 포커스가 빠져 나갈때 길이 확인을 해 정해진 길이만큼만 놔두고 나머지를 잘라내는 방법을 사용했다.

Posted by Z700zZz
자전거 생활2015. 2. 4. 21:43

영하의 날씨..영종도 라이딩..

그래..영종도 투어라 하자..차에 자전거 실어서 섬에가 라이딩 했으니 투어라 해야지..

얼마만의 투어인가..





사진으로만 보면 참 날씨가 좋았고 봄과 같은 느낌이 든다.

하지만 실제로는 바람도 불었고 많이 추웠다.





전날 타이어 교체한 캐년..

프로간지..





휠바꾸고 브레이크패드 갈기 귀찮아 로라 타던 세팅 그대로 타고 나왔다.

정말 로라탈때의 세팅이라 큐알도 로라용 큐알..





새로운 거치대인 모르사와 기어 상태를 나타내주는 뭐라고 해야하나..아무튼 모니터..





달리기전 준비..





달리기전 트랜스퍼 자켓은 벗고..

몸상태가 그리 좋은게 아니라 카메라고 뭐고 다 놓고 라이딩을 했다.





호텔에가서 몸좀 녹이고..





카페에서 메뉴를 고른뒤..





핫초코..

알아서 리필도 해주고 말이양..





여의도로 와서 밥먹고 다같이 빠이빠이..

전날 정장입고 싸돌아 다녔더니 몸 상태가 좋지 못했다.

라이딩 당일날 아침에 일어나서도 좋지 않아 라이딩을 가야하나 말아야하나 고민고민 했지만..

야외에서 라이딩 이때 아니면 언제하나란 생각으로 일어나 나가 추운데서 자전거를 탔더니..

결과는 독감..

월요일 죽다살아나 병원갔다왔더니 이제는 살만하다.

컨디션 좋지 않을땐 쉬는걸로..

'자전거 생활' 카테고리의 다른 글

2015년 03월 08일 이틀연속 북악..  (0) 2015.03.09
RIDEA PowerRing 52/36T W2T..  (0) 2015.03.03
RIDEA Powering W2T 52/36..  (0) 2015.01.22
클릿 장착 및 자전거 세팅 수정..  (0) 2015.01.18
GIRO Factor ACC..  (0) 2015.01.14
Posted by Z700zZz
日常2015. 1. 30. 22:28

금요일이라 퇴근을 일찍했다.

퇴근하며 시청쪽에 근무하는 친척동생에게 연락해 저녁약속을 잡은 후 소공동으로 향하던 길의 야경..





점점 해가 길어짐이 느껴진다.










강남 본사로 출근을 하다 광화문에서 진행중인 프로젝트 지원때문에 광화문에 출근한지 2주정도..

출퇴근이 짧아지고 널널해서 너무 좋다.

게다가 사무실안에 몇명있지 않은 상황이다보니 상당히 쾌적한 환경..

2월말까지인데 프로젝트가 잘 마무리 되었으면 하는 바람이 있다.


쿨픽스를 산지 얼마나 됐지..

충분히 만족할 만한 결과물을 안겨준다.

고감도 저노이즈도 똑딱이 치고는 상당한 수준이고 사진의 질 자체가 다름을 느낀다.

DSLR을 한대 더 들이면 들였지 추가로 똑딱이를 들인다거나 기변을 하지는 않을 것 같다.

Posted by Z700zZz
日常2015. 1. 29. 22:08

그 동안의 지름 신고..





주중에 이것저것 질러 놧더니 한꺼번에 택배가 세개나 왔다.

설레게 하는 택배 상자..





포스 11-28 카셋인데..

이걸 보내준 형의 센스..라파 브레베 저지 봉지에 담아줬네..감성이 넘치네..





이 카셋이 다시 나에게로 오다니..ㅋ

원주인분이 새거로 구매를 하고 그뒤에 나한테 왔다가 다시 다른분한테 갔다가 다시 나에게로.





브롬톤의 안장을 바꿔줘야지 바꿔줘야지 라고 생각을 그동안 했었는데 드디어 바꾸게 되었다.

브롬톤에는 브룩스가 제맛이지..!!

하지만 다른 안장들은 너무 클래식하고 가격이 비싸고..후보로 올려놓은게 캠비움이었는데..

싸게 나와서 겟!!

타보니 승차감또한 맘에든다.

사실 브롬톤 순정 안장이 너무 쓰레기였다.






그동안 일상복을 사지않아 몇해전에 입던 후드티랑 바지를 입다보니..

티셔츠는 후줄근하고..바지는 낡아서 가랑이가 터진게 세벌정도..

질렀는데 만족한다..바지는 화면에서 보던것 보다는 밝아서 지금 입으면 좀 추워보여 가끔입고 겨울 이외에나 입어야 할듯함..





요즘 저녁이 있는 삶을 살다보니 로라도 못타는 날에 새로온 포스 카셋도 달아보고..





2년간 만키로 가까이 탄 펄레원의 타이어도 갈아줬다..

그렇게 좋다고 극찬하는 4000성..

근데 내가볼땐 이가격대에 괜찮은 타이어는 많은데 왜 이 타이어를 극찬하는거지??

다들 극찬하니 내가 반감을 갖는건가..





11월 호명산 라이딩때 빵꾸가 난것 같아 실런트를 나름 조금 붓는다고 부었는데..

림에 엄청나게 굳어있었다.

다음부터는 조그만 넣는걸로..





아직 나가서 타보지 않아 타이어의 성능이 어떤지는 모르겠다.

과연 어떤 성능을 내줄지 궁금하긴하다.


역시 스트레스엔 지름이 최고인듯 하다..

'日常' 카테고리의 다른 글

2015년 02월 08일 주말..  (0) 2015.02.09
2015년 01월 30일 퇴근..  (0) 2015.01.30
2015년 01월 18일 한주간의 일상..  (0) 2015.01.18
2015년 01월 11일 한주의 일상..  (0) 2015.01.14
2015년 01월 04일 일상..  (0) 2015.01.05
Posted by Z700zZz
개발2015. 1. 28. 18:22

프로젝트를 진행하다 웹에디터를 이용하여 글을 작성하는 부분을 개발하고 있었다.

그러다 고객의 요구가 글을 작성하다가 동영상 링크를 넣으면 글에 동영상이 표현 되도록 해달라는 요구가 있었다.

평소에 네이버 카페나 블로그에 글을 쓸때 글내용에 동영상을 노출 되도록 하려면 해당 동영상의 공유를 눌러 embed태그를 복사해서 넣는게 일반적이라 생각했는데..대체 왜이런 요구를 했을까..

워드프로레스에 가서 유투브나 비메오의 URL을 붙여 넣고 글을 작성하니 거짓말처럼 동영상이 붙어 나오는게 아닌가..

소스를 들여다보니 oEmbed란게 나오고 이걸 검색하니 여러 결과가 검색 되었다.

우선 해당 동영상이나 게시물의 고유ID를 각 사이트(유투브, 플리커, 비메오 등등)에서 제공하는 oEmbed URL에 요청을 하게 되면 결과 값으로 JSON이나 XML의 형태로 결과값을 내려주게 된다.


https://www.flickr.com/services/oembed?url=http%3A//flickr.com/photos/bees/2362225867/


예로 위의 URL을 요청하게 되면.


<oembed>
<type>photo</type>
<title>Bacon Lollys</title>
<author_name>‮‭‬bees‬</author_name>
<author_url>https://www.flickr.com/photos/bees/</author_url>
<width>1024</width>
<height>768</height>
<url>
https://farm4.staticflickr.com/3040/2362225867_4a87ab8baf_b.jpg
</url>
<web_page>https://www.flickr.com/photos/bees/2362225867/</web_page>
<thumbnail_url>
https://farm4.staticflickr.com/3040/2362225867_4a87ab8baf_s.jpg
</thumbnail_url>
<thumbnail_width>75</thumbnail_width>
<thumbnail_height>75</thumbnail_height>
<web_page_short_url>https://flic.kr/p/4AK2sc</web_page_short_url>
<license>All Rights Reserved</license>
<license_id>0</license_id>
<html>
<a data-flickr-embed="true" href="https://www.flickr.com/photos/bees/2362225867/" title="Bacon Lollys by ‮‭‬bees‬, on Flickr"><img src="https://farm4.staticflickr.com/3040/2362225867_4a87ab8baf_b.jpg" width="1024" height="768" alt="Bacon Lollys"></a><script async src="//widgets.flickr.com/embedr/embedr.js" charset="utf-8"></script>
</html>
<version>1.0</version>
<cache_age>3600</cache_age>
<provider_name>Flickr</provider_name>
<provider_url>https://www.flickr.com/</provider_url>
</oembed>

위와 같은 결과값을 반환해준다.
html항목의 내용을 긁어다 게시판 글 작성 하는곳에 넣고 글 작성을 해보면 해당 동영상이나 사진이 노출되는 것을 볼수 있다.
그렇다면 웹 에디터에서는 사용자가 일반 URL을 입력하고 저장을 누르면 서버에서는 URL을 검색하고 분석해서 해당 서비스에 oEmbed를 요청해 그곳에서 보내준 Html코드를 URL대신 넣어 글을 저장했다가 상세 화면에서 보여주기만 하면 되는 것이다.
내가 이해기론 이렇게 하면 될것 같은데..맞나??


Posted by Z700zZz
JavaScript2015. 1. 22. 18:15

data = {

title : "title",

subTitle : "subTitle",

metaTitle : "metaTitle",

ymnews005 : [{aaa:"aaa", bbb:"bbb"},{aaa:"aaa", bbb:"bbb"}]

};


위와 같은 데이터를 jQuery에서 Ajax통신으로 SpringMVC로 파라미터를 넘길 경우..물론 방식은 POST방식..


심각: Servlet.service() for servlet [rest] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.beans.InvalidPropertyException: Invalid property 'ymnews005[0][cardstatckArtclId]' of bean class [ymcms.cms.ka.model.ArtclMasterM1VO]: Property referenced in indexed property path 'ymnews005[0][cardstatckArtclId]' is neither an array nor a List nor a Map; returned value was [ID0000002]] with root cause

org.springframework.beans.InvalidPropertyException: Invalid property 'ymnews005[0][cardstatckArtclId]' of bean class [ymcms.cms.ka.model.ArtclMasterM1VO]: Property referenced in indexed property path 'ymnews005[0][cardstat........


뭔지는 모르겠지만..심각한 오류란다.

이는 jQuery에서 넘긴 데이터중 배열값이 제대로 전달 되지 않아서 생기는 문제이다.

SpringMVC에서 VO를 이용하여 파라미터로 받고 이를 자동으로 맵핑시키는 과정에서 생기는 문제.

jQuery에서 보내는 데이터 형식은 ymnews005[0][cardstatckArtclId]이것과 같은데 자바에서 원하는 형식은 ymnews005[0].cardstatckArtclId 이런 형식을 원하는 듯하다.


그럼 어떻게 해야할까..


JavaScript에서 데이터를 보낼때 원하는 형식으로 보내면 되는것..


ymnews005[0].cardstatckArtclId = "asdf";


이런식으로 데이터를 넣어서 보내면 문제는 해결..


참고 블로그는 http://www.bmchild.com/2014/02/spring-mvc-3-property-referenced-in.html

Posted by Z700zZz
자전거 생활2015. 1. 22. 00:34

13시즌에 리디아 타원링 중 짱구가 제일 심하지 않은걸 사용하다가..

14시즌에 울테 셋으로 바꾸면서 원형 체인링을 사용했었다.

주변에서 다들 타원으로 바꾸길래 이번 시즌은 타원이 사용하고 싶었는데 때마침 올라온 리디아 체인링..





300키로정도 탔다고 했는데 정말이었다.

사실 이런거 믿고 안믿고 하지않지만..상태를 보니 진짜..






52/36..

세미스탠, 컴팩다드...불리는 단어는 많다.

전에 쓰던 리디아 체인링이 아우터는 50이었고 이너가 35였다.

과연 이번시즌 36T가 어떤 영향을 끼칠지..





리디아 체인링의 변속감은 나쁘지 않았다.

로터 체인링의 변속핀과 비슷하게 생겼지만 안쪽에 홈이 더 파여져 있는게 다른점이다.





깨끗하다..ㅋ


지난 시즌 자전거 타면서 왼쪽 무릎 위쪽이 좀 이상했는데..

타원을 쓰면 그게 나아질지 기대중이다. 리디아 체인링을 쓴 13시즌때는 별 이상이 없었기에..

근데 조립에 에로사항이 꽃필것으로 예상된다.ㅋ

'자전거 생활' 카테고리의 다른 글

RIDEA PowerRing 52/36T W2T..  (0) 2015.03.03
2015년 02월 01일 영종도 라이딩..  (0) 2015.02.04
클릿 장착 및 자전거 세팅 수정..  (0) 2015.01.18
GIRO Factor ACC..  (0) 2015.01.14
2015년 01월 07일 Tempo Riding..  (0) 2015.01.09
Posted by Z700zZz
JQuery2015. 1. 21. 16:58

$(this).closest('li').remove();


현재 이벤트가 발생된 Element의 부모 태그들중 li 태그를 찾아 지우기.

리스트에서 내가 지우고 싶은 Row를 지울때 사용하면 된다.

li태그 외에도 지우고 싶은 옵션을 closest함수의 파라미터로 넣으면 된다.

Posted by Z700zZz
개발2015. 1. 20. 23:34

git config --global user.name "MyName"

git config --global user.email myemail@email.com


첫번째 명령어는 Git에서 사용할 나의 이름을 지정 하는 명령어.

두번째는 Email을 설정하는 명령어.

Push명령어 칠때마다 이메일을 물어볼텐대 등록해두면 치지 않아 편리하다.


이거로 될줄 알았는데 안된다.

커밋 할때마다 쳐야 하는건가..?

'개발' 카테고리의 다른 글

JSON 기본 형식..  (0) 2015.02.07
oEmbed..  (0) 2015.01.28
JSTL의 비교 연산자..  (0) 2014.09.16
전자정부 프레임워크(eGoverment Framework) 두번째(홈페이지 생성)..!  (0) 2014.06.26
missing artifact ojdbc ojdbc jar 14..  (0) 2014.06.24
Posted by Z700zZz