Computer Engineering/Server 21

Github fork한 repository 잔디 복사하기🌱

fork받아온 repository에 작업할 일이 생겼는데, 커밋한 내역이 잔디에 반영되지 않았다 ㅠ 잔디에 집착하지 말자는 다짐과는 다르게 너무 집착하는 즁....^_^ fork한 repository는 PR이 머지되었을 때 비로소 나의 커밋으로 인정이 된다. 잔디가 심어지는 기준은 내 repository에 커밋을 해야 인정이 되는데, fork는 contribution으로 인정되지 않아 잔디가 심어지지 않는다. 검색해보면 bare를 사용해서 커밋을 옮기고 기존의 repository를 삭제를 하는 방식이 정말 많은데,,, 나같은 경우에는 fork받아온 기존의 repository가 의미가 있기에 삭제하길 원치 않았다. 그래서 잔디를 내가 만든 임의의 repository로 복사하는 방법을 썼다! 1. 새로운 r..

Spring boot / Java 서버 애플로그인 api 연동

2020년 4월부터 iOS앱에서 소셜로그인만을 지원하는 앱은 애플로그인을 필수적으로 제공해야한다는 정책이 추가되었다. https://developer.apple.com/app-store/review/guidelines/#sign-in-with-apple App Store Review Guidelines - Apple Developer App Store Review Guidelines Apps are changing the world, enriching people’s lives, and enabling developers like you to innovate like never before. As a result, the App Store has grown into an exciting and vibra..

EC2에 Springboot 배포시 RDS연결 불가 문제

이전에는 잘 되던 배포가 갑자기 안되기 시작했다.... 갑자기라는건 없지만... 나한테는 갑작스러운 문제였다. 오류를 살펴보니 MySQL connection문제임을 알 수 있다. RDS의 MySQL을 연결해둔 상태였는데 갑자기 안됐다. 해당 문제에 대해서는 여러가지 원인이 있겠지만 나같은 경우 EC2에 올라와있는 jar파일이 RDS로 접근할 수 없었던게 이유였다. 생각해보니 전에 RDS인바운드 보안 규칙을 팀원들의 ip로 한정지었던게 생각이 났다...! 같은 VPC를 사용중이라 당연히 될 줄 알았지만 크나큰 오해였다...! EC2의 private IP를 RDS의 인바운드규칙 소스에 추가해주면 해결이 된다..! 여기서 중요한 점은 publicIP가 아닌 privateIP를 추가해줘야 한다는 것이다. 같은 ..

Springboot Querydsl 설치, JpaQueryFactory 설정

Springboot에서 JPA를 많이 사용하지만 JPA로 복잡한 쿼리를 수행하기에는 무리가 있다. querydsl를 사용하면 보다 간편하게 쿼리를 수행할 수 있다. build.gradle에 추가할 부분 //for plugin id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" //for dependencies implementation 'com.querydsl:querydsl-jpa' //querydsl설정 def querydslDir = "$buildDir/generated/querydsl" querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir query..

Springboot RESTAPI 아임포트 가상 결제

Springboot로 REST API를 구현하는 중 가상결제 기능을 구현하고자 했다. 아임포트를 사용하여 카카오페이 결제 과정을 거쳐 실제 구매처럼 재연했다. 정말 정말 쉬운 과정이지만 RestAPI 구현중임을 간과해서,,,조금 오래 걸렸다. 이를 진행하는 프로젝트의 클라이언트는 iOS로 구현했다. 실제 결제화면을 iOS에서 확인하면 좋았겠지만 팀의 사정상 그렇게 하지 못하고 웹에 내가 직접 구현했다. 즉, PC웹 환경에서 결제를 진행할 것이다. 일단 아임포트 홈페이지의 대쉬보드에 들어가고 회원가입,로그인을 해야한다!!!! admin.iamport.kr/users/login 로그인 - 아임포트 관리자 가입하신 Email주소로 비밀번호 변경 링크를 발송합니다. admin.iamport.kr 로그인을 하면 ..

RDS DB 데이터 이전(MySQL)

