java 30

GitHub Contribution 잔디 추가 안되는 현상

분명 커밋을 올렸는데도 불구하고 잔디가 채워지지 않는 현상을 발견했다. 잔디에 집착하는 것을 지양하는 나지만 그래도 왠지 기분이 나쁘다 🤔 지금 생각해보니 꽤 오래전부터 있었던 문제였던 것 같고, 놓쳐버린 잔디가 꽤나 많을 듯하다! 당장 고쳐야겠다. 1. user email 설정 오류 contribution으로 인정 안되는 이유는 여럿이 있는데, 많은 사람들의 원인은 user의 email이 잘못 설정되어 있어서였다. github에 등록된 Email은 오른쪽 상단 프로필을 통해 확인할 수 있다. 그리고 내 프로젝트에 등록된 이메일은 config를 통해 확인할 수 있다. git config user.email 만약 이메일이 잘못 설정되어 있다면 이메일을 바꿔보도록 하자 2. respository url 설정..

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..

백준[1213] -팰린드롬 만들기

팰린드롬이란 거꾸로 읽어도 제대로 읽는 것과 형태가 같은 문장을 이야기한다 (내이름은 이효리~ 거꾸로해도 이효리~) 진짜 작은 실수로 조금 오래걸렸다. 그리고 Collection을 많이 써서 시간 초과가 날까 걱정했지만 이정도는 괜찮은 것 같다. 검색해보니 반례에 대해서 예민한 문제인 것 같다. 홀수개인 문자가 포함되어 있어도 이를 가운데 배치시키면 팰린드롬이 가능하다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String[] args) throws Ex..

백준[2805] java -나무자르기

이 문제에서 알아야할 점은 두가지이다. 1.이분탐색으로 풀 것 2.long타입 선언 일단 문제를 보자 이전에 공부했던 이분탐색을 생각해냈다. 특정한 값을 구해야할 때 그 시간을 줄여주는 좋은 방법이다. 이문제에서 long타입을 써야 하는 이유는 나무의 높이가 최대 1,000,000,000이기 때문이다 int형으로는 계산할 수가 없다. import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n= sc.nextInt(); long height = sc.nextInt(); long[] ..

Springboot RESTAPI 아임포트 가상 결제

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

백준[1244]- 스위치 켜고 끄기

진짜 문제는 끝까지 읽어야 한다. 쉬운 문제였지만 출력 조건을 제대로 안읽어서 자꾸 출력 오류가 났었다.... 반성반성 문제 그대로 구현만하면 되는 쉬운문제다. import java.util.*; public class Main { private static int[] arr; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); String inputStr = sc.nextLine(); String[] inputArr = (inputStr).split(" "); arr = new int[n+1]; arr[0]=0; for(int i=0;i

Ubuntu에 Spring boot 서비스 등록하기

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