Print

    스프링에서 로그 찍는 법

    스프링에서 로그 찍는 법은 총 두 가지가 있다. Log4j or Logback 와 같은 로깅 프레임워크를 이용하거나 System.out.println() 을 이용하여 로그를 찍을 수 있다. 1. 로깅 프레임워크 이용하기(Log4j) 이클립스에서 스프링 레거시 프로젝트를 생성할 경우, 자동으로 src/main/resources 경로에 log4j.xml 파일이 생성된다. log4j.xml 파일 내용은 아래와 같다. : XML 버전 및 인코딩 정보 : log4j.dtd 파일 위치 지정 : log4j 설정 정보가 포함된 XML 파일 : appender - 로그를 출력할 대상 및 출력 방식 ㄴ ConsoleAppender - 콘솔에다가 로그 출력 : 출력 대상 지정. value가 System.out이므로 콘솔 출..

    Virtual DOM

    DOM(Document Object Model) 객체로 문서 구조를 표현하는 방법(XML, HTML 등으로 작성) Virtual DOM 리액트의 성능을 향상시키기 위해 고안된 개념 메모리 상에 존재하는 가상의 DOM 브라우저 상에 실제 DOM을 직접 조작하는 것보다 더욱 빠르게 렌더링 가능 Virtual DOM은 실제 DOM과 비슷한 구조를 가지고 있으며, 리액트의 컴포넌트가 렌더링될 때마다 Virtual DOM을 업데이트합니다. 이때, Virtual DOM을 업데이트하는 것은 실제 DOM을 조작하는 것보다 훨씬 빠르며, Virtual DOM을 업데이트할 때마다 리액트는 변경된 부분만 실제 DOM에 반영합니다. Virtual DOM의 장점 효율적인 렌더링: Virtual DOM은 변경된 부분만 실제 DO..

    Ajax, JSON

    Ajax - Asynchronous JavaScript and XML(비동기 자바스크립트 XML) Ajax는 XML에 기반한 종합 기술 - HTML, CSS, JavaScript, DOM, XML 등 기존에 사용되던 여러 기술을 함께 사용하는 개발 기법 - 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법의 하나 - 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있음 - Ajax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있음 - 서버와 다음과 같은 다양한 형태의 데이터를 주고 받을 수 있음 JSON, XML, HTML, 텍스트 파일 등 Ajax 장점 - 웹 페이지 전체를 다시 로딩하지 않고, 웹 페이지의 일부분만을 ..

    javascript

    변수 선언 - var : 변수 선언 및 값 초기화 - let : 블록 범위(scope) 지역 변수 선언 및 값 초기화. ECMAScript 6 - const : 블록 범위 읽기 전용 상수 선언. ECMAScript 6 프로토타입(prototype) 기반 언어 - 자바스크립트는 클래스 기반이 아닌 프로토타입을 기반으로 하는 객체 기반 언어 - 프로토타입 기반 언어는 프로토타입 객체라는 개념이 있으며, 새로운 객체의 초기 속성을 가져 오는 템플릿으로 사용되는 객체 객체 원형인 프로토타입을 이용해 새로운 객체를 만들며, 생성된 객체는 또 다른 객체의 원형이 될 수 있음 - 모든 객체는 객체를 만들거나 런타임에 고유한 속성을 지정할 수 있음 - 모든 객체를 다른 객체의 프로토타입으로 연결하여 두 번째 객체가 첫..

    MVC 패턴

    MVC 패턴의 이해 - Model, View, Control의 역할을 확실하게 분리시켜 놓은 프로그래밍 기법 - 중간에 Controller 컴포넌트를 두어 비즈니스 로직과 데이터 접근 로직, 프레젠테이션 로직을 분리시킨 디자인 패턴. 각 영역별로 역할이 명확히 구분되어 모듈 간의 의존성을 낮추고 재사용성 및 확장이 용이한 구조로 유지 보수에 유리 - 모델 1 : JSP에 프레젠테이션 로직과 비즈니스 로직, 데이터 접근 로직이 함께 들어감 모델 2 : 각각의 역할을 나누어 작업 분담시킨 MVC 패턴을 웹에 적용 - View를 담당하는 JSP는 프레젠테이션 로직만 처리하고 Controller는 요청을 어디로 보낼지 결정. Model은 비즈니스 레이어에 포함 Model 1 방식과 Model 2 방식 Model..

    쿠키와 세션, 필터

    쿠키 - 서버측에서 클라이언트측에 상태 정보를 저장하고 추출할 수 있는 메커니즘 - 클라이언트의 매 요청마다 웹 브라우저로 부터 서버에게 전송되는 정보 패킷의 일종 - HTTP에서 클라이언트의 상태 정보를 클라이언트의 하드 디스크에 저장했다가 필요시에 재사용하거나 참조 가능 - 쿠키의 제약조건 클라이언트에 총 300개까지 쿠키 저장 가능 하나의 도메인 당 20개의 값만 가질 수 있음(초과할 경우 가정 적게 사용된 쿠키부터 지워짐) 하나의 쿠키 값은 4096Byte 까지 저장 가능 - 사용 예 방문했던 사이트에 다시 방문 했을 때 아이디와 비밀번호 자동 입력, 오늘 본 상품목록 등 세션 - 클라이언트와 웹서버 간에 네트워크 연결이 지속적으로 유지되고 있는 상태 - 클라이언트가 처음 접속시 JSP(혹은 서블..

    포워딩과 리다이렉트

    포워딩(Forwarding) - 클라이언트로 부터 요청 받은 주소로 서블릿 또는 JSP가 정보를 전달하여 처리하는 것 - 포워딩은 Servlet Container 안에서 일어나므로 웹 브라우저는 포워딩 된 사실을 알 수 없음 따라서 웹 브라우저에는 최초에 호출한 URL이 표시되고 포워딩 된 페이지 URL 정보를 볼 수 없음 - 요청 받은 페이지에서 request.setAttribute("키", 값) 를 이용하여 기존 정보를 전달함 - 동일한 웹 경로(Context Path)에 있는 페이지로만 포워딩 가능 리다이렉트(Redirect) - 다른 웹 컨테이너에 있는 주소로 이동 가능 - 새로운 페이지에서는 request 객체와 response 객체가 새롭게 생성 - 포워딩은 URL이 유지되지만 리다이렉트는 U..

    JSP와 Servlet

    웹 컨테이너(Web Container) - JSP와 서블릿을 실행할 수 있는 소프트웨어를 웹 컨테이너 또는 서블릿 컨테이너라고 함 - 순수 서블릿을 처리하는 경우 서블릿 컨테이너라 부름. 서블릿 컨테이너를 포함한 JSP, HTTP 서버로서의 기능을 포함하기 때문에 웹 컨테이너라고 부름 - 웹 컨테이너로는 아파치 톰캣(Apache Tomcat), IBM 웹스피어(Web Sphere) 어플리케이션 서버, 레진(Resin), 티맥스의 제우스(JEUS), 이클립스 재단의 제티(jetty) 등이 있음 서블릿 라이프 사이클(생명 주기) - Servlet은 GenericServlet 클래스나 HttpServlet 클래스를 상속받아서 작성하며, init(), service(), destroy() 총 세 개의 메서드에 ..