3. Back-end

    Spring MVC - [ 유효 범위(Scope)와 속성(attribute) ]

    유효 범위(Scope)와 속성(attribute) HTTP는 특징 상태 정보를 저장하지 않는 특징(=stateless stateful(상태정보를 저장함) )이 있다. 따라서 저장소가 필요한데, 1.접근 범위 / 2.생존 기간 에 따라서 4개의 저장소가 있다. pageContext - lv를 저장하며, 범위는 페이지 안이다. EL은 lv에 직접 접근할 수 없기 때문에 pageContext에 저장 후 사용해야한다. 요청 때 마다 초기화된다. request - 요청할 때 마다 하나씩 생성된다. 보통 하나의 JSP로 전달되고 끝나는데, 포워딩으로 다른 JSP로 전달할 수도 있다. session - 클라이언트마다 1개씩 있는 개별 저장소. 사용자마다 한 개씩 가지므로 사용자 수만큼 세션 객체가 생성된다. 따라서 ..

    Spring MVC - [ 유효 범위(Scope)와 속성(attribute) ]

    Spring MVC - [ 서블릿과 JSP ]

    1. 서블릿과 컨트롤러의 비교 우선 애노테이션을 보면 서블릿은 @WebServlet (=@Controller + @RequestMapping), 컨트롤러는 @Controller를 사용한다. 서블릿은 HttpServlet 클래스를 상속 받아야 하며, 클래스에 매핑해서 클래스의 수가 많아지는 단점이 있다. 컨트롤러는 서블릿이 조금 더 발전된 형태라고 볼 수 있다. 2. 서블릿의 생명주기 서블릿은 기본적으로 세 개의 메서드가 있다. 아래의 메서드들은 서블릿 컨테이너에 의해 자동 호출된다. init() : 서블릿이 생성될 때 서블릿 초기화를 위해서 쓰임 service() : 실제 작업을 처리 destroy() : 메모리 상에서 제거될 때 수행됨 서블릿은 싱글톤이다. 따라서 1개의 인스턴스만 만들어진다. 요청이 ..

    Spring MVC - [ 서블릿과 JSP ]

    Spring MVC - [ 바이너리 파일 ]

    1. 텍스트 파일 vs 바이너리 파일 - 바이너리파일 : 문자와 숫자가 저장되어 있는 파일. 데이터를 있는 그대로 읽고 쓴다. - 텍스트 파일 : 문자만 저장되어 있는 파일. 숫자를 문자로 변환 후 쓴다. 파일 종류 쓰기 읽기 바이너리 문자 -> 문자 숫자 -> 숫자 문자 -> 문자 숫자 -> 숫자 텍스트 문자 -> 문자 숫자 -> 문자 문자 -> 문자 문자 -> 숫자(안 됨) 2. MIME(Multipurpose Internet Mail Extensions) 텍스트 기반 프로토콜에 바이너리 데이터(이미지, 동영상 등)를 전송하기 위해 고안 HTTP의 Content-Type 헤더에 사용하며, 전송할 데이터의 타입을 명시해줘야 한다. 타입 설명 MIME타입 예시(타입,서브타임) text 텍스트를 포함하는 ..

    Spring MVC - [ 바이너리 파일 ]

    Spring MVC - [ HTTP 요청과 응답 - 이론]

    1. 프로토콜(protocol) - 프로토콜이란 서로 간의 통신을 위한 약속, 규칙으로 주고 받을 데이터에 대한 형식을 정의한 것이다. 2. HTTP(Hyper Text Transfer Protocol) - 텍스트 기반의 프로토콜로 단순하고 읽기 쉽다. - 상태를 유지하지 않는다.(stateless) (클라이언트 정보를 저장 X ) 즉, 같은 클라이언트가 요청을 한 번 보내고, 다시 요청을 보내도 서버는 클라이언트 정보를 저장하지 않아서 같은 클라이언트가 보냈는지 구분할 수 없다. 이를 보완하기 위해 쿠키&세션을 사용한다. - 확장 가능하다. (커스텀 헤더(header) 추가 가능) 3. HTTP 메시지 - 응답 메시지 요청에 대한 결과가 상태 코드로 나온다. 상태코드별 의미는 아래 표와 같다. 상태코드..

    Spring MVC - [ HTTP 요청과 응답 - 이론]

    Spring MVC - [ 클라이언트와 서버 ]

    1. 클라이언트와 서버 클라이언트(client) : 서비스를 요청하는 애플리케이션(or 컴퓨터) 서버(server) : 서비스를 제공하는 애플리케이션(or 컴퓨터) ex) 내가 브라우저에 주소를 입력하면 -> 내 컴퓨터는 클라이언트 컴퓨터, 주소를 입력한 브라우저는 클라이언트 app /응답하는 컴퓨터는 서버 컴퓨터, 응답하는 톰캣은 서버 app 2. 서버의 포트 어떤 서비스를 제공하는지에 따라서 서버가 여러 종류 있을 수 있다.(ex. Email server, File server, Web server ..) 하나의 컴퓨터에 여러 서버가 있을 경우, IP만으로는 어떤 서버에 요청을 보낸 건지 알 수 없다. 따라서 어떤 종류의 서버에 보낸 요청인지 알려주기 위해 포트 번호를 같이 써줘야 한다. (ex. 1..

    Spring MVC - [ 클라이언트와 서버 ]

    Spring MVC - [ HTTP 요청과 응답 - HttpServletRequest ]

    HTTP 요청과 응답 1. HttpServletRequest java 인터프리터는 main 호출 시 인자들을 받아서 배열(args)로 전달해준다. 마찬가지로 URL로 프로그램을 호출하면 톰캣이 HttpServletRequest 객체를 만들어서, 여기에 요청한 정보를 담아 main메서드의 매개변수로 넘겨준다. 2. HttpServletRequest의 메서드 System.out.println("request.getCharacterEncoding()=" + request.getCharacterEncoding()); // 요청 내용의 인코딩 System.out.println("request.getContentLength()=" + request.getContentLength()); // 요청 내용의 길이. 알수..

    Spring MVC - [ HTTP 요청과 응답 - HttpServletRequest ]