본문 바로가기

전체 글27

인터셉터와 Controller 공통 로직 처리 클라이언트로부터 요청이 들어온 후 Filter가 존재한다면 Filter가 수행됩니다. Filter 수행 이후 DispatcherServlet 수행되고, HandlerMapping을 통해서 실제 어떤 Handler가 동작을 해야 되는지 정보를 얻어내고, Handler가 실행됩니다. 이후, 이런 정보들을 DispatcherServler한테 넘기고 ViewResolver를 이용해서 View의 정보를 얻어오고 해당 View를 찾아서 응답하는 일까지 수행하는것이 스프링의 동작 과정입니다. 인터셉터(Interceptor) 그렇다면, 인터셉터(Interceptor)는 언제 수행될까? 인터셉터는 DispatcherServlet에서 Handler로 요청을 보낼 때, Handler에서 DispatcherServlet 으로.. 2019. 9. 4.
Spring Controller 어노테이션과 파라미터 타입 @Controller 컨트롤러 클래스에 @Controller 어노테이션을 작성합니다. 해당 어노테이션이 적용된 클래스는 "Controller"임을 나타나고, bean으로 등록되며 해당 클래스가 Controller로 사용됨을 Spring Framework에 알립니다. @RequestMapping 해당 어노테이션이 선언된 클래스의 모든 메소드가 하나의 요청에 대한 처리를 할경우 사용한다. 예를들어, "/student" 요청에 대해 공통적으로 처리해야될 클래스라는 것을 의미합니다. 또한, 요청 url에 대해 해당 메소드에서 처리해야 되는 경우에도 사용됩니다. 이러한 @RequestMapping에 대한 모든 매핑 정보는 Spring에서 제공하는 HandlerMapping Class가 가지고 있습니다. @Cont.. 2019. 9. 4.
클린코드 클린코드 클린코드라는 것은 읽기좋은 코드 즉 가독성 있는 코드를 말합니다. 클린코드를 위한 4가지 조건을 알아보겠습니다. 1. 이름 ( 코딩컨벤션 ) 이름을 짓는 것은 읽기 좋은 코드를 만드는데 필수 요소이므로 다음과 같은 요소들을 고려한다면 가독성 높은 코드들을 구현할수있습니다. 1. 함수는 목적에 맞게 이름이 지어져 있는가? 2. 함수 안의 내용은 이름에 어울리게 하나의 로직을 담고 있는가? 3. 함수는 동사 + 명사이며 함수의 의도를 충분히 반영하고 있는가? 4. 함수는 카멜표기법 또는 _를 중간에 사용했는가? 5. 변수는 명사이며 의미 있는 이름을 지었는가? add() 함수명은 포괄적이라 해당 함수가 어떤 로직을 담고있는지 유추하기 힘듭니다. 반면, addSemicolon()함수는 동사+명사의 형.. 2019. 8. 27.
handlebar 활용한 템플릿 작업 Template 작업이란? 반복적인 HTML부분을 template로 만들어두고, 서버에서 온 데이터(주로 JSON)을 결합해서, 화면에 추가하는 작업입니다. 어떤 데이터를 기준으로 html을 변경시키는 일.즉, 문자열 처리 기반으로 작업을 합니다. 이러한 문자열을 parsing 할 때 replace() 메서드 사용하여 완성된 html 문자열을 최종적으로 만들게 됩니다. 그러나 이런 작업을 매번 하기엔 번거롭기도 하고 가독성도 떨어져 라이브러리를 사용합니다. handlebar 라이브러리 사용하지 않은 JavaScript Template 작업코드 for (var i = 0; i < dataLength; i++) { resultHTML = html.replace("{title}", data['items'][i.. 2019. 8. 27.
bind메소드로 this 제어하기 bind() bind() 함수는 새로운 함수를 만듭니다. 즉, 새로운 함수를 생성해 반환한다는 것입니다. 바인딩한 함수는 원본 함수 객체를 감싸는 함수로, 바인딩한 함수를 호출하면 일반적으로 래핑 된 함수가 호출됩니다. 또한, bind()는 전달 할 인수가 필요한 콜백 함수를 작성하는 데 유용합니다. bind()메소드 이용해 함수 생성하기 this.x = 8; var module = { x:100, getX: function() {return this.x; } }; module.getX(); // 100 - this 키워드가 module객체의 x값을 참조하여 100 출력됨 var testX = module.getX; testX(); // 8 반환 - 함수가 전역 스코프에서 호출됨(this.x) var b.. 2019. 8. 20.
객체 리터럴과 this 자바 스크립트의 객체 객체 리터럴(Object literal)이라고 불리며, key와 value의 형태를 가지는 해시 맵 구조를 자바스크립트의 객체라고 합니다. 아래의 코드와 같이 비슷한 기능을 묶어 객체 리터럴 코드로 만들고 각 메소드를 실행합니다. this는 객체 자신을 가리킵니다. var yogaClassObj = { classRoom : "room1", name : "jj", time : "AM06:00", showHealth : function() { console.log(this.name + "님, 오늘은 " + this.time + "에 운동을 하셨네요"); } } yogaClassObj.showHealth(); this 객체 안에서의 this는 그 객체 자신을 가리킵니다. 그 외 다양한 곳.. 2019. 8. 20.