전체 글
스프링 로그인 권한 검사에 대한 설계 방법
스프링을 개발해오면서 봐왔던 로그인 권한 검사에 대해 설계 방법을 정리할 겸 적어보고자 합니다. 특정 방식이 무조건 좋거나 혹은 무조건 나쁘다고 할 수 없을 만큼 각각의 방식들이 Trade-Off가 존재합니다. 아래의 리스트 중 API 권한 검사에 대한 코드만 Github에 올려놨으니 참조하시길 바랍니다. 계정에 대한 DB는 H2를 이용 했으니 아래와 같이 사용해주세요. Session을 이용한 권한 검사 ① Interceptor에서 Redirect 처리 가장 일반적인 방식에 속한다. Session 방식을 이용한 권한 검사 방식에서는 로그인한 사용자의 정보를 Session에 담게 되는데, Interceptor에서 해당 Session 정보가 존재하지 않는다면 로그인 화면으로 보내는 방식으로 개발한다. ② 여..
jQuery Template과 jsRender로 만드는 동적 HTML 생성
기존 동적 HTML 생성에 대한 문제점 Ajax로 가져온 데이터에 대하여 html을 동적으로 그려주기 위해서는 일반적으로 문자를 더해서 html에 요소에 끼워 넣는 방식을 사용한다. 아래의 코드를 봐보자. 와 요소를 strHtml에 더해서 사용한다. var strHtml = ""; $.ajax({ type: 'POST', success: function (data) { strHtml += '' + data.name + ''; strHtml += ''; $("#test").html(strHtml); }, error: function (request, textStatus, errorThrown) { } }); 이러한 방식의 문제점은 html의 요소를 문자로 다루기 때문에 홑따옴표와 쌍따옴표가 너저분하게 깔려..
[JavaScript] 변수에 대한 불변성 정리(const, defineProperty)
Const 변수를 불변하게 만들기 위해서 대표적으로 사용되는 것은 const(상수)다. const name = 'loose'; console.log(name); // loose 하지만 const에 아래와 같이 객체 형태의 값을 넣으면 객체 내부의 속성은 변경이 가능해진다. const x = {}; x.foo = 'bar'; console.log(x); // {foo : 'bar'} x.foo = 'bar2'; console.log(x); // {foo : 'bar2'} x = {}; // 불가능 위와같이 x에 foo라는 속성을 추가하거나 수정하는 것은 가능하다. 하지만 x를 재정의 하는 것은 불가능하다. 이것은 자바에서 Final과 같다. 자바에서도 Final을 쓰면 변수를 상수로 만들 수 있지만 Fin..
[JavaScript] 프로토타입 쓰는 이유, 목적 그리고 사용법
사용 목적 프로토타입은 자바스크립트의 최적화를 위해 사용된다. 사용 방식 자바스크립트는 아래와 같이 함수형으로 객체 생성이 가능하다. function Person(first, last, age, eyecolor) { this.firstName = first; this.lastName = last; this.age = age; this.eyeColor = eyecolor; } const myFather = new Person("John", "Doe", 50, "blue"); const myMother = new Person("Sally", "Rally", 48, "green"); 여기서 국적(nationality)이라는 변수를 하나 더 만들어보자. function Person(first, last, age..