이 영역을 누르면 첫 페이지로 이동
개발다이어리 블로그의 첫 페이지로 이동

개발다이어리

페이지 맨 위로 올라가기

개발다이어리

저만의 개발일지를 만들어가는 공간입니다.

Spring/MVC

  • 개발다이어리
스프링 MVC 밑바닥부터 만들어보기6 - 어댑터 패턴을 이용한 유용한 컨트롤러

스프링 MVC 밑바닥부터 만들어보기6 - 어댑터 패턴을 이용한 유용한 컨트롤러

2022.04.20
V4까지 만든 프로젝트로 이제는 개발자가 편리하게 사용할 수 있는 형태로 완성되었다. 그런데 만약에 개발자가 다른 버전의 컨트롤러를 사용하고 싶다면 어떻게 해야할까? 지금까지 만든 것은 프론트 컨트롤러에서 특정 버전의 컨트롤러를 지정해서 사용하고있었다. 만약 V4를 사용하다가 V3를 사용하고 싶다면 지금의 상황에서는 변경이 불가능하다. 이 불가능을 해결하기 위해서 어댑터 패턴을 도입해보고자 한다. 만약 우리가 110V짜리에 220V를 사용할려고 하면 전압이 맞지 않기 때문에 사용 할 수 없을 것이다. 이것을 해결하기 위해 어댑터를 이용해서 전압을 맞춰서 사용해주어야 한다. 이것처럼 서로 다른 2개를 연결시키기 위한 방법을 어댑터 패턴이라고 부른다. 이번에는 이 어댑터를 도입시켜서 V3와 V4중 어떤것이 ..
스프링 MVC 밑바닥부터 만들어보기5 - 서블릿 종속성 제거, Model분리

스프링 MVC 밑바닥부터 만들어보기5 - 서블릿 종속성 제거, Model분리

