Spring boot 프로젝트 생성

Weed·2024년 4월 23일
0

Blog 개발

목록 보기
1/2

Project 생성

Spring Initializr

Maven보다 gradle이 빠르다고 하여 gradle로 의존성을 관리하려고 한다.

Dependencies

1. Spring boot Devtools

이 의존성의 기능을 보자. 총 5가지의 기능이 있는데, 이 중 3가지만 주로 쓰인다.

1) Property Defaults


Cache는 생산성이 있지만, 개발 과정에 있어서는 아니다? Cache로 인해서 에플리케이션을 수정해도 즉각적으로 변화를 볼 수 없기 때문이다. 따라서 이 Application Cache 설정값을 false로 수정하는 것이 개발자 입장에서는 좋다. 이 기능을 Spring boot Devtools에서 제공한다.

Cache
Cache는 Client가 Server에 접속 시, 이미지, CSS 등 정적 컨텐츠를 특정 위치에 저장하여 웹 사이트 서버에 해당 컨텐츠를 매번 요청하지 않고, 특정 위치에서 불러와 사이트 응답시간을 줄이고, 서버 트래픽 감소 효과를 준다.

2) Automacic restart


Spring boot Devtools는 파일 수정 후 저장하면 Classpath에 존재하는 파일의 변경을 감지하고 자동으로 서버를 재시작해준다. 설정을 통해 원하는 디렉터만을 트리거로 설정할 수 있다.

3) Live Reload

이건 ReactHot reload과 같다. JS파일을 수정하면 자동으로 브라우저가 새로 고침이 된다.

2. Lombok

Java 라이브러리로 반복되는 getter, setter 등 메서드 작성 코드를 줄여주는 코드 다이어트 라이브러리이다.
어노테이션을 사용하여 코드를 간결하게 작성하고, 컴파일 시점에서 필요한 코드를 자동으로 생성한다.

3. Spring Security

Spring Security는 스프링 기반 웹 에플리케이션의 인증권한을 담당하는 하위 프레임워크이다. 간단히 말해서 웹에 회원가입과 로그인을 도와준다.

  • 인증(Authenticate): 로그인과 같은 사용자 신원을 확인하는 프로세스
  • 권한(Authorize): 인증된 사용자가 어떤 접근 권한이 있는지 관리하는 것

4. Spring Data JPA

출처: https://doing7.tistory.com/105
JPA에 알아보기 전에 ORM에 대해 알아보자

❗️ORM
Object-Relational Mapping의 약자로, 객체와 관계형 데이터를 매핑하는 기술이다. 이 매핑이 왜 필요할까?
이는 객체와 관계형 데이터간에 패러다임 불일치때문이다. 이 문제로 인해 코드는 복잡해지며 이로 인해 많은 문제가 발생할 수 있다. 따라서 ORM은 개발자가 객체지향적인 설계에 집중할 수 있게 한다.

출처: https://medium.com/@emccul13/object-relational-mapping-9d84807f5536

❗️패러다임 불일치
이 단어는 객체 지향 프로그래밍과 관계형 데이터베이스 사이의 데이터 표현 방식이 달라서 생기는 문제를 뜻한다. 이 문제가 일어나는 이유는 이들의 목표와 동작 방식이 달라서이다.

  • 객체 지향
    • 필드와 메서드 등을 묶어서 객체로 만들어 사용하는 것이 목표
    • 추상화, 캡슐화, 정보은닉, 상속, 다형성 등 시스템의 복잡성을 제어할 수 잇는 다양한 장치 제공
  • 관계형 데이터베이스
    • 데이터를 잘 정규화해서 보관하는 것이 목표

JPA

Java Persistence API의 약자로, 자바 ORM 기술에 대한 API 표준 명세이다. JPA는 애플리케이션과 JDBC 사이에서 동작한다. 개발자가 JPA를 사용하면, JPA 내부에서 JDBC API를 사용하여 SQL을 호출하여 DB와 통신한다. 이는 개발자가 직접 JDBC API를 사용할 필요가 없다는 뜻이다.

❗️JDBC
Java Database Connectivity의 약자로, Java 기반 애플리케이션의 데이터를 데이터베이스에 저장 및 업데이트하거나, 데이터베이스에 저장된 데이터를 Java에서 사용할 수 잇도록 하는 자바 API이다.

출처: https://ittrue.tistory.com/250#google_vignette

  • 인터페이스: 상호간에 소통을 위해 만들어진 접점이다.

    스마트키는 자동차와 사람의 접점인 인터페이스라고 할 수 있다.
  • API: 애플리케이션에서 데이터를 읽거나 쓰기 위해 사용하는 인터페이스
profile
개발자로 전직해보자

0개의 댓글