나는 FlyIO를 애용하고 있다.

일단 프리티어가 토이 프로젝트 하는데는 매우 널널하고 배포 방법도 간단하여 굉장히 편리하게 cd를 구축할 수 있기 때문이다!

 

다만 FlyIO에서 제공하는 PostgreSQL DB를 사용하기에는 너무 알려진 정보가 없었다..

그래서 나와 같이 FlyIO 데이터베이스를 사용하고자 하는 사람들에게 수많은 시행착오 후에 터득하게 된 데이터베이스 연결방법을 공유하려고한다.

 

★ 참고 ★

Spring Boot에서 연결하는 것만을 중점적으로 설명하고 있습니다.

FlyIO에서 기본 제공하는 PostgreSQL에 대해서만 설명하고 있습니다.

 

  • 먼저 아래 명령어로 postgresql database를 만든다.
fly postgres create
  • 데이터베이스 생성이 완료되면 아래와 같은 db 정보가 나오게 되는데 이를 복사해둔다.
Postgres cluster {app name} created
  Username:    {username | 보통 postgres}
  Password:    {password | 랜덤하게 나옴}
  Hostname:    {app name}.internal
  Flycast:     {ip address}
  Proxy port:  5432
  Postgres port:  5433
  Connection string: postgres://postgres:{password}@{app name}.flycast:5432
  • connection string으로는 바로 접근이 불가능하다.
  • 또한 연결정보가 internal 즉 fly 내부에서 연결되도록 되어있기 때문에 연결은 어플리케이션을 fly에 올리고 연결하던가, 또는 db를 로컬로 연결하여 사용하는 방법이 있다.

1. fly에 올려서 연결하는 방법

  • 다른 것 없이 url에 이렇게 작성해주면 된다
jdbc:postgresql://{host name}:5432/?user={user name}&password={password}
  • connection string에 주어진 정보와는 꽤나 많이 달라서 여러번 시도해봤는데 이렇게 작성해주면 제대로 동작한다.
  • 아래는 예시 applciation.yml 이다.
spring:
  datasource:
    url: jdbc:postgresql://{host name}:5432/?user={user name}&password={password}
    username: {user name}
    password: {password}
    driver-class-name: org.postgresql.Driver
  jpa:
    hibernate:
      ddl-auto: update

2. 로컬에 db를 연결하여 확인하는 방법

  • 아래 명령어를 사용하면 된다.
fly proxy {port number} -a {app name}
  • 이 후 지정한 포트 번호로 연결하면 확인이 가능하다.

내 블로그를 보는 사람이면 알다시피 난 leetcode 오늘의 문제를 매일매일 푸는 사람이다.

 

그러다보니 leetcode 사이트를 즐겨찾기해두고 매일 문제를 풀러 들어가는데....
leetcode에서 오늘의 문제로 바로 갈 수 있는 url을 제공해주지 않아서 매번 클릭 2번을 해서 문제를 들어가야한다는게 불만이었다...

 

그래서 이를 해결하기 위해서 leetcode 오늘의 문제로 바로 redirect 해주는 서비스를 만들었다.

 

처음에는 react만 사용해서 구현해보려고 했으나.... 쉽지않았다....

cors때문에 proxy server 패키지 사용해서 시도해봤으나 production에서는 사용이 불가능하여서... 그냥 백엔드 서버를 하나 뒀다 ㅠㅠ

 

그래도 덕분에 fly.io라는 서비스를 알게됐으니 윈윈이랄까나...

쨌든 아래 링크로 접속하면 바로 leetcode 오늘의 문제로 들어가진다!

리트코더라면 즐겨찾기해두고 쓰면 유용할 것이라고 생각한다!!

 

leetcode.click

사실 K-Agent가 서비스 된지는 꽤나 지났지만 내 블로그에서 홍보한 적이 없어서 한 번 하려고 글을 쓴다.

 

K-Agent는 병역 특례 업체를 간편하게 조회할 수 있는 웹사이트다.

 

전체 업체 조회, 관련 웹사이트 연동 등 편의성을 위한 기능들이 많이 들어있다.

 

산업기능요원, 전문연구요원에 관심이 있는 사람이라면 한 번쯤 들러서 사용해보면 좋을 듯하다.

 

https://k-agent.services

아 진짜 얼마나 험난하고 힘든 단계였던가...!

 

자바로 만들기 시작한 건국대 포탈 api는..

 

서버를 사용하기 힘들어 스프링 부트로 갈아타서 api를 만들고..

 

그 api를 aws에 배포하려고 하니 maven이 말썽을 부렸고...

 

maven을 해결하니 크롬과 크롬 드라이버가 말썽을 부리고...

 

크롬과 크롬 드라이버를 해결하니 스프링 부트의 알 수 없는 빌드 실패가 계속해서 이어지고...

 

그래서 파이썬으로 갈아타서 다시 api를 만들고...

 

aws에 배포하려니 pip가 없고...

 

pip를 설치하고 나서 서버를 돌렸더니 탄력적 ip를 어떻게 써야하는지 모르겠고...

 

탄력적 ip 사용방법을 알게되었더니 접근이 안되고...

 

접근 안되는 이유를 찾고 접근 가능하게 했더니 ec2가 한글을 인식을 못하고..

 

ec2 언어 설정을 바꾸어 한글을 인식하게 바꾸었더니 이제는 python에서 인식을 못하고..

 

인식을 못하길래 불나는 구글링으로 굉장히 많은 인코딩 구문들을 추가해봤지만 안됐고...

 

그러던 중 python3에서는 한글을 잘 처리한다길래 python3로 돌렸더니 pip3로 설치한게 없어서 다시 pip3로 설치할 것들 설치하고...

 

설치하고 나서 api 호출을 해봤는데 no such element 오류가 나고...

 

왜 오류나는지 몰라가지고 리눅스 환경에 가서 크롬을 깔아가지고 html을 살펴보기도 하고...

 

한글이 문제인 것 같아서 try exception문으로 예외처리를 해줬는데 바뀐게 없어서 왜 그런가 봤고...

 

commit을 안한상태로 pull을 해서 변경사항이 저장이 안됐던 것이어서 commit해주고 pull하고...

 

다시 돌린 결과....!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

 

드디어 성공했다...ㅠㅠㅠㅠㅠㅠㅠㅠㅠ

 

진짜 미친 듯이 힘들었다...ㅠㅠ

 

다음에 시간이 날 때 어떤식으로 서버에 파이썬을 배포했는지 참고자료를 정리하는 글을 올려야겠다.

아마 나처럼 삽질하는 사람들 많을 것이다.

 

어쨌든 고생했다 나!!!

2021년 7월 20일 화요일

 

내 동기들과 함게 프로젝트를 진행해보기로 했다.

 

안드로이드 스튜디오를 사용해서 앱을 만들어 볼 것인데 

 

주제는 대충 정해졌고 아직 구체적인 것에 대해서는 정해진 바가 없다.

 

다음 회의는 7월 28일 수요일 저녁 7시로 했고, 각자 정해진 주제와 관련한 모든 것을 찾아오는 것으로 했다.

 

개강을 하기 전까지 앱을 완성해서 배포해보는 것이 목표다.

 

열심히 해보자!

+ Recent posts