2022.04.20
이번에는 서블릿 종속성을 제거해보자. 지금은 컨트롤러들이 모두 request와 response를 강제로 받아서 사용하고있다. 꼭 사용하지 않는 컨트롤러도 있고 심지어 response는 거의 사용하지 않는데도 불구하고 서블릿에 종속되있어서 어쩔 수 없이 파라미터를 넘기고 받아서 처리하고있다. 이 부분을 수정해서 request, response가 아니라 http요청데이터에서 넘어온 파라미터를 담은 map을 컨트롤러가 받아와서 처리하도록 변경할 것이다. 그리고 view의 호출방식도 변경할 것이다. 각 컨트롤러에서 jsp의 주소를 모두 넘겨주고 있는데 이렇게 됐을 때 만약 jsp의 패키지 주소가 변경되었을 경우 모든 컨트롤러를 수정해야하는 일이 발생한다. 그렇기 때문에 컨트롤러에서는 논리 뷰 이름만 넘겨주고(j..
스프링 MVC 밑바닥부터 만들어보기4 - 프론트 컨트롤러와 view의 분리

스프링 MVC 밑바닥부터 만들어보기4 - 프론트 컨트롤러와 view의 분리

2022.04.14
프론트 컨트롤러는 개별적인 컨트롤러에 들어가기전에 가장 먼저 들어오게되는 컨트롤러이다. 프론트 컨트롤러를 사용한 방식을 '프론트 컨트롤러 패턴' 이라고 부르는데 스프링 MVC도 프론트 컨트롤러 패턴으로 구성되어있다. 가정먼저 프론트 컨토를러의 구조를 만들어보고 그 이후에 세세한 부분들을 바꿔가면서 진행해보도록 하겠다. 전반적인 구조는 프론트 컨트롤러, 컨트롤러 인터페이스, 컨트롤러로 짜여질 것이다. 요청의 흐름을 먼저 살펴보자면 이런 흐름으로 처리 될 것이다. 패키지는 package hello.spring_mvc_study.web.frontcontroller.v1 에서 진행될 것이고 버전이 바뀔때마다 v1이라는 패키지명만 변경될 것이다. JSP는 앞에 만들었던 파일을 그대로 사용할 예정이다. Contro..
스프링 MVC 밑바닥부터 만들어보기3 - MVC패턴의 시작

스프링 MVC 밑바닥부터 만들어보기3 - MVC패턴의 시작

2022.04.14
서블릿과 JSP를 단독으로 사용해서 코드를 작성하게 되면 하나의 파일이 너무 많은 일을 수행하게 되버린다. 이렇게 되면 유지보수도 어려워질 뿐더러 작업의 프로그램의 효율도 떨어질 수 있다. 이러한 문제를 극복하기 위해서 MVC패턴이 등장하게 되었다. MVC패턴은 Model, View, Controller로 역할을 구분해서 사용하는 방식이다. Model : View에 출력할 데이터를 담아두고 있는다. View : html과 같이 화면을 담당하는 코드이다. 모델에 담겨있는 데이터를 활용할 수 있다. Controller : HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행한다. View에 전달할 데이터를 모델에 담는다. Controller는 요청을 처리해 주는 역할이 주된 역할이기 때문에 그 ..
스프링 MVC 밑바닥부터 만들어보기2 - 서블릿과 JSP

스프링 MVC 밑바닥부터 만들어보기2 - 서블릿과 JSP

2022.04.11
이제부터는 간단하게 회원을 저장하는 기능와 조회하는 기능을 만들어볼려고 한다. 먼저 member클래스를 만들어준다. @Getter @Setter public class Member { private Long id; private String name; private int age; public Member() { } public Member(String name, int age) { this.name = name; this.age = age; } } 롬복을 이용해서 getter와 setter를 받았다. id값은 테이블의 pk값의 용도로 사용할 것이기 때문에 생성자에서 받지 않고 자동증가 방식으로 입력할 것이다. 다음은 기능을 수행할 repository를 만들어주자. public class MemberRe..
스프링 MVC 밑바닥부터 만들어보기1 - 서블릿 탐구하기

스프링 MVC 밑바닥부터 만들어보기1 - 서블릿 탐구하기

2022.04.11
흔히들 사용하고있는 SpringMVC는 많은 과정들을 거치면서 발전해 온 결과물이다. HTTP를 이용한 전송을 하는 웹 애플리케이션에서 어떻게 HTTP를 잘 활용하며 사용할 수 있을까를 고민해서 **서블릿**이 만들어졌다. 이 이후에 효울적인 개발을 위한 디자인 패턴으로 MVC패턴이 나오게 되고 Spring에서 이 패턴을 이용한 SpringMVC를 만들게 된 것이다. 무작위로 사용하던 SpringMVC가 어디서부터 어떻게 만들어졌으며 어떻게 동작하는지를 깊게 이해하고 사용하기 위해서 이 프로젝트를 진행한다. 아무 세팅도 없는 완벽한 기본부터 하면 더 좋겠지만 지금의 기술을 완전히 무시하는 것도 비효울적이라는 생각도 어느정도 들기에 기본 세팅을 SpringBoot를 이용한 세팅으로 진행하고자 한다. 물론 ..
스프링 MVC 여러 종류의 요청매핑 사용하는 방법

스프링 MVC 여러 종류의 요청매핑 사용하는 방법

2022.02.22
API매핑 API를 매핑하는 2가지 방식이다. 두 번째 방식은 첫 번째 방식의 축약형이다. (1) @RequestMapping("/hello", method = "RequestMethod.GET") 매핑할 경로와 HTTP메소드를 입력해주는 방식이다. @RequestMapping("/hello", method = "RequestMethod.GET") public String hello() { return "hello"; } @Controller어노테이션을 사용할 경우 return하는 이름의 html파일을 찾아서 리턴할 것이고 @RestController어노테이션을 사용한다면 return하는 문자열을 그대로 반환할 것이다. (2) @PostMapping("/hello") @RequestMapping에서 HT..
  • 최신
    • 1
  • 다음

정보

개발다이어리 블로그의 첫 페이지로 이동

개발다이어리

  • 개발다이어리의 첫 페이지로 이동

검색

메뉴

  • 홈
  • Github
  • 방명록

나의 외부 링크

카테고리

  • 분류 전체보기 (66)
    • Spring (19)
      • MVC (7)
      • Boot (3)
      • Core (8)
      • Security (1)
    • Java (1)
    • 네트워크 (7)
    • JPA (6)
    • IntelliJ (2)
    • Database (1)
      • h2 (1)
      • postgreSQL (0)
    • 토이 프로젝트 (5)
      • 여행일지작성 (5)
    • 에러모음 (7)
    • 테스트코드 (2)
    • Git (8)
    • Nginx (2)
    • AWS (1)
    • 책 리뷰 (1)
    • Kotlin (2)
    • 회고 (1)
      • 24년도 회고 (1)
    • API문서 (0)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 네트워크 #TCP #IP #인터넷 통신
  • 단방향 매핑
  • HTTP
  • JPA
  • 연관관계 매핑
  • HTTP상태코드
  • 테스트코드 실행안됨
  • http 헤더

정보

ssung의 개발다이어리

개발다이어리

ssung

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © ssung. Designed by Fraccino.

티스토리툴바