728x90 반응형 전체 글112 [스프링MVC 20] MVC 패턴으로 회원 관리 웹 애플리케이션 직접 MVC 패턴을 적용해서 프로젝트를 리팩터링 해보자. 컨트롤러로 서블릿을 사용하고, 뷰로 JSP를 사용하고, Model은 HttpServletRequest 객체를 사용한다. request는 내부에 데이터 저장소를 가지고 있는데, request.setAttribute() , request.getAttribute() 를 사용하면 데이터를 보관하고, 조회할 수 있다. 회원 등록 /**회원등록 폼 -컨트롤러*/ @WebServlet(name = "mvcMemberFormServlet", urlPatterns = "/servlet-mvc/members/new-form") public class MvcMemberFormServlet extends HttpServlet { @Override protected vo.. 2023. 7. 27. [스프링MVC 19] MVC 패턴 1. 하나의 서블릿이나 JSP만으로 비즈니스 로직과 뷰 렌더링까지 모두 처리하게 되면, 너무 많은 역할을 하게되고, 결과적으로 유지보수가 어려워진다. (비즈니스 로직을 호출하는 부분에 변경이 발생해도 해당 코드를 손대야 하고, UI를 변경할 일이 있어도 비즈니스 로직이 함께 있는 해당 파일을 수정해야 한다.) 예시 HTML 코드 하나 수정해야 하는데, 수백줄의 자바 코드가 함께 있다! 비즈니스 로직 하나 수정해야 하는데 수백 수천줄의 HTML 코드가 함께 있다! 2. 이게 정말 중요한데, 진짜 문제는 둘 사이에 변경의 라이프 사이클(변경 주기)이 다르다는 점이다! UI 를 일부 수정하는 일과 비즈니스 로직을 수정하는 일은 각각 다르게 발생할 가능성이 매우 높고 대부분 서로에게 영향을 주지 않는다. 이렇게.. 2023. 7. 26. [스프링MVC 18] JSP로 회원 관리 웹 애플리케이션 JSP로 회원 관리 웹 애플리케이션을 만들어보자. JSP를 사용하려면 build.gradle에 라이브러리를 추가해야 한다. implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' 회원 등록 폼 JSP (main/webapp/jsp/members/new-form.jsp) username: age: 전송 JSP 문서는 첫줄에 이렇게 시작해야 한다 첫 줄을 제외하고는 완전히 HTML와 똑같다. JSP는 서버 내부에서 서블릿으로 변환되는데, 이전의 MemberFormServlet과 거의 비슷한 모습으로 변환된다. [스프링MVC 17] 서블릿으로 회원 관리 웹 애플리케이션 (tistory.com).. 2023. 7. 26. [스프링MVC 17] 서블릿으로 회원 관리 웹 애플리케이션 서블릿으로 회원 관리 웹 애플리케이션을 만들어보자. MemberFormServlet 단순하게 회원 정보를 입력할 수 있는 HTML Form을 만들어 응답 /**회원 등록 폼*/ @WebServlet(name="memberFormServlet", urlPatterns = "/servlet/members/new-form") public class MemberFormServlet extends HttpServlet { private MemberRepository memberRepository = MemberRepository.getInstance(); //싱글톤이므로 new 안됨 @Override protected void service(HttpServletRequest req, HttpServletRespo.. 2023. 7. 25. [Java] StringBuilder 클래스 문자열을 저장하는 String은 내부의 문자열을 수정할 수 없다.(내용 변경 불가) 또한 문자열을 결합하는 +연산자를 많이 사용할수록 성능을 느리게 한다. →문자열을 변경하는 작업이 많을 경우에는 StringBuffer 또는 StringBuilder 클래스를 사용하는 것이 좋다! StringBuffer 클래스 String처럼 문자형배열(char[])을 내부적으로 갖고있다. 그러나, String과 달리 내용을 변경할 수 있다. 배열은 길이 변경 불가. 공간이 부족할땐? 3단계 처리 필요 새로운 배열 생성 내용복사 참조(주소) 변경 → StringBuffer는 저장한 문자열의 길이를 고려해서 적절한 크기로 생성해야 한다. StringBuffer는 equals()가 오버라이딩되어있지않다. (내용이 아닌, 주소.. 2023. 7. 24. [스프링 MVC 5] 웹 애플리케이션 이해: 자바 백엔드 웹 기술의 역사 자바 웹 기술 (과거) 서블릿 - 1997 HTML 생성이 어려움 JSP - 1999 HTML 생성은 편리하지만, 비즈니스 로직까지 너무 많은 역할 담당 서블릿, JSP 조합 MVC 패턴 사용 모델, 뷰, 컨트롤러로 역할을 나누어 개발 MVC 프레임워크 춘추 전국 시대 - 2000년 초 ~ 2010년 초 MVC 패턴 자동화, 복잡한 웹 기술을 편리하게 사용할 수 있는 다양한 기능 지원 스트럿츠, 웹워크, 스프링 MVC(과거 버전) 자바 웹 기술 (현재 사용 기술) 애노테이션 기반의 스프링 MVC 등장 @Controller MVC 프레임워크의 춘추 전국 시대 마무리 스프링 부트의 등장 스프링 부트는 서버를 내장 과거에는 서버에 WAS를 직접 설치하고, 소스는 War 파일을 만들어서 설치한 WAS에 배포 스.. 2023. 7. 24. 이전 1 ··· 9 10 11 12 13 14 15 ··· 19 다음 728x90 반응형