Chapter 01 인텔리제이로 스프링 부트 시작하기

LeeKyoungChang·2022년 5월 12일
0
post-thumbnail

스프링 부트와 AWS로 혼자 구현하는 웹 서비스 를 공부하고 정리한 내용입니다.

 

인프런 강의를 수강 후, 복습하고자 하는 생각에 공부를 시작하게 되었다.
환경설정은 인프런 강의 때 배운 내용을 토대로 할 것이다.
이외 소스들은 책 내용을 참고하려고 한다.

 

📚 1. 시작하기 전, Intellij

  • 인텔리제이에는 이클립스의 워크스페이스Workspace와 같은 개념이 없다.
  • 프로젝트Project와 모듈Module의 개념만 있다.
  • 그래서 인텔리제이를 실행할 때 모든 프로젝트를 한 번에 불러올 수 없다.
  • 한 화면에서는 하나의 프로젝트만 열린다.

 

스크린샷 2022-05-12 오후 4 30 17

 

📖 A. 환경설정

application.yml

spring:  
  datasource:  
    url: jdbc:h2:tcp://localhost//Users/leekyoungchang/Desktop/Study/Computer/github/toyproject/db/springandaws  
    username: sa  
    password: 1234  
    driver-class-name: org.h2.Driver  
  
  jpa:  
    hibernate:  
      ddl-auto: create  
    properties:  
      hibernate:  
        #        show_sql: true  
        format_sql: true  
  
logging.level:  
  org.hibernate.SQL: debug  
#  org.hibernate.type: trace
  • spring.jap.hibernate.ddl-auto:create : 애플리케이션 실행 시점에 테이블을 drop하고, 다시 생성한다.

 

springawsbook/config/Hello를 생성한 후, 웹 서버 정상적으로 실행되는지 확인한다.

스크린샷 2022-05-12 오후 5 05 52

 

📖 B. build.gradle

✔️ plugins

plugins {  
   id 'org.springframework.boot' version '2.6.7'  
   id 'io.spring.dependency-management' version '1.0.11.RELEASE'  
   id 'java'  
}
  • 플러그인 의존성 관계를 위한 설정
  • 플러그인의 1.0.11.RELEASE를 의존성으로 받겠다.
  • io.spring.dependency-management 플러그인 : 스프링 부트의 의존성들을 관리해주는 플러그인이다.
  • 위에 있는 플러그인 id는 자바와 스프링 부트를 사용하기 위해서는 필수 플러그인들이므로 항상 추가하면 된다.

 

✔️ repositories

repositories {  
   mavenCentral()  
}
  • repositories는 각종 의존성 (라이브러리)들을 어떤 원격 저장소에서 받을
    지를 정합니다.
  • 기본적으로 mavenCentral을 많이 사용한다.
    • 책에서는 JCenter를 많이 사용한다고 나오지만, JCenter 지원 중단되었다고 한다.
    • 참고 자료

 

✔️ dependencies

  
dependencies {  
   implementation 'org.springframework.boot:spring-boot-starter-data-jpa'  
   implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'  
   implementation 'org.springframework.boot:spring-boot-starter-web'  
   implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.7'  
  
   compileOnly 'org.projectlombok:lombok'  
   runtimeOnly 'com.h2database:h2'  
   annotationProcessor 'org.projectlombok:lombok'  
   testImplementation 'org.springframework.boot:spring-boot-starter-test'  
}
  • dependencies는 프로젝트 개발에 필요한 의존성들을 선언하는 곳이다.
  • 인텔리제이는 메이븐 저장소의 데이터를 인덱싱해서 관리하기 때문에 커뮤니티 버전을 사용해도 의존성 자동완성이 가능하다.

 

스크린샷 2022-05-12 오후 5 23 32
  • 인텔리제이 의존성 자동 완성
  • 왠만하면, 특정 버전을 명시하지 않는 것이 좋다. (버전을 명시할 경우, 그 버전을 따라가게 된다.)
  • 각 라이브러리들의 버전 관리가 한 곳에 집중되고, 버전 충돌 문제도 해결되어 편하게 개발을 진행할 수 있다.

 

📖 C. Intellij에서 github 사용하기

cmd + shift + a 단축키
share project on github

스크린샷 2022-05-12 오후 5 32 10 스크린샷 2022-05-12 오후 5 32 17
  • 깃허브에 생성할 저장소 정보를 입력하고 클릭할 시, 깃허브에 저장소가 생성된다.
  • 대부분, 프로젝트 이름을 깃허브 저장소와 같은 이름으로 등록한다.
  • 프로젝트에서 .idea, .gradle를 커밋하지 않는다. 이는 Intellij에서 프로젝트 실행시 자동으로 생성되는 파일들이다.
    • github에서는 자체적으로 프로젝트를 커밋해도 .gradle.idea는 커밋하지 않는다. (사진에서 색깔을 보면 어두운 색이다.)

 

✔️ .gitignore
깃에서 특정 파일 혹은 디렉터리를 관리 대상에서 제외할 때는 .gitignore 파일을 사용한다.
이 파일 안에 기입된 내용들은 모두 깃에서 관리하지 않겠다는 것을 의미한다.

이를 Intellij에서 사용하기 위해서는 플러그인에서 .gitignore을 설치해야한다.

스크린샷 2022-05-12 오후 6 15 35

 

🛟 .ignore 플러그인에서 지원하는 기능

  • 파일 위치 자동완성
  • 이그노어 처리 여부 확인
  • 다양한 이그노어 파일 지원(.gitignore, .npmignore, .dockerignore 등)

 

스크린샷 2022-05-12 오후 6 20 25
  • 이와 같이 설치된 .ignore File에서 .gitignore File을 생성해도 되지만, 다소 복잡하다.
  • 책에서는 설치된 .ignore File에서 .gradle.idea를 추가해서 커밋까지 하라고 한다.

 

다른 방법으로

스크린샷 2022-05-12 오후 6 22 30
  • git에서 레포지토리 생성할 때 .gitignore File을 생성하고, 파일을 열어서 직접 수정해도 된다.
  • .gitignore File에는 제외하고 싶은 이름을 작성하면 된다.

 

💡 참고

  • git 관련은 SourceTree를 사용하자!

 

profile
"야, (오류 만났어?) 너두 (해결) 할 수 있어"

0개의 댓글