스파르타코딩클럽/웹개발의 봄, Spring

스프링 입문 주차_키워드 정리

예령 : ) 2022. 3. 24. 19:48

JPA 

JPA는 자바 어플리케이션에서 관계형 데이터베이스(RDBS)를 사용하는 방식을 정의한 인터페이스이다. 대표적인 RDBS에서 사용하는 SQL 언어를 자바 언어로 바꿔주어 보다 편리하게 데이터 관리를 할 수 있도록 돕는 역할을 한다. 

 

Controller, Service, Repository

Controller, Service, Repository는 Spring의 3계층으로 각 계층에서 담당해야 할 기능들이 있다.

  • Controller
  • 클라이언트에서 요청된 요구 사항을 서버 측에서 받아주고(ex. javascript로 요청된 요구 사항을 Java가 읽을 수 있는 언어로 바꿔줌), 번역된 요구 사항을 Service에 전달하여 Service에서 전달 받은 값을 다시 클라이언트에게 반환해주는 역할을 한다.
  • Service비즈니스 로직 : ex. 회원가입 시 아이디 중복확인을 검사하기 위한 일련의 과정들 https://bongbongdang.tistory.com/111 - 참고 블로그
  • 실제 작업이 일어나는 곳으로, 서버에서 사용자의 요구 사항을 처리한다. (비즈니스 로직이 처리되는 곳)
  • Repository

RESTAPI의 PUT과 PATCH의 차이점, 어떤 경우에 사용하면 좋을까요?

PUT : 데이터의 모든 것을 업데이트, 일부만 수정 시 보내지지 않은 값에 대해서는 null 값으로 인식

PATCH : 일부만 업데이트 가능, 요청에 포함되어 있는 부분만 변경되기에 데이터를 일부만 수정할 때 사용하면 좋다.

 

우리가 브라우저에서 구매한 도메인 주소를 입력하면 만들어 놓은 aws EC2 서버까지 전달이 되어서 해당 서버에게 요청을 보낼 수 있습니다. 이 과정이 상세하게 어떻게 진행되는지 그림으로 한번 그려볼까요?

 

객체 지향 프로그래밍(OOP)

 

스프링부트

Spring framework 기반 프로젝트를 복잡한 설정없이 쉽고 빠르게 만들어주는 라이브러리.

프레임워크 : 프레임워크는 뼈대나 기반구조를 뜻하고, 제어의 역전 개념이 적용된 대표적인 기술

라이브러리 : 단순 활용 가능한 도구들의 집합, 즉, 개발자가 만든 클래스에서 호출하여 사용, 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식을 취하고 있다.

개발자가 일일이 모든 설정을 할 필요없이 자주 사용되는 기본 설정을 알아서 해준다.
스프링 부트는 실행만 하면 스프링기반의 사용화가 가능한 애플리케이션을 쉽게 만들기 위해 단독 실행 가능하도록 해주는 스프링 프로젝트이다.
스프링 부트는 스프링을 쉽게 사용할 수 있도록 필요한 여러가지 복잡한 설정을 대부분 미리 세팅 해놓았을 뿐만 아니라 WAS도 별도의 설절없이 바로 웹개발에 들어갈 수 있도록 만들어놓은 것이다.
장점

1. 라이브러리 관리 자동화.

스프링부트의 Starter 라이브러리를 등록해서 라이브러리 의존성을 간단히 관리할 수 있다.


2. 라이브러리 버전 자동관리
기존 스프링 라이브러리는 버전을 직접 입력해야 했지만, 스프링 부트는 pom.xml에 스프링 부트 버전을 입력해놓으면 spring 라이브러리 뿐만 아니라 third party라이브러리들도 호환되는 버전으로 알아서 다운로드 및 관리해준다.


3. 설정 자동화
스프링 부트는 @EnableAutoConfiguration 어노테이션을 선언해서 스프링에서 자주 사용했던 설정들을 알아서 등록해준다. 이 기능이 스프링 부트의 마법이라고 불린다고 한다.


4. 내장Tomcat
스프링 부트는 WAS인 Tomcat을 내장하고 있다. @SpringBootApplication 어노테이션이 선언되어 있는 클래스의 mail()메소드를 실행하는 것만으로 서버를 구동시킬 수 있다.
내장 톰캣을 사용하기 위한 별도 설정없이 web starter 의존성만 추가해주면 된다.


5. 독립적으로 실행가능함 - JAR
웹 프로젝트라면 war파일로 패키징 해야하는데 스프링 부트는 내장 톰캣을 지원하기 때문에 jar 파일로 패키징해서 웹 애플리케이션을 실행시킬 수 있다.



CRUD

대부분의 컴퓨터 소프트웨어가 가지는 기본적인 데이터 처리 기능인 Create, Read, Update, Delete를 묶어서 일컫는 말이다. 각 소통방식마다 사용되는 단어가 다르다. HTTP Method의 경우 Create는 Post로, Read는 Get으로, Update는 PUT으로, Delete는 Delete로 사용된다.  또 SQL의 경우에는 아래 표와 같은 용어를 사용해 데이터를 처리한다. 

 

DTO

로직을 가지지 않는 데이터 객체이고 getter/setter 메소드만 가진 클래스

원본 데이터베이스를 손상시키지 않기 위해 사용하며, 데이터를 수정할 때 Repository가 아닌 RequestDto를 쓰는 것이 그 예이다.

 

CLASS