본문 바로가기
개발공부/Spring

[스프링부트] 스프링 입문 - 코드로 배우는 스프링 부트(인프런, 김영한)

by dokii 2022. 3. 2.
728x90
반응형

목차

1. 프로젝트 환경설정

2. 스프링 웹 개발 기초

3. 회원관리 예제

4. 스프링 빈과 의존관계

5. 웹mvc개발 (실습)

6. 스프링 db접근 기술

7. aop

 

공부한 김영한 강사님의 인프런 강의 링크

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

 


<정리>

 

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
반응형

댓글