728x90
반응형
목차
1. 프로젝트 환경설정
2. 스프링 웹 개발 기초
3. 회원관리 예제
4. 스프링 빈과 의존관계
5. 웹mvc개발 (실습)
6. 스프링 db접근 기술
7. aop
공부한 김영한 강사님의 인프런 강의 링크
<정리>
1. 프로젝트 환경설정, 설치
- -자바 11버전으로 재설치
- ide : 인텔리제이 설치
- 서버배포시 배포파일을 java -jar <파일명> 으로해주면 배포완료
-> 서버에서 스프링이 동작한다. 과거에는 톰캣을 서버에 설치하고, 특정폴더를 만들어 집어넣었다.(아주복잡)
아래와같이 cmd에서 배포해주면, 인텔리제이에서 서버를 돌리지않아도 서버에서 실행되는것을 확인할수가 있다.
맥 ll ->윈도우 dir
cd study
cd hello-spring2
dir
./gradlew.bat build
cd build
dir
cd libs
dir
java -jar hello-spring2-0.0.1.-snapshot.jar
-> 서버에서 localhost:8080로 접속하면 실행되는걸 확인할수 있다.
2. 스프링 웹 개발 기초
- 스프링 웹 개발 에는 세가지 방법이 있다.
1. 정적 컨텐츠 : 그대로 파일을 웹브라우저에 내려주는 방법
2. mvc : 서버에서 프로그래밍해서 동적으로 html을 내려준다.( jsp, php)
3. api : json과 같은 데이터구조 포맷으로 클라이언트에게 전달한다. (vue, rect 등)
- 정적컨텐츠 :컨트롤러에 해당 요청과 매핑되는것이 없다면, /static 에서 파일을 찾는다. 그리고 찾은 파일을 그대로 던져준다.
- mvc와 템플릿 엔진 : 내장 톰캣서버에서 해당 해당 메서드가 매핑되어있는 컨트롤러를 찾음 -> viewresolver-> Thymeleaf템플릿 엔진이 html을 '변환후' 넘겨준다. (viewResolver : 화면을 찾아주고 템플릿엔진을 연결해줌)
- api방식 : @ResponseBody가 있으면 http의 바디에 내용을 직접 반환하는데, 객체는 json컨버터가, 기본 문자인경우 string컨버터가 사용됨
3. 회원관리 예제
- 컨트롤러: 웹 MVC의 컨트롤러 역할
- 서비스: 핵심 비즈니스 로직 구현
- 리포지토리: 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리
- 도메인: 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨
- 테스트케이스 작성하기
- - src/test/java 하위 폴더에 생성한다.
- @AfterEach를 각테스트마다 사용해서 직전 테스트 결과가 db에서 삭제되도록한다.
- given/when/then사용해서 구분해서 쓰면 좋다.
//given : 기반데이터
//when : 어떤걸검증하려고하는지
//then : 검증내용
4. 스프링 빈과 의존관계
- - 생성자에 @Autowired가 있으면 스프링이 연관된 객체를 스프링 컨테이너에서 찾아서 넣어줌. 이것을 의존성 주입이라고 한다 (DI)
- 스프링 빈을 등록하는 2가지 방법
- 컴포넌트 스캔과 자동 의존관계 설정하기(@Conponent,@Controller,@Service, @Repository..)
- 자바 코드로 직접 스프링 빈 등록하기(Confing클래스를 만들고 @Configuration, @Bean)
- xml은 최근에는 거의사용하지않아 생략함.
6. 스프링 db접근 기술
- 순차적으로 db를 이용해보자.
- h2 데이터베이스 사용
- 순수 jdbc 사용
- 스프링 통합 테스트
- jdbcTemplate -> jdbc에서의 반복을 줄여주지만 sql문은 직접 짜야한다.
- jpa -> 자동으로 쿼리를 짜주는 혁신적인..
- 스프링 데이터 jpa : 아주편하지만 jpa를 충분히 공부한후 사용하는것이 좋다 ! - JPA
- show-sql : JPA가 생성하는 SQL을 출력한다.
- ddl-auto : JPA는 테이블을 자동으로 생성하는 기능을 제공
- @Entity로 엔티티를 매핑한다. (도메인)
- 서비스계층에 트랜잭션을 추가하고, 모든 데이터 변경은 트랜잭션 안에서 실행해야한다,
- JPA를 사용하도록 스프링 설정 변경해준다. - 스프링 데이터 jpa
- 스프링 부트 + JPA라는 기반 위에 + 스프링 데이터 JPA라는 프레임워크의 조합.
- 비지니스 로직에 집중할수 있는장점. 인터페이스만으로 개발가능.
7. aop
728x90
반응형
'개발공부 > Spring' 카테고리의 다른 글
[Rest api] json데이터 컨트롤러로 받기 (@RequestBody) (0) | 2021.12.07 |
---|---|
[spring] RestController에서 파라미터 여러개 (0) | 2021.12.04 |
[spring] tdd로 개발하기(1) (작성중) (0) | 2021.11.27 |
[spring] 왜 처음 프로젝트를 실행하면 home.jsp가 실행될까? (0) | 2021.11.27 |
[spring] clone해온 파일 스프링으로 import하기 (0) | 2021.11.24 |
댓글