[리눅스] - 빌드 배포 그리고 다른 운영체제에 서비스 해보기

yeom yaloo·2024년 1월 10일
0

FISA

목록 보기
38/61
post-thumbnail

[용어]

1. 빌드

  • 빌드: 실행 가능하게 압축(jar, war, pom...)하는 작업

2. 배포

  • 배포: jar 또는 war를 서버에 배치하는 작업

[환경]

1. IDE에서 spring boot 프로젝트 빌드(jar, war로 빌드)

2. 리눅스 우분투에 해당 프로젝트 배포

3. ubuntu mysql 연결

3-1. ubuntu의 mysql

  • window dbeaver에서 접속할 경우
  • mysql의 기본 port: 3306
  • virtual box의 우분투(private 네트워크)의 mysql port 3306과 소통 가능한 public ip로 셋팅(nat)
    • 해당 작업은 우분투에서 네트워크 부분에서 포트 포워딩 작업을 해준 것을 의미한다.
  • window에서 JDBC API로 개발하며 접속시 nat에 설정한 포트 번호로 접속

3-2 ubuntu에 배포된 app

  • 우분투의 mysql에 접속
  • 동일 시스템의 톰캣 내부에 배포된 app에 설정된 db의 port는 3306으로 설정해주어야 한다.

3-3. 우분투 내의 톰캣의 서비스 포트(WAS의 서비스 포트)

  • application.yml(or application.properties)의 설정을 8081로 설정
  • 윈도우의 브라우저에 우분투 톰캣에 접속 시 추가해야 할 항복
    • private 80 -> public port로 매핑 변환(=NAT)

3-4

  • 윈도우 빌드는 여러 에러가 발생할수 있다.
  • 해결책
    • 윈도우에 우분투의 was 서버에 배포된 app이 사용하는 데이터베이스 접속 정보와 일치되는 환경으로 구성한 뒤 빌드해주어야 한다.(application.yml)
    • 빌드하는 시스템에 운영 시스템(=배포)과 동일한 데이터베이스 정보의 데이터베이스를 실행한 뒤 빌드할 경우엔 에러 없이 빌드를 한다.

4. 개발

5. 서비스

6. 작업 단계

  1. 윈도우에 mysql 서비스 실행
    = 배포되는 리눅스의 운영 데이터베이스와 동일한 설정

  1. app 설정 정보의 url 수정
  1. 빌드 (jar로 만듬)
    project -> run as -> maven clean -> maven build(goal = package)
  1. 생성된 jar 파일 우분투에 배포

5.우분투에 jdk or jre 설치

  1. app 실행 = tomcat 실행
    $sudo java -jar jarfilename.jar
  1. virtual box NAT 설정
  • 해당 작업은 우분투의 톰캣 서비스 포트를 이용해서 public ip와 port로 설정해주어야 한다.
  1. 윈도우에서 포스트맨 혹은 브라우저로 접속
  • 접속 시 port는 NAT로 설정한 포트여야 한다.

[문제상황 발생]

1.java 파일의 인코딩 문제

  • java class 새로 생성(똑같은 코드로)

  • 메모장, 노트패드 등을 사용해서 utf-8로 변경

  • 이 경우라면 전부 BOM 문제이기 때문에 utf-8로 맞춰줄 수 있게 해야 한다.

profile
즐겁고 괴로운 개발😎

0개의 댓글