Spring
-
[Spring] Form에 쏴준 데이터 받고 다시 출력하기Spring 2021. 10. 6. 11:23
데이터 Form으로 받기 이름 등록 Form으로 감싸 데이터를 입력받아 가져오는 방법은 @PostMapping이라는 어노테이션을 쓰는 것이다. @PostMapping("/members/new") public String create(MemberForm form) { Member member = new Member(); member.setName(form.getName()); memberService.join(member); return "redirect:/"; } 이렇게 하면 members/new 에서 폼을 받을 때 연결받아 데이터를 받을 수 있다. 데이터를 받고나면, 리다이렉트를 해줌으로써 형식을 유지해준다. 데이터 프론트로 출력하기 Model 클래스 객체를 통해 데이터를 출력하는 방법은 앞서 설명한 ..
-
[Spring] 스프링 빈과 의존관계Spring 2021. 10. 5. 16:58
컴포넌트 스캔과 자동 의존관계 설정 멤버 컨트롤러가 멤버 서비스와 멤버 레포지토리를 사용할 수 있도록 의존관계를 준비해야한다. @Controller public class MemberController { private final MemberService memberService; @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } } 생성자에 @Autowired를 붙여주면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어준다. 이렇게 객체 의존관계를 외부에서 넣어주는 것을 DI(Dependency Injection), 의존성 주입이라고 한다. 이전 테스트에서는 개발..
-
[Spring] Test 코드 기초작성Spring 2021. 10. 4. 16:06
요즘은 테스트 코드를 작성하고 개발하는데에 사용하는 것이 필수라고 한다. 때문에 처음 배운 테스트 코드 작성을 기록한다. 한개의 클래스와 3개의 함수를 만들었다. 때문에 3개의 함수가 잘 돌아가는지에 대해 코드를 작성할 예정이다. 해당 클래스에 대해 테스트코드를 작성할 때에는 실제 메인폴더와 경로를 똑같이 설정해주고 이름도 뒤에 Test만 붙인다. 실제 save함수와 테스트용 save함수 테스트를 할때는 어노테이션 @Test를 붙인다. 테스트코드 자체는 큰 그게 없지만, 마지막줄에 조금 차이가 있다. 테스트 시에 결과값을 비교하는 함수는 여러가지 있지만, 인프런 김영한 선생님은 한가지 방법을 추천한다. Assertions.assertThat() Assertion클래스는 두가지가 있는데 junit에서 지원..
-
[Spring] 웹 개발 기초Spring 2021. 10. 1. 11:43
웹을 개발하는 방법은 크게 3가지가 있다. - 정적 컨텐츠 - MVC와 템플릿 엔진 - API 정적 컨텐츠 서버에서 하는 것 없이 파일을 웹 브라우저에 내려주는 것 MVC와 템플릿 엔진 템플릿 엔진은 HTML을 그냥 주는 것이 아닌 프로그래밍을 거쳐 동적으로 바꿔서 내리는 것으로 JSP, PHP 등이 템플릿 엔진이다. 그것을 하기위해 Model View Controller가 필요하다. API JSON이라는 데이터 포맷으로 클라이언트에게 데이터를 전달한다. Vue React도 다 JSON에서 받아 클라이언트에서 알아서 화면을 그리고 정리해준다. 서버끼리 데이터 통신을 할 때에도 HTML이 필요없어 API방식을 쓴다. 방법별 상세 설명 정적컨텐츠 static에 넣으면 알아서 접근 가능하다. 내장 톰캣서버가 ..
-
[Spring] Welcome Page 만들기Spring 2021. 9. 28. 00:06
Spring에서 제공하는 Welcome Page 기능 static/index.html을 올려두면 Welcome page 기능을 제공한다. Spring Boot Reference Documentation 해당사이트를 가면 welcom page를 비롯한 여러가지 기능들에 대해 찾아볼 수 있다. Thymeleaf 템플릿 엔진 Spring Boot Reference Documentation 템플릿 엔진은 주로 4개가 있으며 우리는 그 중 하나인 Thymeleaf를 쓸 것이다. 페이지 맵핑해보기 package hello.hellospring.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model..
-
[Spring] 프로젝트 생성 후 구조 겉핥기Spring 2021. 9. 27. 23:25
프로젝트의 구조와 역할 프로젝트의 대략적인 구조는 다음과 같았다. gradle gradle과 관련된 폴더들을 모아놨다. src src폴더의 구조는 크게 main폴더와 test로 나눠져있다. 요즘은 기본프로젝트가 이렇게 나눠져있는게 표준이라도 한다. 그만큼 test코드라는 것이 중요하다는 것이다. main폴더에는 java폴더와 resource폴더가 있다. java폴더에는 java파일들이 들어있으며, resouce폴더에는 자바파일을 제외한 xml, properties, html 등등의 설정 파일이나 기타 파일들이 들어가는 곳이라고 한다. build.gradle build.gradle은 중요한 파일이다. 부트가 생기기 전에는 하나하나 쳤어야했으나 부트가 생겨 그럴 필요가 없어졌다. plugins { id 'o..