본문 바로가기
스터디일지/JAVA SPRING

[Java Spring] 입문 1 주차 강의 - PART 2

by 똥쟁이핑크 2023. 8. 26.

테스트 코드

  • 버그 - 소스코드나 설계 과정에서 발생되는 에러이며 소프트 웨어가 예상하지 못한 결과물을 내는 것을 말한다.
  • 테스트는 버그를 최대한 많이 찾아내는 것이다
  • 누구나 검사는 가능하나 범위가 증가할수록 테스트해야 하는 사람들이 증가해야 한다. - 퀄리티를 위해서
  • 개발자 테스트
    • 빠르고 정확한 테스트가 가능하다
    • 테스트 자동화가 가능하다.
    • 단점은 개발시간이 오래 걸리고 유지보수 하는 비용이 많이 든다.

 

JUNIT

  • 태스트를 할 때 전체가 아닌 단위별 테스트를 할 때 사용한다.
  • 개발자 단위 테스트 프레임워크를 사용하면 단위 별로 테스트가 가능하다
  • 메인이 없다 이유는 메인에서 동작하지 않고 자체적으로 실행 환경을 가지고 있어서 메서드별로 테스트가 가능하다

 

Lombok

  • 필수 메소드나 생성자를 자동으로 만들어 주는데 이렇게 하면 코드를 절약할 수 있다.
  • @ 을 사용해서 만들 수 있다.

 

MVC 디자인 패턴

  • 소프트웨어를 만들 때 사용하는 패턴인데 자주 쓰는 구조를 패턴화 한 것이다.
  • 결론적으로 효율적인 방법을 패턴화 했다고 생각하면 된다.
  • 패턴은 역할별로 분리했다.
    • Model - 데이터와 비즈니스로직, 데이터베이스 연동
    • Controller - 모델과 뷰사이에 상호작용을 한다. 사용자한테 입력받으면 Model에 전달하고 그 결과를 View에 업데이트한다.
    • View - 사용자에게 보여주는 화면과 관련되어 버튼이나 폼 등을 구현하고 인터페이스를 담당한다.
  • MVC 패턴을 사용하면 코드의 중복도 줄이고 재사용성도 높일 수 있다.
  • 개발자들 간에 상호작용을 높일 수 있다.

 

Spring MVC

https://t1.daumcdn.net/cfile/tistory/2219E449553CF49A29

  • Servelet을 알아야 하는데 자바로 웹페이지를 동적으로 생성하는 서버를 말한다.
  • Spring에서는 DispatcherServlet을 알아야 하는데 DispatcherServlet 가 http를 분석하고 Handler Mapping을 통해 Controller에 요청을 전달한다.
  • 요청을 전달하고 완료하면 결과인 데이터와 정보를 Controller 가 DispatcherServlet에 넘겨준다.
  • 그리고 DispatcherServlet은 사용자에게 전달하게 된다.
  • 위와 같은 사진에 대한 방식이 Front Controller 방식이라고 하는데 DispatcherServlet을 사용해서 API 요청을 효율적으로 처리할 수 있다.

 

Controller

  • 위와 같은 패턴을 사용해서 Controller를 만들면 유사한 것들을 묶어서 하나의 Controller로 관리할 수 있다.
  • 클래스 파일 안에 @Controller를 선언하고 등록한 다음 메서드를 만들면 된다.
  • 메서드명이 중복이 되지 않는 선에서 자유롭게 선언할 수 있다.
  • HTTP method에 매핑되는 @GET, @PUT, @POST, @DELETE가 있다.
  • @RequestMappint을 사용하면 URL의 중복이 줄어든다.

 

정적페이지와 동적페이지

  • 정적페이지
    • 이미 완성되어 있는 html 파일을 서버에서 요청하면 정적페이지를 호출하는 것이다.
    • SpringBoot에서 ThymeLeaf와 관련된 dependency를 주석처리하고 실행하면 테스트할 수 있다. GetMapping의 리턴값을 "파일명.html"로 하면 해당 파일을 찾아서 반환한다.
    • 위의 방법은 Controller를 통하지 않고 사용하지만 Controller를 통해서 처리하고 싶으면 redirect 요청을 하면 된다. "redirect:파일명.html"로 하면 파일을 반환한다.
    • 외부에서 정적페이지에 바로 접근하지 못하게 하고 싶으면 해당 파일을 templates에 담아 놓고 Controller를 통해 해당 파일명을 반환하게 한다.
  • 동적페이지
    • 처리과정은 Controller → Model  - DB가 있다면 작업 후에 Model에 저장한다. → Thymeleaf에 View, Model 전달 → View에 Model을 적용 = 동적 웹페이지 생성 → View를 Client에 전달하는 과정이다.
    • View는 동적 HTML 파일이고 Model은 View에 적용할 정보들이 저장되어 있다.