[Spring Boot] 섹션7 배포

정수현·2025년 4월 20일

캡스톤

목록 보기
8/8

2025-04-20

섹션7 학습목표

  1. 배포가 무엇인지 이해하고, 배포를 하기 위해 어떤 준비를 해야 하는지 알아본다.
  2. 스프링 서버를 실행할 때 DB와 같은 설정들을 코드 변경 없이 제어하는 방법을 알아본다.
  3. git과 github의 차이를 이해하고, git에 대한 기초적인 사용법을 알아본다.
  4. AWS의 EC2가 무엇인지 이해하고, AWS를 통해 클라우드 컴퓨터를 빌려본다.



37강 배포란 무엇인가

배포

최종 사용자에게 소프트웨어를 전달하는 과정 (위키백과)
전용 컴퓨터에 우리의 서버를 옮겨 실행시키는 것

다른 사용자가 내가 만든 서버를 쓸 수 있는 방법

전용 컴퓨터에 내 코드를 옮기고 스프링, MySQL 등을 설치해 친구가 접속하게 한다.
⇒ 내 컴퓨터에서 전용 컴퓨터로 코드를 옮길 수 있는 환경을 준비하고 실제 코드로 옮기는 행위 = 배포

AWS (Amazon Web Service)

아마존 쇼핑몰에서 운영하는 웹 서비스
→ AWS에서 무료로 '전용 컴퓨터'를 빌릴 수 있다.

AWS 사용 시 주의할 점

우리는 컴퓨터를 살 때 운영체제(OS)도 같이 선택한다.
서버용 컴퓨터에서는 보통 리눅스를 사용한다.



38강 profile과 H2 DB

똑같은 서버 코드를 실행시키지만, 내 컴퓨터에서 실행할 때는 로컬 MySQL을,
전용 컴퓨터에서 시랭할 때는 전용 컴퓨터의 MySQL을 실행해야 한다.

profile 개념

똑같은 서버 코드를 실행시키만, 실행될 때 설정을 다르게 하고 싶다! (각기 다른 자원)

No active profile set, falling back to 1 default profile: "default"
→ 활성화 되어 있는 profile은 없기 때문에 기본값인 default profile을 사용하겠다.

profile 적용하기

똑같은 서버 코드를 실행시키지만, local이라는 profile을 입력하면, H2 DB를 사용하게 되고,
dev라는 profile을 입력하면 MySQL DB를 사용하도록 바꾸어보자.

H2 DB란

경량 데이터베이스로, 개발 단계에서 많이 사용되며 디스크가 아닌 메모리에 데이터를 저장할 수 있다.
⇒ 데이터가 휘발 된다 (개발 단계에서만 사용함)

application.yml 파일 코드

🔗 IntelliJ Community 버전에서 Active profile 설정하기

application.yml

spring:
  config:
    activate:
      on-profile: local

  datasource:
    url: "jdbc:h2:mem:library;MODE=MYSQL; NO_KEYWORDS=USER" # MySQL을 기본적으로 실행하게 되면 user라는 건 키워드가 아님을 알려줌
    username: "root"
    password: "1234"
    driver-class-name: org.h2.Driver

  jpa:
    hibernate:
      ddl-auto: create
    properties:
      show_sql: true
      format_sql: true
      dialect: org.hibernate.dialect.H2Dialect

    h2:
      console:
        enabled: true
        path: /h2-console


--- # 구분선

spring:
  config:
    activate:
      on-profile: dev # 아래 옵션들이 모두 dev profile을 갖고 실행될 때만 적용된다.

  datasource:
    url: "jdbc:mysql://localhost:3306/library"
    username: "root"
    password: "1234"
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true
        show_sql: true
        dialect: org.hibernate.dialect.MySQL8Dialect
  • 구분선을 기준으로 위의 코드는 local 환경, 아래는 dev 환경이다.
  • local로 설정을 하면 The following 1 profile is active: "local" 이 콘솔창에 출려되는 것을 확인할 수 있다.
  • local 설정의
    h2:
      console:
        enabled: true
        path: /h2-console

/h2-console을 주소와 함께 주소창에 입력하면 h2에 접속할 수 있는 창을 볼 수 있다.
이 페이지를 통해서 데이터베이스에 접근할 수 있다.



39강 git과 github란

git

코드를 쉽게 관리할 수 있도록 해주는 버전 관리 프로그램
다양한 버전으로 개발된 프로그램들을 쉽게 합칠 수 있게 해주고, 다양한 버전 자체를 관리해준다.

예시

기능1, 기능2, 기능3, 기능4, 기능5를 개발해야하는 프로젝트가 있다고 가정해보자.
개발자A는 기능1(버전A)을, 개발자B는 기능4(버전B)를 맡기로 하였다.
개발 완료 후, 코드를 합칠 때 서로 다른 버전의 A+B를 합칠 수 있게 해준다.

github

git으로 관리되는 프로젝트의 코드가 저장되는 저장소

왜 github에 코드를 저장하는가

내 컴퓨터에 있는 코드는 소실되는 것을 대비해 코드를 원격으로 보관할 수 있다.
뿐만 아니라 배포할 때 용이하다.



40강 git 기초 사용법

0️⃣ 초기 명령어

  • git init
    → 이 프로젝트를 git이 관리하겠다.

  • git rmote add origin [주소: https://github.com/jeong-su-hyeon/library-app.git]
    → 내 프로젝트의 git 저장소를 주어진 주소로 하겠다.

1️⃣ 코드를 택배 상자에 담기

  1. git add .
    → 모든 파일을 택배 상자에 담아라.
    .은 모든 파일을 의미한다.
    (특정 파일만 담고 싶다면 git add 파일명)

  2. git status
    → 택배 상자에 잘 담겼는지 확인

  3. .gitignore
    gitignore 파일에 담긴 내용들은 택배 상자에서 빼준다.

  • git reset : 현재 택배 상자에 담겨있는 파일들을 빼주는 명령어
  • 다시 git status : 담기지 않은 파일에 대한 내용이 나온다.
  • 다시 git add . 다시 상자에 담기

2️⃣ 택배 상자에 송장 붙이기

  • git commit -m "첫번째 commit"
  • 처음 commit 했을 땐 다음과 같이 이메일과 이름을 입력한다. (내 깃허브 메일, 이름)
git config -- global user.email "studyingdeveloper@gmail.com"
git config --global uuser.name "studying-developer"

3️⃣ 택배 상자를 github에 보내기

  • gitpush
  • git push --setupstream origin master

40강 정리

  1. 코드를 택배 상자에 담기 → git add .
  2. 택배에 송장 붙이기 → git commit -m "적고 싶은 메시지"
  3. 택배 상자 github에 보내기 → git push

41강 AWS의 EC2 사용하기

나중에 ...

0개의 댓글