Programming 152

[java] serialVersionUID를 선언하는 이유

serialVersionUID를 선언하는 이유 아직 객체 직렬화, 역직렬화에 대해 정확히 알지는 못 하지만 serialVersionUID가 도대체 왜 선언되어 져야하지? 라는 궁금증을 가졌던 적이 있었다.100% 이해는 되지 않지만 좋은 정보이기에 가져왔다. 사용자 정의 Exception Class를 구현하는 도중 Class내에 "private static final long serialVersionUID"를 정의 하지 않을 경우 warning이 발생하여 궁금증을 해결하고자 정보를 수집하였습니다. 결론부터 말하자면, 모든 Class는 UID를 가지고 있는데 Class의 내용이 변경되면 UID값 역시 같이 바뀌어 버립니다. 직렬화하여 통신하고 UID값으로 통신한게 정상인지 확인하는데 그 값이 바뀌게 되면 ..

Programming/java 2014.09.02

[Spring] Spring Ajax를 이용한 file upload

spring Ajax를 이용한 file upload 기본적으로 Spring MVC를 이용하는 경우, multipart encrypt를 이용해서 form submit으로 file을 upload하는 것이 일반적입니다. 한번 javascript만을 이용한 file upload를 해보도록 하겠습니다.먼저, MultipartResolver를 사용하기 위해서 apache common fileupload를 추가해야지 됩니다. compile 'commons-fileupload:commons-fileupload:1.3.1' Spring Configuration에 MultipartResolver를 추가합니다. @Bean(name = "multipartResolver") public MultipartResolver mult..

Programming/Spring 2014.09.02

[Spring] REST API 구성시 Spring Security 구현

REST API 구성시 spring security 구현 예전 spring security 예제를 만들어 보던중 정말 어려웠었는데.. 내가 제대로 해본적은 없지만여러 프로젝트를 하면서 spring security는 접해보았기 때문에 나중에 도움이 될 것 같기에 퍼오게 되었다.. Spring Security를 이용한 REST API를 만들때, 일반적인 Spring Security를 이용하는 경우에는 다Login 성공 또는 실패시에 모두 302번 Redirect가 발생하게 됩니다. 또한 인증되지 않은 사용자가 API에 접근한 경우에도 마찬가지로 302번 Redirect로 Login Page로 이동하게 되는데, 이는 REST API 개발시에는 원하지 않는 결과입니다.먼저, 개발할 API 서버는 Form 인증을..

Programming/Spring 2014.09.02

[Web] HTTP Protocol 과 REST

HTTP Protocol 과 REST * 사내 강의용으로 사용한 자료를 Blog에 공유합니다. Spring을 이용한 Web 개발에 대한 전반적인 내용에 대해서 다루고 있습니다. WebApplication은 HTTP Protocol로 동작하는 네트워크 프로그래밍의 일종입니다. 이 정의가 조금은 의문스러워보이실지 모르겠지만, 저희는 지금 네트워크 프로그래밍을 하고 있는것입니다. 다만 이 네트워크를 처리해주는 것이 Servlet Container가 됩니다. 네트워크 프로그래밍은 매우 어려운 작업이지만, 지금 우리가 할 수 있는 가장 큰 이유는 Servlet Container가 이 일을 처리해주고 있기 때문입니다. 이는 매우 큰 의미를 갖습니다. 더이상 개발자들은 이 어려운 네트워크 문제를 다루지 않고, 처리하..

Programming/Web 2014.09.02

[Web] HTML5 File API

HTML5 File API HTML5 File API를 사용하면 로컬파일 정보 및 내용을 얻고 JavaScript로 처리할 수 있습니다. 앞으로 HTML5의 보급과 클라우드 서비스가 진행되는 것에 따라 중요한 기능이 되는 것은 사실입니다. 그래서 예제를 만들어 보았고 드러그앤드롭도 대응하고 있습니다. 단, 현재 Chrome으로 로컬 작업시, 보안상 드러그앤드롭에 반응하지 않는 경우가 있습니다. 예제 소스코드 File API 예제 Name : ???? Size : ???? Type : ???? Value : Func Name : readAsText readAsDataURL readAsArrayBuffer readAsBinaryString Encode Type : default utf-8 FileReader..

Programming/Web 2014.09.02

[javascript] javascript 정규표현식

javascript 정규표현식 정규표현식 1. 확장문자 (: backslash) - s : 공백 문자(스페이스, 탭, 폼 피드, 라인 피드) - b : 단어의 경계 - B 이를 제외한 모든 문자 매칭 - d : 숫자 - D : 숫자가 아닌 문자 [^0-9] 와 동일 - w : 알파벳, 숫자로 된 문자, 밑줄 기호(_) [A-Za-z0-9] - W : w의 반대 문자 [^A-Za-z0-9] - 특수문자 : 특수문자 자체를 의미 예) + (+ 기호 자체) 2. 특수문자 - * : 0회 이상 반복 - + : 1회 이상 반복 - ? : 0 또는 1개의 문자 매칭 - . : 정확히 1개 문자 매칭 3. 플래그 - g : 전역매칭 - i : 대소문자 무시 - m : 여러 줄 매칭 4. 기타 - () : 괄호로 묶인..

[javascript] .prototype과 .constructor

.prototype과 .constructor SmartTV 프로젝트를 진행하면서 javascript를 조금더 깊이있게(?) 사용해 보기위해 상속효과라던지 prototype등 공부를 했었는데 잘 정리해준 글이 있어서 퍼왔다.. prototype Object 는 모든 인스턴스가 상속 받는다function Circle(r) { this.r = r ; } Circle.prototype.area = function() { return this.r*this.r*Math.PI ; } prototype Object 는 모든 인스턴스가 상속 받으므로 클래스 변수와 클래스 메써드를 위치시키기 좋은 곳이다. .prototype 및 .constructor 정리[생성자 함수] function typeClass1(x) {this..