https://stackoverflow.com/a/47303840


* 이 글은 위의 링크를 요약 번역한 글입니다. 


application/x-www-form-urlencoded


Default Content Type으로써, 이 Content Type을 사용하는 Form은 아래와 같은 규칙을 따라 값을 Encoding 해서 전송해야 한다.


[RFC1837]에 기술된 reserved characters들 규칙에 따라 Escape해야 한다. 


application/x-www-form-urlencoded type message는 하나의 큰 query string 형태로 서버에 전송된다. 

name/value 짝은 &로 구분되고 이름과 value는 =로 구분된다. 


예시 : MyVariableOne=ValueOne&MyVariableTwo=ValueTwo


application/x-www-form-urlencoded 은 사이즈가 큰 binary data나 non-ASCII 를 포함한 text data를 보내기 부적합하며, 이런 경우에는 "multipart/form-data"를 사용해야 한다. 


multipart/form-data


Note. 하위호환성을 비롯한 "multipart/form-data"에 대한 추가적인 정보는 [RFC2388]을 참고 하시길 바란다.


"multipart/form-data"는 [RFC2045]에 규약된 MIME data stream Rule을 따른다.


"multipart/form-data" 메세지는 여러개의 파트로 나뉘어져 있으며, 파트안의 data stream 에는 boundray text 가 나타나서는 안된다.

모든 multipart MIME type의 각 파트들은 선택적으로 "Content-Type"을 가질 수 있으며, "text/plain"을 기본값으로 한다. 

User agent는 charset parameter를 포함하는 "Content-Type" header를 전달 해야 한다.