RDS DB이관을 진행했다. 처음 RDS를 생성할 때 너무 신나서 했더니 개발용 RDS를 생성하였고.... r5.large요금을 사용해버렸다... 그 결과 이틀만에 18000원이라는 과금을 하게 되었고... 요금제를 변경하려고 했지만 변경할 수 있는 가장 저렴한 요금제가 t3.micro였다. 큰 차이가 없을 것 같아서 그대로 진행하려했지만 하루에 4천원꼴의 과금이 발생하였고 2주 프로젝트 기간을 생각한다면.... 물론 큰 돈은 아니지만 모의 프로젝트에 그만한 돈을 쓰기 아까웠다. 그리하여 멘토님의 조언대로....DB이관을 결심하였다. 중간에 실수를 하게 되면 다른 팀원들의 개발 환경에 영향을 미칠까 최대한 안하려고 했지만 어쩔 수 없었다. 내가 진행했던 프로세스의 환경은 이러하였다. RDS --> RDS..

Ubuntu에 Spring boot 서비스 등록하기

학교 실습할때 서비스등록은 무조건 해줬던 것 같다. 그만큼 기본이라는 이야기같기도 🤔 그때는 뭔지도 잘 모르고 그냥 하라고 해서 했는데,, 막상 혼자하니 아주 조큼 귀찮다. 하지만 그때로 돌아가도 공부 안할거다^^제성해여 겨슈님.. 이번에는 Ubuntu에 배포된 Spring boot(.jar)에 대한 서비스 등록을 할 것이다. 서비스 등록이란,,, 쉬운 말로 내가 일일이 명령어를 통해 실행시키지 않아도 자기 혼자 알아서 돌아가도록 서비스를 등록하는 것이다. 나는 AWS에 배포를 해 놓은 상황이었고 ssh연결을 끊으면 실행이 불가능했다. ssh연결을 종료하더라도 계속해서 서비스하기 위해 등록과정을 거쳤다. 일단 .service파일을 만들어야 한다. 아무데나 만들면 안되고 /etc/systemd/system..

REST, REST API란?

이번주는 REST API 설계와 구현을 할 것이다. 무작정 시작하기보단 REST API에 대해서 공부를 하는 것이 좋을 것 같다. REST 2020년 정보처리기사를 공부하며 익숙해진 단어이다. 실기를 준비하며 외웠던 REST란 uri를 통해 자원을 구분하고 그 자원을 주고 받는 형식이다. 하지만 부족하거나 틀렸을 수도 있으니 정확히 공부해보자! REST는 Representational State Transfer의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것들을 의미한다 Uri를 통해 자원을 명시하고 HTTP method를 통해 해당 자원에 대한 CRUD를 적용하는 것을 의미한다. REST구조는 3가지로 구성이 된다 자원(Resource) - URI 행위 (Verb) - HTTP ..

url로 ip입력시 도메인으로 redirect하기

주소로 ip입력시 도메인으로 redirect하는 과정을 진행해볼 것이다! ip가 1.1.1.1인 인스턴스에 도메인을 적용시킨 이후 ip로 인스턴스를 접근할 때 이를 도메인으로 바꾸는 작업이다. ex) [1.1.1.1 입력 --> abcd.com 으로 자동변경] 정말 쉽다! 서브도메인을 적용시켰던 것 처럼 nginx.conf에 Server{}부분을 추가해줄 것이다. 이전과 동일하게 /etc/nginx/에 redirect.conf라는 파일을 만들고 이를 nginx.conf파일에 include 시켜줄 것이다. redirect.conf의 코드는 아래와 같다. server_name에는 나의 ip를 넣어주고 $scheme://[이동하고자 하는 도메인]$request_uri; 으로 return 시켜준다. 아주아주 간..

AWS EC2 인스턴스에 도메인 연결하기

이전에 만들었던 웹서버에 브라우저로 접속하려면 ip를 입력했어야 했다. 하지만 우리가 웹을 이용하는 과정에서는 ip를 입력해서 웹페이지에 접근하지 않는다! 흔히들 생각하는 웹 주소를 이용하여 웹페이지에 접근하기 위해서 도메인 연결을 해보자 1.도메인 구입 일단 내가 사용하고자 하는 도메인을 사야한다! 나는 gabia를 이용하였다. 내가 구매한 도메인이 abcd.com이라고 가정해보자. 2.Route 53 도메인을 구매한 뒤 AWS route 53에 접속하자. [Route53 -> 호스팅 영역 -> 호스팅 영역 생성] 도메인 이름에는 내가 구입한 도메인을 넣는다 ( ex,위에서 가정한 abcd.com) 설명은 본인이 알아보기 위해 넣는 설명! 사용자들이 접근할 수 있도록 퍼블릭 호스팅 영역을 선택해주자 과..