공공API - 국민연금사업장 목록을 활용한 국민연금사업장 조회 서비스 개발(5)

2022. 7. 28. 15:59How to become a real programmer/Back-End

자, 이제 웹페이지를 쫌 꾸며볼 차례다. 그 전에 여러가지 정보들을 효율적으로 보여줄 수 있도록 몇 가지 수정을 거쳤다.

간단하게나마 구현한 페이지, 아직 많이 옹졸하다

이제 여기서 만약 '동우'를 검색한다면? companyname에 '동우'가 포함된 모든 회사들이 나오게 될 것이다.

boom!!!!!!!!! 나는 어떻게 잘 나타낼 수 있을까 하다가 우선 기업명, 주소로 나누어진 표를 나타낼 수 있게 인터넷에서 html와 css코드를 가져와 만들어봤다. 좀더 시간을 들이면 페이지를 더 이쁘게 만들 수 있을 것이다.

내가 만든 각 파일코드들은 아래 깃허브에 들어가면 확인할 수 있다.

https://github.com/Mseunghwan/MoneyMoneyHaeDoMoney

 

이제, 이 서비스를 만들었으니 사람들이 들어올 수 있게 해두어야 할 것이다. 그렇다면 어떻게 이 서비스에 들어갈 수 있을까? 사람들이 들어오려 할 때마다 flask run을 해놓을수도 없을 터이고,

이럴때 클라우드를 통한 웹 호스팅이 필요하다. 가장 대표적으로 AWS가 있는데 이번에도 AWS를 통해서 다른 사람들이 들어올 수 있게 호스팅해보도록 하겠다. 

우선 시작하기전에, 아마존 웹 서비스에 아이디가 있어야 하니, 없는 사람들은 회원가입을 거친 후 따라하면 될 것 같다. 모르는 게 있으면 구글에 치면 거의 나오기때문에 어려움 없이 따라올 수 있을 것이다.

우리는 웹 호스팅을 하기위해서 아마존에서 제공하는 EC2를 사용할 것인데, 클라우드에도 여러가지 종류가 존재한다. 

필자는 다른 블로거께서 정리하신 개념을 보고 이를 이해했는데,

https://medium.com/@heizence6626/aws-%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%84%9C%EB%B9%84%EC%8A%A4-s3-ec2-rdb%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC-1eb60cbd951d

이 곳의 게시물을 보면 좀더 이해가 쉬울터. 그냥 아마존으로부터 가상의 컴퓨터 하나를 빌리는 것이다. 사양에 따라 가격대가 다양한데 내가 만든 사이트는 아주아주아주 가벼운 웹사이트이므로 무료로 제공되는 사양으로도 충분하다.

로그인을 하고 EC2를 누르면, 위와같이 대시보드가 뜰 텐데, 여기서 인스턴스 시작 버튼을 눌러준다.

인스턴스 시작을 누르면, 애플리케이션 및 OS 이미지(Amazon Machine Image)를 선택하라고 나오는데, 어떤 OS를 가진 클라우드 컴퓨터를 사용할것인가를 물어보는 것이다. 무료로 제공하는 "프리티어 사용가능"이 표시되어있는 우분투 18.04LTS를 선택해주었다.

LTS의 약자는 Long Term Support를 뜻한다(이번 학기에 배움)

그리고 인스턴스도 마찬가지로 프리티어로 제공되는 것을 선택해주자. 이후, 밑의 설정들은 아래와 같이 해주었다.

그러고 인스턴스 시작 버튼을 누르면 아래와 같은 창이 뜨면서, 인스턴스를 만드는데 성공한다.

그리고 인스턴스 목록에 들어가서, 보안그룹을 누르고 인바운드 규칙을 추가해주자 - 즉, 포트를 열어서 들어올 수 있게 설정해두는 거라고 쉽게 설명할 수 있겠다.

5000포트를 열어주자 위에처럼, 이후 규칙저장!

그리고, 인스턴스 - 연결 부분에 들어가서 해당 클라우드를 한번 연결시켜 볼 건데, 필자는 맥 환경이기에 터미널을 사용하여 연결해볼 것이다. 

인스턴스에 연결 - 이 부분의 밑의 명령어를 통해서 연결가능하다

이전에 인증서를 저장해두었던(나의 경우엔 맥 환경이기에 .ssh 폴더라는 숨김폴더에 있었다) 위치로 가서, 해당 명령어를 작성하면 된다. 나는 AWS에서 seunghwankey.pem이었지만 가지고 있는 키는 .cer이어서 명령어를 바꾸어 실행하니 연결되는걸 확인하였다.

폴더로 이동 후, 명령어 실행
연결 완료!

연결을 했으니, 클라우드 컴퓨터에 들어 온 것, 즉 여기서 부터는 내 컴퓨터가 아닌 아마존웹서비스에서 제공하는 컴퓨터를 쓸 수 있는 것이다. 그럼 우리가 해두었던 프로젝트를 가져와볼까. 필자는 프로젝트를 깃허브에 올려두었기에 해당 파일들을 git clone을 통해서 쉽게 가져올 수 있었다.

잘 업어왔다

이제 플라스크 파일을 계속 실행시켜놓고 정해진 url을 치면 해당 사이트에 접근할 수 있도록만 설정하면 끝이다.

 

requirements.txt의 내용을 pip로 설치해주고, 로컬 데이터베이스의 포트를 열어준 후, postgresql의 설정을 바꾸어 줘야하는데.

바로 외부 접속 - 즉, 데이터베이스를 조회해야할 필요성 - 이 필요하기 때문이다. 고로 pg_hba.conf 파일을 열어, 설정을 바꿔주자.

https://www.devkuma.com/docs/postgresql/pghba-conf-%ED%8C%8C%EC%9D%BC-%EC%84%A4%EC%A0%95-%EB%B0%A9%EB%B2%95/

 

PostgreSQL | PostgreSQL 설정 파일 | pg_hba.conf 파일 설정 방법

pg_hba.conf 파일은 PostgreSQL에 접속하는 클라이언트에 대한 인증 설정을 설명하는 파일이다. 여기에서는 pg_hba.conf 파일의 설정 방법에 대해 설명한다. pg_hba.conf 파일 위치 pg_hba.conf는 postgresql.conf와

www.devkuma.com

다른 블로거 분께서 설명해놓으신 부분을 잘 찾아보면 될 것 같다.

이후, AWS에서 제공하는 IPv4 주소에 포트를 기본 포트인 5000으로(열어뒀던) 설정 후 들어가게 되면 창이 잘 뜨는 것을 확인 할 수 있다. 

클라우드를 가장 잘 활용하는 방식은 데이터베이스 자체도 그냥 AWS 클라우드에 심어버리면 되는데, 굳이 로컬에 만든 이유는 없다. 일단은 여기까지 설명하고 차후에 클라우드에 데이터베이스를 구축하여 더 쉽게 접근할 수 있도록 설정하는 것을 해보도록 하겠다.