전체 글 222

세션, 모델, 그리고 요청 - @SessionAttributes

이전까지 우리는 jsp로 값을 보내고, 보낸 값을 사용하는 법을 배운 적이 있다. 그리고 그 값을 이용해 login에 성공하면 다른 페이지로 이동하는 법을 배웠다. 하나 생각해보자. 우리가 특정 jsp에 값을 보냈을 때, 우리는 지금까지 배운 걸 이용해서 다른 jsp에서도 그 값을 사용할 수 있게끔 할 수 있는가?  안된다. 지금까지 배운 것만으로는 할 수 없다. 때문에 이번 시간에는 세션이라는 걸 이용해서 여러 jsp에서 값을 이용할 수 있게끔 하는 방법을 배워보려 한다.  이를 위해서 일단 페이지 내부에 다른 페이지로 갈 수 있는 링크를 삽입해보려 한다. ```${name} Welcome~!Manage your todos``` 이렇게 하고 나서, 페이지 내부의 링크를 통해 list-todos로 이동해..

todolist 만들기

sayHello.jsp, login.jsp로 대충 어떻게 해야 하는지 알았을테니 이제 본격적으로 투두리스트를 만들어 볼 것이다. 언제나 그랬듯이 todo 패키지를 만들고 그 안에 todo와 관련된 걸 모조리 쑤셔넣는다. Todo.java, TodoController.java, TodoService.java 이렇게 세 가지 파일을 만들어볼 건데, Todo와 TodoService를 먼저 만들어보자. Todo에는 id, username, description, targetDate, done 이렇게 세 가지 멤버변수를 가지고 있다고 하자. ```public class Todo { private int id;private String username;private String description;private ..

로그인 양식 만들기

이번 시간에는 로그인 양식을 만들어 볼 것이다.  물론 이번 시간에 배운 양식을 그대로 계속 쓰지는 않을 것이고, 오늘 시간을 통해 어떻게 돌아가는지 이해한 뒤에는 Spring Security를 사용할 것이다. 잡설은 줄이고 시작해보자. 일단 @RequestParam과 ModelMap은 더는 필요하지 않다. 없애자. 그리고 login.jsp로 가서 form을 이용해 로그인 양식을 만들어보자. ```Welcome to the login page~!Name: Password: ``` 이렇게 작성하고, 실행한 뒤, 양식에 값을 채우면 이전 시간에 url을 통해 값을 넘겼을 때처럼 url이 변하는 걸 확인할 수 있다. 그런데 이렇게 url을 통해 정보를 전송하는 건 안전하지 않다. 인터넷을 통해 접근한다고 할 ..

Spring MVC 작동원리

Spring MVC와 웹 애플리케이션의 작동 원리웹 애플리케이션의 기본 작동 방식은 브라우저가 서버에 요청을 보내고, 서버가 이에 대한 응답을 반환하는 구조입니다. 이번 글에서는 Spring Boot와 Spring MVC를 통해 웹 애플리케이션이 어떻게 작동하는지를 살펴보겠습니다.초기 Java 웹 애플리케이션 개발Java로 웹 애플리케이션을 개발하기 시작했을 때, 모든 로직이 JSP 파일 내에 포함되어 있었습니다. 이 방식은 흐름 로직, 뷰 로직, 데이터베이스 로직이 모두 JSP에 혼합되어 있어 유지보수가 어려웠습니다. 이러한 구조를 모델 1 아키텍처라고 부릅니다.모델 2 아키텍처로의 전환이후 모델 2 아키텍처로 발전하면서 로직이 명확하게 분리되었습니다. 뷰 로직은 뷰로 가고, 데이터베이스 같이 데이터를..

JSP 시작하기

이번 시간부터는 지금까지 배운 Spring Framework, Spring Boot, Hibernate를 이용해 Java 웹 애플리케이션을 만들어볼 것이다. 이 과정에서 복습은 당연히 이루어질 것이고, 과정 중에 겪는 어려움을 해결하기 위해 새로운 것들을 배워보기도 할 것이다. 일단 시작해보자. 언제나 그랬듯이 Spring initializr로 프로젝트를 만들어보자.  언제나처럼 빌드툴은 Maven을 선택하자. Spring Boot는 릴리즈된 버전 중 최신 버전을 사용하자. Project: MavenLanguage: JavaSpring Boot: 3.3.2 Group: com.in28minutes.springbootArtifact: myfirstwebappName: myfirstwebappDescript..

Spring Boot 시작하기

Spring Boot가 있기 전에는 Spring Project를 설정하는 작업이 쉽지 않았다. REST API를 만든다고 가정하면, 이를 위해서 Spring Framework, Spring MVC, 그리고 JSON 바인딩 프레임워크 로깅이 필요하다. 따라서 이와 관련된 모든 의존성과 버전을 xml 파일을 통해 관리해야 했다.  이 뿐만 아니라 각각의 설정도 고려해야 하지, 단위 테스트 해야지, 비기능 요구사항도 고려해야 하지, 오류 처리 기능도 괜찮아야 하지, 그리고 모니터링도 해야 하고....  놀랍게도 Spring Boot가 없을 때는 이 모든 걸 수동으로 구현해야 했다. 때문에 프로젝트 설정이 쉽지 않았다. 게다가 이걸 한 번 하면 끝이 아니라, 새 프로젝트를 만들 때마다 반복해야 했다. 그리고 이..