spring

    [Spring] URL 매핑 : URL 패턴 Servlet URL Mapping / DispatcherServlet

    1. URL 패턴 - URL 패턴 규칙을 생각하고 매핑 설정을 해야, 예상한 Servlet / Controller으로 요청할 수 있다 - Servlet과 Spring 모두 아래 URL 패턴 규칙을 사용 가능하다 (1. 2. ... : 우선순위) 종류 URL pattern 매칭 URL 1. exact mapping /test/hello.do http://localhost/syun/test/hello.do 2. path mapping /test/* http://localhost/syun/test/ http://localhost/syun/test/hello http://localhost/syun/test/hello.do http://localhost/syun/test/cat 3. extension mappin..

    [Spring] MVC 패턴이란? Model / View / Controller / 메인 메서드 반환타입

    0. 관심사의 분리 - OOP 5대 설계원칙 : SOLID • SRP : 단일 책임의 원칙 (하나의 메서드는 하나의 책임(Concern)) - 좋은 객체지향 설계를 위한 분리 1. 관심사 분리 2. 변하는 것(Common) / 변하지 않는 것(Uncommon) 분리 3. 공통코드 (중복코드) 1. MVC 패턴이란? - 소프트웨어를 Model - View - Controller의 3가지 구성 요소로 구분한 개발 방법론이다 - 사용자가 Controller를 조작 → Controller는 Model을 통해 데이터를 가져옴 → 데이터를 바탕으로 View를 통해 시각적 표현을 제어하여 사용자에게 전달 - Model : 정보 및 데이터 부분. 데이터와 관련한 값과 기능을 가지는 객체 - View : 입력값, 체크박..

    [Spring] HttpServletRequest, HttpServletResponse 객체

    HttpServletRequest - HTTP 프로토콜의 요청 정보를 서블릿에 전달하기 위해 사용 - 헤더정보, 파라미터, 쿠키, URI, URL 등의 정보를 읽어들이는 메서드 포함 - Body의 Stream 읽는 메서드 포함 - 예제 코드 Enumeration enum = request.getParameterNames();// 파라미터 이름들 (iterator) Map paramMap = request.getParameterMap(); // 파라미터 값들 map 형태로 (key-value) String[] yearArr = request.getParameterValues("year"); // name이 "year"인 value 모두 String year = request.getParameter("yea..

    [Java] Reflection API 알아보기

    런타임 단계에서 클래스 정보를 알아야 할 때 사용하기 좋은 도구인 Reflection API에 대해 알아보자! 0. 왜 필요할까? public static void main(String[] args) { Object obj = new Hello(); obj.main(); // Error } - 자바는 컴파일 시점에 타입을 결정 - Object 타입인 obj는 Hello 객체를 받아도 main 메서드를 실행할 수 없다 - 이런 경우에 Reflection API를 이용해, 런타임에 클래스의 이름만으로 클래스를 로딩하여 멤버를 사용할 수 있다! 1. Reflection API란? -구체적인 클래스 타입을 알지 못해도 클래스의 정보(메서드, 타입, 변수 등)에 접근할 수 있게 해주는 Java API • java..

    [Spring] 웹 개발을 하는 세 가지 방법(3) : API

    웹 개발의 세 가지 방법 1. 정적 컨텐츠 2. MVC와 템플릿 엔진 3. API 👈 정적 콘텐츠가 아니라면 HTML로 내리냐 API 방식으로 데이터를 바로 내리느냐 두 가지만 생각하면 된다!! API > 간단한 String API 구현해보기 1. HelloController에 코드 추가 @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name) { return "hello " + name; //"hello spring" } @ResponseBody : HTML의 응답 Body에 직접 데이터를 넣어주겠다 뷰 없이 문자가 그대로 내려간다 2. 실행 localhost:8080/hell..

    [Spring] 웹 개발을 하는 세 가지 방법(2) : MVC와 템플릿 엔진

    웹 개발의 세 가지 방법 1. 정적 컨텐츠 👈 2. MVC와 템플릿 엔진 👈 3. API MVC와 템플릿 엔진 MVC : Model, View, Controller 과거 JSP 모델 1 방식에서는 View와 Controller가 구분되어 있지 않고, View에서 모든 역할을 다 수행했다 View는 화면을 그리는 데 모든 역량을 집중해야 한다 Controller는 비즈니스 로직, 내부적인 처리를 한 후, 화면에서 필요한 것을 모델에 담아 화면 쪽에 넘겨준다 > 실행해보기 controller 동작에 대해 살펴봅니다 1. HelloController 파일에 다음과 같은 내용을 추가 @GetMapping("hello-mvc") public String helloMVC(@RequestParam("name") St..

    [Spring] 웹 개발을 하는 세 가지 방법(1) : 정적 콘텐츠

    웹 개발의 세 가지 방법 1. 정적 컨텐츠 👈 2. MVC와 템플릿 엔진 3. API 정적 컨텐츠 - 스프링 부트는 정적 컨텐츠 기능을 기본적으로 제공한다 https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content /static 디렉터리에서 정적 콘텐츠를 불러온다고 합니다 웰컴 페이지 만들기에서 static 폴더에 정적 파일을 넣었었죠! > 실행해보기 hello-static.html 파일을 static에 생성하고 아무 내용이나 입력해보았습니다 프로젝트를 실행하고 다음과 같은 파일명으로 접근합니다 localhost:8080/h..

    [Spring] 웹 개발을 하는 세 가지 방법 : 정적 컨텐츠, MVC와 템플릿 엔진, API

    웹 개발의 세 가지 방법 자세한 예시 및 동작 설명은 각 게시물에 대한 링크로 달아두었습니다 1. 정적 컨텐츠 서버에서 하는 것 없이 서버에서 웹 브라우저에 파일을 그대로 내려주는 것 👉 Click to Go [Spring] 정적 콘텐츠 웹 개발의 세 가지 방법 1. 정적 컨텐츠 👈 2. MVC와 템플릿 엔진 3. API 정적 컨텐츠 - 스프링 부트는 정적 컨텐츠 기능을 기본적으로 제공한다 https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/referen.. codesyun.tistory.com 2. MVC와 템플릿 엔진 가장 많이 사용하는 방법으로, HTML을 그냥 주는 것이 아니라 서버에서 프로그래밍하여 HTML을 동적으로 바꿔서 내려주는 것 대표적인 템플..

    [Spring] 스프링 프로젝트 빌드하고 실행하기

    cmd 창에서 프로젝트를 build 해보고 실행까지 해보기 😎🙌 제 글은 모두 window 사용을 기준으로 합니다! 1. 프로젝트 폴더로 이동해서 cmd 창 열기 강사님은 맥을 쓰셨지만, 저는 윈도우에서 작업하기 때문에 파일 탐색기에서 폴더로 이동! 다음 사진처럼 주소창에 cmd + [enter] 치면 해당 위치에서 cmd 창이 열립니다 📌 참고 : 윈도우 cmd 명령어 리눅스 명령어만 사용해봤어서 이번에 찾아가면서 사용했네요 🙄 이번에 게시글에서 사용한 두 가지 명령어만 써두겠습니당 cd : 폴더 이동할 때 사용 (리눅스의 cd) dir : 현재 폴더의 파일, 폴더 목록을 보여준다 (리눅스의 ls) 2. build 다음 명령어로 build ! gradlew build 📌 build가 잘 안될 때에는 c..

    [Spring] 정적 / 템플릿 Welcome Page 만들기

    지난 글에서 프로젝트를 실행했을 때, localhost를 통해 접속하면 다음과 같은 화면이 나왔었습니다! 프로젝트 내용이 아무것도 없기 때문에 위와 같은 에러가 떴죠?! 이렇게 localhost:8080으로 접속했을 때 뜨는 첫 페이지! welcome page를 만들어보도록 하겠습니다 🧨🧨🧨 > static Welcome Page 만들기 1. src > main > resources > static 에 index.html 파일 생성 2. 다음과 같은 내용 입력 Hello hello 3. 프로젝트 실행 후, localhost:8080 접속 입력한 HTML 파일의 내용대로 Welcome Page가 생성되었습니다 ✨ 저는 /hello에 만들어둔 페이지가 있어서 hello를 클릭하면 해당 페이지로 이동되네요 이..