분류 전체보기(169)
-
회원 레파지토리 테스트케이스 작성
회원을 관리하는 repository를 만들었다. 일단 repository를 interface로 선언하여 repository를 구현하는 객체를 유연하게 바꿀수 있도록 한다. MemberRepository.java package groupInfo.study.repository; import java.util.List; import java.util.Optional; import groupInfo.study.domain.Member; public interface MemberRepository { Member save(Member member); Optional findById(Long id); Optional findByName(String name); List findAll(); //Optional로 감싸..
2024.03.23 -
스프링부트 웹 개발 방식(api)
결론부터 말하면 우리가 브라우저에서 서버로 요청을 보내면 controller에서 요청을 받아 @ResponseBody 를 이용해 객체를 응답 body 부분에 담아서 응답해주는걸 api 방식이라고 한다. 밑에 예시를 봐보자. 1) 요청을 보냄(url) ex1) http://localhost/hello-json?name=spring //문자열 반환을 위한 예시 ex2) http://localhost/hello-json //json 반환을 위한 예시 2) 서버의 controller에 요청이 매핑됨 기존에는 데이터를 받아서 viewResolver한테 넘겨주어서 화면에 렌더링 되어 반환되는데 @ResponseBody가 있는 경우 HttpMessageConverter가 동작하여 데이터를 응답 body에 담아서 반환..
2024.03.19 -
스프링부트 웹 개발방식(MVC)
mvc 공부 MVC는 Model, View, Controller의 약자이다. 과거에는 view와 controller를 하나로 합쳐서 개발했다고 한다. 예를들어 jsp 파일안에 비즈니스 로직이나 처리하는 모든 소스가 담겨 있기도 했다고 한다. 그래서 유지보수를 하는데 하나의 jsp 파일에 몇천줄의 소스를 보고 유지보수를 해야한다. 엄청나게 비효율적이고 가독성도 떨어지고 문제가 많다. MVC 패턴은 View와 Controller 가 분리되어 View는 화면과 관련된 소스만 있고 Controller에서는 비즈니스 로직을 처리하는 소스만 있어서 편리하게 개발 할 수 있다. 예시 1) 사용자가 url 요청을 보낸다. http://localhost/study-mvc?name=mvc 2) Controller 가 요청..
2024.02.18 -
스프링부트 웹 개발 방식(정적 컨텐츠)
스프링 웹 개발에는 크게 3가지로 개발할 수 있다. 정적 컨텐츠 MVC 패턴 API 위에 3가지 방법중 정적 컨텐츠 방법을 알아보자 정적 컨텐츠는 우리가 개발한 HTML 파일을 브러우저를 통해 바로 화면으로 띄우는 방식이다. 이 방식은 데이터를 화면에 동적으로 그리거나 데이터에 대한 처리르 할 수 없다. 그냥 이미 만들어진 화면을 보여주는 방식이다. 과정을 설명하면 1) 사용자가 원하는 화면을 URL로 요청한다 2) 스프링부트의 내장 톰캣은 스프링 컨테이너를 통해 URL 요청을 처리할 수 있는 메소드를 Controller에서 찾는다. 그런데 요청을 처리할 수 있는 메소드가 없다. 3) controller에서 처리할 수 있는 메소드가 없으면 src/main/resources의 static에서 staticT..
2024.02.18 -
스프링부트 프로젝트 빌드하고 실행하기
우리가 스프링부트 프로젝트를 실행할때 보통 이클립스에 들어가서 실행을 했는데 만약에 내가 만든 이 프로젝트를 다른 컴퓨터로 옮겨서 실행하고 싶다고 생각해보자. 다른 컴퓨터로 배포를 해야하는데 그 컴퓨터에 이클립스 깔고 소스 클론하고 개발환경 새팅해서 이클립스로 실행한다고 생각해보자. 참 하기싫어진다. 오늘 이 방법은 빌드를 통해 jar 파일을 생성하고 그 파일을 실행함으로써 프로젝트가 실행되는 방법이다. jar 파일만 옮기고자 하는 컴퓨터로 배포해서 실행하면 된다.(다른 컴퓨터에 직접 옯겨서 실행은 안해봤음ㅎㅎ) 1) 파일 탐색기로 프로젝트 src 폴더가 있는 곳으로 이동 window의 경우 src 폴더가 있는곳에 gradlew.bat 파일이 보일거다. 이거를 빌드하면된다. mac 사용자는 gradlew..
2024.02.18 -
스프링부트 서버 재시작 없이 반영(spring-boot-devtools)
우리가 스프링부트로 개발을 하고 있으면 html 파일이라던가 class 수정을 하면 서버를 껐다가 켜야 반영이된다. 그런데 spring-boot-devtools를 이용하면 서버를 재시작 할 필요없이 브라우저에서 새로고침만 하면 반영이된다. 이 좋은거를 사용할 수 있는 방법을 알아보자. 간단하다 2단계인데 금방 끝나니 주의바란다. 1) dependencies에 추가 gradle 프로젝트인 경우 build.gradle에 밑에 문구를 추가해줘라 implementation 'org.springframework.boot:spring-boot-devtools' maven 프로젝트인 경우 pom.xml에 밑에 문구를 추가해줘라 org.springframework.boot spring-boot-devtools 3.2...
2024.02.18