2021/07 16

[SpringBoot] org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-200]

김영한님의 스프링입문 강좌를 보면서 공부하던 중 오류가 발생했다. h2데이터베이스를 이용해서 스프링부트에서 사용하려고 하는데 org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-200] 와 같은 에러가 발생하면서 오류가 발생했다. (회원목록을 좀 확인하려고 했는데 Whitelabel Error Page가 발생하면서 원하는 결과가 나오지 않았다.) 해결 방법은 간단하다. 스프링부트 2.4부터는 데이터베이스에 커넥션을 추가할때 spring.datasource.username=sa 를 반드시 추가해줘야 한다. (아 참고로 sa는 내가 사용하는 username이다. username을 달리 적었다면 본인껄 ..

[SpringBoot] springboot 기본 세팅부터 빌드까지 요약

빌드할때는 우선 intellij에서 돌리던 서버는 꺼주고 이후에 스프링부트 해당 폴더로 가서 (cmd로 가면 된다.) start.spring.io에서 얻은 zip파일을 해체한 곳으로 가면 된다는 소리다. 맥이나 리눅스의 경우 ./gradlew build 라고 치면 된다. 윈도우는 그냥 gradlew.bat build라고 치면 된다. 그러면 build 폴더 안에 libs라는 폴더가 생기게 된다. 그 폴더안에 들어가면 이제 jar파일이 만들어져있다. 그걸 이제 java -jar hello-spring-0.0.1-SNAPSHOT.jar 이런 식으로 써줘서 실행시키면 잘 실행되는 것을 확인할 수 있다. 만약 잘 안되면 ./gradlew clean build라고 치면 된다. clean 하고 다시 하는거다.

[BOJ] 백준 5555 - 반지 - Java 풀이

괜히 char배열로 받아서 하나씩 비교하다가 빙빙 돌고서야 제대로된 해답을 찾았다. 원형으로 연결하는 것을 굳이 인덱스로 원형으로 따지기 보다는 그냥 output을 하나 더 더해서 원형처럼 효과를 내주는 것이 좋다는 것을 뒤늦에 알았다. 쉽게 말하면 그냥 하나의 String에서 검사해야한다면 그걸 원형으로 돌기 위해서 인덱스를 가지고 연산하는 둥의 고생을 하지 말고 그냥 String 복사본을 뒤에 붙여주는거다. "Hello" + "Hello" = "HelloHello" 가 되는거다. 여기서 돌면 원형으로 도는 것과 비슷한 효과를 얻을 수 있다. 이게 더 간결하다. 그리고 난 뒤에 contains를 이용해서 해당 키워드가 받은 문자열에 존재하는지만 확인하면 되는거다. import java.io.Buffer..

RadixSort(기수정렬) 에서는 왜 낮은 자리수부터 비교해야 하는걸까

제목과 동일한 질문을 교수님께 여쭤본 적이 있다. 답변은 아주 간단했는데, " MSD부터 정렬하게 되면 정렬이 되지 않습니다. " 였다. 사실 직접 해봤어야 했는데, 그 간단한 과정을 해보지 않고 질문을 해서 지금 생각해보니 조금 멍청한 질문이 아니었나 생각이 든다. 질문할 당시에는 왜 굳이 낮은 자리수부터 비교해야하는가에 대해 생각해보면서 낮은 자리수부터 비교한다면 A, B가 있다고 가정할때 A의 MSD가 B의 MSD보다 큼에도 불구하고 낮은 자리수부터 비교하면서 자리수를 거슬러 올라가는 과정에서는 그 사실을 알지 못함으로 A가 B보다 큼에도 계속해서 낮은 자리수를 비교함으로써 그것이 낭비라고 생각했다. 반면에 MSD부터 비교한다면 처음 비교할때부터 이미 A가 B보다 큼이 기정사실이 되어버리니 그 밑의..

[C] void main(), int main(), main() 차이점

세 형태의 차이점에 대해 이야기해보고자 한다. 사실은 별 차이 없다고 한다. 간략하게 정리하자면 아래와 같다. 함수 정의 앞에 붙은 데이터 형은 함수의 리턴값의 데이터 형이고 int main()이면 main()함수가 종료할때 정수형 값을 리턴하겠다는 뜻이다. void main() 이면 함수가 종료할때 아무 값도 리턴하지 않겠다는 뜻이다. 그리고 그냥 main()은 void main()과 같다고 한다. main() 함수는 프로그램의 엔트리 포인트이고 운영체제가 실행시켜주는 함수라고 한다. 그래서 main() 함수의 리턴값은 운영체제가 받아보게 된다고 한다. 운영체제는 프로그램이 종료할때 main() 함수의 리턴값을 받고 이를 통해 프로그램이 왜 종료되었는지 판단한다고 한다. 보통 main()이 0을 리턴하..

C & C++/C 2021.07.03
반응형