[스파르타코딩클럽] 웹개발의 봄, Spring 1주차

MOON·2021년 8월 29일
0
post-thumbnail

웹개발의 봄, Spring 1주차

💡기대하는 것

웹개발의 봄, Spring 강의를 통해 웹의 기본 구조를 배우고 간단한 서비스를 구현
개발부터 배포까지 과정을 경험해보면서 웹서비스의 전체적인 틀을 잡고 싶다.

📝배운것

  • Java 기초 문법, Spring 기초 사용법
  • intelliJ를 통해 스프링부트 프로젝트 생성 후 서버 실행
  • RestController 를 통해 Json 형식으로 데이터 전달하기
  • Gradle이란?

✏️웹서비스란?

웹서비스를 만든다는 건, 클라이언트와 서버 모두 만들어야 한다는 것을 뜻합니다.

클라이언트는 사용자가 보는 화면입니다.
웹사이트로 따지면 크롬 브라우저나 사파리, 익스플로러가 해당되겠고
앱으로 따지면 여러분들 휴대폰에 많이 존재하는 어플, 즉 앱 자체가 해당됩니다

서버는 여러분들이 원하는 데이터가 있는 곳이고,
원하는 데이터를 요청하면 이에 응답해주는 곳이기도 합니다.

웹서비스의 기본 구조는, 클라이언트에서 원하는 데이터가 있을 때마다 서버에 요청하고, 응답 데이터를 받아 사용자에게 보여줍니다

그렇다면 우린 사용자들이 보는 웹 화면을 만들고
필요한 데이터를 요청할 수 있는 서버를 만들면 되겠네요? 간단합니다!

✏️API

은행 창구와 같은, 하나의 "약속" 입니다.
정해진대로 요구를 하면, 정해진 결과물을 돌려주는 창구이죠.

파일 (HTML) - Controller

데이터 (JSON) - RestController

스프링은 "서버"를 담당합니다. 요청에 따라 눈에 보이는 것들 또는 데이터를 제공해주는 것이지요.
그리고 스프링은 자바 언어 바탕으로 만드는 것이구요.

✏️Gradle이란?

그래들(이하 Gradle)은 그루비(Groovy)를 기반으로 한 빌드 도구이다.
Ant와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구이다.

Gradle의 특징

Gradle은 *Ant와 *Maven이 가진 장점을 모아 만들었다. 의존성 관리를 위한 다양한 방법을 제공하고 빌드 스크립트를 XML 언어가 아닌 JVM에서 동작하는 스크립트 언어 ‘그루비’ 기반의 DSL(Domain Specific Language)를 사용한다.

그루비(Groovy)는 자바 문법과 유사하여 자바 개발자가 쉽게 익힐 수 있는 장점이 있으며 Gradle Wrapper를 이용하면 Gradle이 설치되지 않은 시스템에서도 프로젝트를 빌드할 수 있다.

심지어 메이븐(Maven)의 pom.xml을 Gradle 용으로 변환할 수도 있으며 Maven의 중앙 저장소도 지원하기 때문에 라이브러리를 모두 그대로 가져다 사용할 수 있다.

  • 다른 사람들이 만들어둔 도구 내려받기

    • Javascript - NPM

    • Python - pip

    • Java - mavenCentral, jcenter

      ⇒ 다운로드받고 적용하는 과정을 보다 편하게!

  • 추가해보기

    1. Maven Repository 에서 원하는 라이브러리 를 찾는다.
    2. build.gradle 에 원하는 프로젝트 파일을 넣는다.
    3. dependencies 옆 Run 버튼을 누른다.
    4. 우측 Gradle 탭의 새로고침 버튼을 누른다.
    5. 대상 프로젝트가 추가된 것을 확인한다.
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    runtimeOnly 'com.h2database:h2'
    runtimeOnly 'mysql:mysql-connector-java'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

추가된 라이브러리 경로 확인

위와 같이 build.gradle 파일에 내용을 추가하고 나서 Load Gradle Changes를 해주면 Eclipse 나 IntelliJ IDEA 같은 IDE 내에서 자동으로 classpath 에 추가해 주고 해당 라이브러리를 사용하는 것으로 간주하게 된다.

Windows : C:\Users\{사용자 이름}\.gradle


Ant

XML 기반으로 빌드 스크립트를 작성한다.
자유롭게 빌드 단위를 지정할 수 있다.
간단하고 사용하기 쉽다.
유연하지만 프로젝트가 방대해지는 경우 스크립트 관리나 빌드 과정이 복잡해진다.
생명주기(Lifecycle)을 갖지 않아 각각의 결과물에 대한 의존관계 등을 정의해야 한다.

Maven

XML 기반으로 작성한다.
생명주기(Lifecycle)와 프로젝트 객체 모델(POM, Project Object Model)이란 개념이 도입됐다.
Ant의 장황한 빌드 스크립트를 개선했다.
pom.xml에 필요한 라이브러리를 선언하면 자동으로 해당 프로젝트로 불러와 편리하다.
상대적으로 학습 장벽이 높다.
라이브러리가 서로 의존하는 경우 복잡해질 수 있다.


출처:
https://linkeverything.github.io/study/springboot/add-library/
https://madplay.github.io/post/what-is-gradle

0개의 댓글