jscode - 스프링부트 입문 클래스 (MVC). 6

2023. 8. 16. 11:02· Development studies/spring

이전 포스팅

https://turtlejacob.tistory.com/72

 

jscode - 스프링부트 입문 클래스 (Spring Data JPA 활용과 예외처리). 5

이전 포스팅 https://turtlejacob.tistory.com/71 jscode - 스프링부트 입문 클래스 (Spring data JPA). 4 이전 포스팅 https://turtlejacob.tistory.com/70 jscode - 스프링부트 입문 클래스 (CURD APi). 3 이전 포스팅 https://turtleja

turtlejacob.tistory.com

 


 

jscode - 스프링부트 입문 클래스 6회차 학습내용 기록( 2023.07.24 )

 

학습목표

  • 현업에서 자주 쓰이는 java 심화
  • controller,service,repository 구분하기

 

tip

  • 변수명, 코드 스타일 신경쓰는 습관 들이자
    • 약어 쓰지 않기
    • CTRL + ALT + L

 

자바 고급 처리 

  • 이 부분은 관련 포스팅으로 참조해주셨는데 따로 한번씩 리뷰를 올려야할꺼 같다.
  • strem
    • 리스트 타입을 처리하기 좋음
  • blilder pattern
    • https://readystory.tistory.com/121
    • 코드의 가독성을 높여준다.
  • 제네릭

 

controller, service, repository 구분하기

  • 스프링에서 말하는 mvc패턴이다 
    • 내가 여기서 헷갈렸던 부분이 mvc패턴은 model, veiw, controller인데 이게 1대1로 c,s,r에 맵핑시키려고 고민했던 것이다
    • 결록적으로 MVC에서 C는 controller에 해당하는 것은 맞지만 m,v은 model, veiw에 1대1로 맵핑되지는 않는다.
  • controller
    • 요청을 Mapping 해주고, 요청자에게 응답을 전달하는 역할
    • @controller, @getmapping, @PostMapping 등을 사용
  • Service
    • 비지니스 로직을 처리하는 부분
    • controller와 repository를 연결하는 계층
    • @service 사용
    • 이전의 과제에서 controller의 메소드에 내부구현 부분을 분리한다고 생각하면 된다.
  • repository
    • 데이터베에스를 접근하여 데이터를 다루는 계층
  • 애노테이션과 빈
    • 각 controller, service, repository의 애노테이션의 내부를 보면 @component을 가지고 있다. 
    • 이는 스프링이 내부를 scan할 때 확인하고 빈으로 등록하는 애노테이션입니다.
      • 이렇게 빈으로 등록된 객체는 다른 클래스에서 사용할 때 new 생성자를 사용할 필요가 없다.
      • 이 것은 싱글톤과 관련있는데 빈 컨테이너에 미리 객체를 빈으로 등록해 놓고 중복 생성이 되지 않고 싱글톤으로 관리 되도록 유지하는 기술이다.

 

과제

  • 지금까지 구현했던 controller 메소드 service로 분리하기
    • 그동안 실습한 파일을 git에 올렸다 그것으로 대체함
    • https://github.com/hojuna/springboot_study_jscode
 

GitHub - hojuna/springboot_study_jscode

Contribute to hojuna/springboot_study_jscode development by creating an account on GitHub.

github.com

  • (심화) 랜덤 id 추가해서 상품 등록하기
  public String saveRandomIdProducts(Product product){
        Random random = new Random();

        while (true){
            long idNum= random.nextInt(1000);
            if(!productRepository.existsById(idNum)){
                ProductEntity index = new ProductEntity(idNum,product.name,product.price);
                productRepository.save(index);
                return index+" - 성공";
            }
        }
    }

다음 포스팅

https://turtlejacob.tistory.com/74

'Development studies > spring' 카테고리의 다른 글

jscode - 스프링부트 입문 클래스 (java 과제). 8  (0) 2023.08.17
jscode - 스프링부트 입문 클래스 (수업 마무리). 7  (0) 2023.08.16
jscode - 스프링부트 입문 클래스 (Spring Data JPA 활용과 예외처리). 5  (0) 2023.08.16
jscode - 스프링부트 입문 클래스 (Spring data JPA). 4  (0) 2023.08.16
jscode - 스프링부트 입문 클래스 (CURD APi). 3  (0) 2023.08.16
'Development studies/spring' 카테고리의 다른 글
  • jscode - 스프링부트 입문 클래스 (java 과제). 8
  • jscode - 스프링부트 입문 클래스 (수업 마무리). 7
  • jscode - 스프링부트 입문 클래스 (Spring Data JPA 활용과 예외처리). 5
  • jscode - 스프링부트 입문 클래스 (Spring data JPA). 4
comoZ
comoZ
인공지능 개발자 지망생입니다!
comoZ
comoZ/이호준 - 일지
comoZ
전체
오늘
어제
  • 분류 전체보기 (76)
    • 일지 (14)
    • Algorithm (5)
      • 자료구조와 알고리즘 (2)
      • 백준 (2)
      • 이것이 코딩테스트다 with 파이썬 (1)
    • Development studies (5)
      • java (2)
      • spring (9)
      • python (1)
      • 군장병 sw개발 (6)
      • kaggle (2)
    • ai (4)
      • 혼자 공부하는 머신러닝+딥러닝 (1)
    • 수학 (0)
      • 선형대수학 (0)
      • 집합론 (0)
    • CS (0)
      • computer architecture (0)
    • Toy Projects (2)
    • 자격증 (4)
    • Reviews (18)
    • Others (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 2024 공지!
  • 으아
  • 대체불가 인공지능 개발자를 목표로 하는 이호준입니다.

인기 글

태그

  • 군 장병 맞춤
  • stackoverflow
  • kakaoenterprise
  • Pyinstaller
  • reinforcement learning
  • downcasting
  • Stack
  • final
  • 그래프 탐색
  • 코드트리조별과제
  • sw개발
  • Groom
  • qu
  • openpyxl
  • 스택
  • ai역량강화
  • queue
  • 큐
  • 다운캐스팅
  • 코드트리
  • Q learning
  • dfs
  • sw역량강화
  • BFS
  • 미로 찾기 강화학습
  • 초급1
  • 코딩테스트
  • Tkinter
  • 삼항연산자

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
comoZ
jscode - 스프링부트 입문 클래스 (MVC). 6
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.