본 포스팅은 스프링을 이용한 간단한 예제 프로젝트입니다. 지금까지 기능을 만들었다면 이제 이 기능을 웹 페이지 뷰와 연결시켜 보고자 한다. (혹시 이전 포스팅에서 작성해두었던 기능 개발에 대한 글이 궁금하다면 이 글 최하단에 있는 링크를 참고하기를 바란다.) 1. 홈화면 만들기 먼저 홈 컨트롤러에 다음과 같이 작성한다. 1-1. HomeController @Controller public class HomeController { @GetMapping("/") public String home() { return "home"; } } 이렇게 하면 도메인 주소를 쳤을 때 프로젝트 경로 내에 src/main/resources/templates/home.html 파일을 찾아서 해당 html파일을 띄워주게 된다...
Backend/게시판만들기
본 포스팅은 스프링을 이용한 간단한 예제 프로젝트입니다. 지금까지의 포스팅에서 Service계층인 userService, Repository 계층인 userRepository 를 만들었다. 이제 컨트롤러를 만들어서 url 연결을 해주면 해당 기능을 사용할 수 있는데 한가지 문제점이 있다. Controller에서 서비스를 사용해야하는데 어떻게 의존관계를 설정하는가에 대한 문제이다. 물론 new 키워드로 생성해서 넣어도 되지만 이렇게하면 다른곳에서도 userService를 사용할 경우 같은 객체를 불필요하게 여러번 생성하게 되고 그에 따른 부작용이 발생할 위험이 있다. 또, userService가 가진 의존관계를 또 일일히 세팅해줘야하는데 프로젝트 규모가 커지면 커질수록 여간 귀찮은 일이 아닐 수 없을 것이..
본 포스팅은 스프링을 이용한 간단한 예제 프로젝트입니다. 이번에는 저번에 만든 userRepository 저장소를 이용해서 서비스 클래스를 만들어보고자 한다. 먼저 저번 포스팅에서 만든 Repository의 코드는 다음과 같다. (인터페이스는 생략한다.) public class MemoryUserRepositoryImpl implements UserRepository { Map userMap = new HashMap(); private static long sequence=0L; @Override public UserVO save(UserVO userVO) { userVO.setId(++sequence); userMap.put(userVO.getId(), userVO); return userVO; } @..
본 포스팅은 스프링을 이용한 간단한 예제 프로젝트입니다. 개발을 하고나면 해당 기능이 제대로 동작하는지 테스팅해보아야 한다. 테스팅하는 방법으로 쉽게 생각해볼 때 main메서드나 컨트롤러의 url을 호출하는 방법이 있겠지만 프로젝트 규모가 커지고 여러명이 개발하게 되면 이러한 방법만으로 테스팅하는 것은 쉽지않다. Java에서는 이러한 문제를 JUnit이라는 프레임워크를 제공해서 쉽게 만든 기능을 테스트할 수 있는 환경을 제공한다. 우선 이전 포스팅에서 개발한 리포지토리 통신 소스코드는 아래와 같다. 테스트를 진행할 Repository 코드 public interface UserRepository { UserVO save(UserVO userVO); Optional findById(Long id); Opt..