SIU
article thumbnail

https://github.com/Seongho0503/Samals

 

GitHub - Seongho0503/Samals: [세이멀스] 멸종위기동물을 위한 NFT 기부 플랫폼

[세이멀스] 멸종위기동물을 위한 NFT 기부 플랫폼. Contribute to Seongho0503/Samals development by creating an account on GitHub.

github.com

 

리팩토링의 필요성을 느끼다.

작년 하반기 프로젝트 중에 아쉬웠던 팀 프로젝트가 있어서 깃허브 레포지토리에 방치된 상태로 있었다.

DB와 Back-end, Front-end는 EC2 서버가 내려가서 프론트만 로컬로 접속이 되었고 리팩토링을 하려면 APi 등 여러 경로를 수정해야했다. 특히 이 프로젝트는 Web3 기반의 NFT 프로젝트라 건들어야 할 사항들이 많았다. 

방치된 레거시 코드를 건들어야 겠다고 다짐한 이유는  프로젝트에서 마무리 못한 기능이 조금 있었고 그 당시 너무 정신 없어서 깃허브 리드미에 남겨야 할 프로젝트 gif를 녹화하지 못했다. 새로운 프로젝트를 하기 전에 이전 프로젝트의 리팩토링 또한 중요한 과제라고 생각했다. 

 

그럼 CI/CD부터 해야하는데 Front는 저번에 시도한 Netilfy로 하고 Back과 DB는 어떤 플랫폼을 사용할까 고민이 되었다. 프로젝트 할 당시에는 벡엔드분들이 도커를 사용한 EC2 CI/CD를 하였다. 이번에는 Heroku를 사용하여 간단하게 배포를 하기로 하였다. (Heroku는 처음 사용해본다) 

 


Heroku(헤로쿠)란?

- Java, Node.js, Python 등 여러 언어를 지원하는 클라우드 PaaS(Platform as a Service)
- 간단하게 무료로 호스팅 할 수 있도록 도와주는 서비스
- AWS 처럼 비용을 지불하면 원활한 서비스 이용 가능

- 무료인 이유는 해당 도메인으로 일정 시간 동안 요청이 없을 경우 수면상태로 전환하기 때문(수면 상태에서 처음 접속시 딜레이 발생)
   (* 30분 정도 미접속시 수면상태에 들어가는 데 이를 방지하는 여러 방법있는데, 필요하시면 아래 링크를 통해 확인하시면 됩니다.)

UPtimeRobot : https://m.blog.naver.com/kbs4674/221406115523
CronTab : https://blog.naver.com/writer0713/221507833658

 

 

Heroku 가입하기

 

 

Heroku CLI 설치

혹시 몰라서 서비스 약간 다 읽어봤다 

 

 

cmd 창에 heroku login 입력

 

정확한 로그 확인을 위해 한국 시간으로 설정한다.

heroku config:add TZ="Asia/Seoul"--app heroku-app-name --> (Heroku 생성시 작성한 앱이름)

 

 

Reasouces 탭에서 Jaws DB 선택

 

 

Settings 탭에서 Reveal Config Vars 선택

주소는 나중에 필요하니 적어두자

 

 

 

Sequel Pro 설치와 DB 접속

데이터베이스 관리를 편리하게 해주는 Sequel Pro를 설치합니다. 
https://sequelpro.com/download 

 

Downloads

 

sequelpro.com

 

 

# 기본시간 우리나라 시간으로 변경 (로그)

heroku config:add TZ="Asia/Seoul" --app [APPNAME]

 

 

Deploy 탭에 방식대로 실행

저는 E드라이브에 프로젝트 폴더가 있더 `E:` 로 드라이브로 바꿔주었습니다.

 

 

 

빌드 에러 발생

너 언어 설정 안했어

-----> Building on the Heroku-22 stack
-----> Determining which buildpack to use for this app
 !     No default language could be detected for this app.
			HINT: This occurs when Heroku cannot detect the buildpack to use for this application automatically.
			See https://devcenter.heroku.com/articles/buildpacks
 !     Push failed

No default language could be detected for this app.

 

heroku에 push를 했을 때 빌드가 안 되고 에러가 발생했다.

 

헤로쿠가 자동으로 해당 프로젝트가 어떤 언어를 사용하는지 감지하지 못해서 빌드팩 오류가 발생했다.

 

먼저 Settings로 이동해서 아래로 스크롤을 쭉 내려주면 Buildpack 설정이 나와 JAVA로 설정해 주었다.

찾아보니 헤로쿠는 기본 JAVA8이 '디폴트'라고 한다.


두 번째 에러를 만났다 

pom.xml 못찾겠어

-----> Building on the Heroku-22 stack
-----> Using buildpack: heroku/java
-----> App not compatible with buildpack: https://buildpack-registry.s3.amazonaws.com/buildpacks/heroku/java.tgz
       Could not find a pom.xml file! Please check that it exists and is committed to Git.
       More info: https://devcenter.heroku.com/articles/buildpacks#detection-failure
 !     Push failed

벡엔드 코드를 보니 스프링부트를 gradle로 만들었다.

gradle은 원래 porm.xml이 없는디...?

 

 

 

Could not find a 'gradlew' script or a 'build.gradle(.kts)' file! Please check that they exist and are commited to Git.
profile

SIU

@웹 개발자 SIU

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!