Web
-
Spring MVC (6) - 스프링 MVC 기본기능 (2) : Http BodyWeb/Spring 2023. 10. 14. 23:49
1. HTTP 응답 - 정적 리소스, 뷰 템플릿 스프링(서버)에서 응답 데이터를 만드는 방법은 크게 3가지이다. > 정적리소스 : 웹 브라우저에 정적인 HTML,css,js를 제공할 때 > 뷰 템플릿 : 동적 페이지 제공 > HTTP 메시지 : HTTP API를 제공하는 경우, HTTP 메시지 바디에 JSON 같은 형식으로 데이터 실어 보냄 1.1 정적 리소스 - 스프링 부트는 클래스 패스의 다음 디렉토리에 있는 정적 리소스 제공 /static,/public,/resources,/META-INF/resources 등 - src/main/resources는 리소스를 보관하는 곳이자 클래스 패스 시작 경로이다. 따라서 다음 디렉토리에 리소스 넣어두면 스프링 부트가 정적 리소스로 제공 * 내장 톰캣의 경우 w..
-
Spring MVC (6) - 스프링 MVC 기본 기능Web/Spring 2023. 10. 9. 21:19
1. 들어가기 전에 - 프로젝트 생성 주의점 Packaging War가 아닌, Jar를 선택 -> JSP를 사용하지 않기 때문에 (스프링 부트를 사용하면 주로 위 방식을 사용하게 된다) Jar+내장 톰캣+ webapp경로x War+ 주로 외부 웹 서버 + webapp경로 o - Welcome페이지 만들기 스프링 부트에 Jar를 사용하면, /resoureces/static 위치에 파일을 두면, Welcome페이지로 처리해준다. 정적컨텐츠는 주로 저 위치에 두면된다. 1.2 로깅 알아보기 - 운영시스템에서는 System.out.println()같은 시스템 콘솔을 사용해서 필요한 정보 출력x > 별도의 로깅 라이브러리를 사용해서 로그를 출력한다. - 로깅 라이브러리 : 스프링 부트 라이브러리를 사용하면 스프링..
-
HTML (1)Web/html-css 2023. 10. 4. 17:24
1. 시작하기 - 짧은 클라이언트 서버 역사 과거: pc 통신 (p2p) 각자 개인 pc가 서버이자 클라이언트로 서로 연결됨 현재 : 서버 pc 분리하여 서버에 대부분의 데이터를 저장해두고, pc는 약간 다운받아 쓰는 정도임 -> cloud로 발전 - 웹 개발 환경 만들기 > 브라우저 :크롬, vs code, extension: 라이브 서버 정도 > vs code에서 하나의 프로젝트(워크 플레이스) 여로 용도로 사용가능 (live서버에 root directroy) 2. HTML 시작하기 2.1 HTML 기본 문서 만들기 HTML : HyperText Markup Language -> 텍스트, 이미지, 영상등의 리소스 위치를 표시하는 역할한다. -> 위치를 표시하기 위해 tag를 사용함 HTML 구조 파악..
-
SpringMVC (5) - 스프링 MVC 구조 이해Web/Spring 2023. 10. 2. 16:43
- 직접 만든 프레임 워크와 스프링 MVC는 큰 차이가 없다 - 이름만 조금 다를 뿐 구조는 매우 비슷함. > DispatcherServlet 구조 살펴보기 -org,springframwork.web.servlet.DispatcherServlet 프론트 컨트롤러 패턴으로 구현됨 스프링 MVC의 핵심 - dispatcherservlet도 httpservlet을 상속받아서 사용하고, 서블릿으로 동작한다. - 스프링 부트는 dispatcherservlet을 서블릿으로 자동등록하며, 모든 경로에 대해서 맵핑한다. * 더 자세한 경로가 우선순위 높음 따라서 기존에 등록한 서블릿도 함께 동작함 > 요청 흐름 - 서블릿이 호출되면, service()가 호출됨 - frameworkServlet.service()를 시작..
-
SpringMVC (4.5) - FrontController V5 [어댑터 패턴 - 중요]Web/Spring 2023. 10. 2. 15:31
1. 유연한 컨트롤러 - v5 - 이전에 살펴본 v3방식과 v4방식을 섞어서 쓰고 싶다면 어떻게 해야할까? - 두 컨트롤러는 매개변수와 리턴값이 다르다. ** 어댑터 패턴 두 컨트롤러의 인터페이스는 다르므로 호환이 불가능하다 마치 110v와 220v와 같다. 이럴 때 호환이 안되는 두 인터페이스를 일관되게 사용하고 싶을 때 어댑터 패턴을 사용하면 된다. v3용 어댑터와 v4용 어댑터를 만들고, 프론트 컨트롤러는 어댑터를 통해서 컨트롤러 메서드를 호출하게 만들자. 변화하는 부분은 요청에 따른 각컨트롤러, 그리고 컨트롤러별 매개변수와 리턴 값이다. 어댑터는 이러한 부분을 캡슐화함 -> 각 컨트롤러에 따라 로직을 처리하도록 request에서 값 뽑기, 매개변수 전달 등등을 수행 실제 로직 처리를 각 어답티(컨..
-
SpringMVC (4) - MVC 프레임워크 만들기 [중요]Web/Spring 2023. 10. 2. 14:51
1. 프론트 컨트롤러 패턴 소개 - FrontController 패턴의 특징 > 하나의 서블릿으로 클라이언트 요청 받기 > 요청에 맞는 컨트롤러 찾아서 호출 (pojo) > 입구를 하나로 만드는 것이 핵심 (공통처리,pojo를 활용한 확장성 스프링 MVC의 핵심은 FrontController이다. 2. 프론트 컨트롤러 V1 v1의 구조 - V1의 핵심은 서블릿 1개로 만들고 컨트롤러 분리해서 처리하기이다. - 기존 프론트 컨트롤러에 맵핑과 서블릿과 비슷한 모양의 컨트롤러 인터페이스 도입 -컨트롤러 v1 public interface ControllerV1{ void process(HttpServletRequest request, HttpServletResponse respon..
-
Spring MVC (3) - 서블릿, JSP, MVC 패턴Web/Spring 2023. 10. 2. 13:37
- 서블릿과 jsp만을 사용해서 웹 어플리케이션을 구성해보고, 간단한 MVC 패턴을 활용해보자 1. 회원 관리 웹 어플리케이션 요구사항 //회원 도메인 @Getter @Setter public class Member{ private Long id; private String username; private int age; public Member(){} public Member(String username, int age){ this.username = username; this.age = age; } } //회원 저장소 public class MemberRepository{ private static Map store = new HashMap(); private static long sequence =..
-
SpringMVC (2) - 서블릿Web/Spring 2023. 10. 2. 11:19
- 서블릿 생성방법, HttpServletRequest와 Response에 대해서 알아보자 - reqeust는 HTTP 요청 메시지 파싱한 결과 담김 -> 편리하게 조회 - response는 HTTP 응답 메시지 쉽게 만들도록 함 -> set이 편리 *request는 요청 보내는 거 아님, 받은 요청을 읽는 것 따라서 content-type이나,인코딩 등등은 클라이언트가 요청 메시지 보내면서 잘 만들어서 보내야함 *서블릿은 톰캣 같은 서블릿을 지원하는 애플리케이션 서버를 직접 설치 -> 그 위에 서블릿 클래스 파일을 빌드해서 오린다음 -> 톰캣 서버를 실행함 (스프링 부트는 내장 톰캣 서버를 사용함) * ex war파일로 프로젝트를 export하고, 외장 톰캣 서버 webapp폴더에 이를 집어넣고,cmd..