React.js (http://facebook.github.io/react/)

: Facebook, Instagram 에서 사용하는 View Library. Data binding 이 가능하고, Light-Weight 로 강력한 성능을 자랑합니다.

요녀석 한번 써보겠다고, 삽질 좀 했네요 ;ㅂ; 여차저차 세팅을 완료 하긴 했는데, 썩 만족스럽지는 않습니다 ㅠㅠ


JSX 지원.

React.js 에서는 Human-Readable 한 코드 작성을 위해 JSX 란 문법을 지원합니다. 이놈이 문젭니다 ㅠㅠ

Developing 중에는 JSXTransformer.js 를 통해서 실시간 Compiling 을 하는데요, Production 에서는 pre-complie 후에 배포 하길 권고 합니다. 


여기서 Dev와Production간의 설정이 달라집니다. 


1. JSXTranformer.js 를 include 해줘야함. 

2. 개발에는 JSX 파일, Production 에는 JS파일을 include해야함.

2-1 script path가 달라짐

2-2 include 시에 JSX 는 type="text/jsx", JS는 type="javascript"가 되어야함.

3. Package 시에 시에 JSX -> JS compile을 해줘야함.


자 그럼 하나씩 해결해볼까요 ㅠㅠㅠ


1. JSXTranformer.js 를 include 해줘야함.

maven-resource-plugin과 property configure를 통해 include 여부 결정

jsp 는 template engine (tiles)를 통해 골격을 관리하고 있기 때문에 base template에서만 들어 있으니 쉽게 해결. 


2-1 script path가 달라짐

2-2 include 시에 JSX 는 type="text/jsx", JS는 type="javascript"가 되어야함.

[1]번 과 같은 방법으로 해결하고자 했으나, 해당 코드는 base template 에서 사용되는게 아니라 화면별로 들어 가야 되서 삶이 고달파짐 ㅠㅠ

maven-resource-plugin 과 property 를 통해 DEV/PRODUCT을 분기 하고, custom taglib를 통해서 코드 생성토록 함. 


3 Package시에 JSX -> JS compile

Facebook에서 제공하는 jsx command 를 maven exec plugin 으로 실행하도록 함. 

bds 에서 build 할때 goal 을 clean package -> clean exec:exec package으로 변경하여 deploy 하도록함. 

* 이부분이 특히 마음에 안듬 ㅠㅠ






https://github.com/medialize/URI.js


개발하다보면 URL 을 조작해야 하는 일이 많죠. 예를 들명 paging 처리라던가, 등등등

이럴때 Javascript String Function 을 활용해서 개발하는 경우에는

요청 URL 에 원래 parameter가 있는지 여부에 따라 stringconcat 시 '?' 과 '&' 을 써야 하고, 

기존에 이미 있는 parameter를 새로 세팅 해줘야 하는 경우 인생이 고달파 집니다 ㅠ


URI.js 라는 고마운 녀석을 주로 쓰는 편입니다. 


1. window.location.href 

 

제가 Front-End 에 대한 경험이 부족한데, 현재 요청 URL을 가져올때 보통 저것을 사용하는데, 

URI.js 소개 페이지에 따르면 해당 Object 가 FireFox 에서 호환성 문제를 내는 경우가 있다고 합니다.

고맙게도 new URI() 를 불러주면 알아서 요청 URL을 가진 Object 가 생성됩니다.


2. new URI().addQuery('foo','bar')


말그대로 URI parameter 를 add 해줍니다.
이함수는 기존에 foo 라는 Parameter key 가 있는 경우에 delete 를 하지 않기 때문에 주의 해서 사용해야 합니다.


2. new URI().setQuery('foo','bar')

이 함수는 기존에 foo 라는 Parameter Key 가 있는 경우 delete 한 후에 add 하게 됩니다. 


일단 이정도만 알고 써도 인생이 상당히 편해지겠군요 ㅎ


What is a 'Raphael'?

Raphael 은 SVG 와 VML 에 기반한 Web 상에서 Vector Graphics을 지원하게 해주는 Javascript Library 입니다.

Rich Internet Applicatoin 을 개발할 일이 있어, 기술 조사 겸 해서 스터디 해볼려고 합니다.

언제나 그럿듯이 Hello World 를 한번 찍어 보도록 하겠습니다.


1. Download Raphael

http://raphaeljs.com/ 에서 다운로드 하시면 됩니다


2. Sample Page 작성 

3. javascript 작성


var paper = Raphael("hello",320,200);
var t = paper.text(50,50,"Hello Raphel");


hello 라는 div element 를 Raphael Paper 로 활용하게 되고,

그 Paper 에 text 를 그려 놓은 모습입니다. 




Raphel 로 Hello Raphael 을 출력한 모습입니다.

Elements 를 살펴 보면, svg tag 밑에 element 로 들어 가도록 변환이 되어서 나옵니다.

이것만 봐서는 뭐가 강력한지 모르겠지만, 차근 차근 알아 보도록 하겠습니다. 




주소창과, 즐겨찾기에 로고를 표기하는 법 !



구글에 들어 가면 좌측에 나오는거 처럼 구글 로고가 뜨는데, 갑자기 궁금해져서 한번 찾아 봤습니다 ㅎ

우선, 표기될 icon 은 16x16 pixels이어야하면, Windows ico format으로 저장되어야 합니다.
2가지 방법을 통해서, icon을 표기 할수 있습니다.

방법 1.

http://${your_url}/favicon.ico에 저장하는 방법입니다.
http://www.google.com/favicon.ico 에 로고 이미지가 들어 가 있는걸 보아하니,
구글은 이 방법을 채택하고 있네요 ㅎㅎ

방법 2.

webpage에 아래 태그를 추가하는것입니다..
<LINK REL="SHORTCUT ICON" HREF="{icon_url}">

추가로, 방법2를 이용하면 페이지별 다른 아이콘을 링크하여,
페이지별로 다른 아이콘을 보여줄수도 있는데, 가능은하지만, 별로 보기 좋아 보일것 같진 않네요 ㅎㅎ

흐음.. 내 홈피에도 추가 하고 싶긴한데, 아이콘이 없군요 ㅋㅋㅋㅋㅋ

+ Recent posts