분류 전체보기
![[Spring] yml 로 DB 연결 시 주의사항 - Access denied for user 'name'@'server' (using password: YES)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2JrM7%2FbtrNw93VGq5%2FrKs0w1ltzpctnGnOt6rzg1%2Fimg.png)
[Spring] yml 로 DB 연결 시 주의사항 - Access denied for user 'name'@'server' (using password: YES)
문제 application.yml 에 DB 설정을 하고 서버를 실행해보니 아래와 같은 예외가 발생하였다. 비밀번호가 틀렸음을 의미하는 예외이지만, 비밀번호는 정확히 추가했음을 확신할 수 있었다. 해결 과정 여러 시도를 해보고 관련 자료를 찾아본 결과, yml 파일의 특성 문제였다. properties 파일에서는 db password 작성시 별다른 제약이 없지만, yml 파일에서는 대문자, 소문자, 숫자, 특수문자를 포함한 암호 길이 8자 이상으로 설정해야 한다고 한다. mysql에 새로운 계정을 만든 후 해당 계정의 비밀번호를 요구사항에 맞게 설정해주었다, 그다음 새로 만든 계정으로 DB 연결을 시도하니 문제없이 서버가 실행되었다. 출처: https://shlee0882.tistory.com/286
![[Github Actions] Error: Gradle script '/home/runner/work/@@@/@@@/gradlew' is not executable.](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdJsLcF%2FbtrMoSBnRqx%2F3i2NrMKs8ELX9J4ZQQ9360%2Fimg.png)
[Github Actions] Error: Gradle script '/home/runner/work/@@@/@@@/gradlew' is not executable.
문제 Github Actions 로 CI 구현 중 아래와 같은 에러가 발생하였다. 해결 과정 build 시 발생하는 권한 문제라 생각하였고, 아래의 링크에서 해결법을 발견하였다. https://velog.io/@coding_wizard/Error-Gradle-Script-HomeRunnerWorkGradlew-Is-Not-Executable-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0 Error Gradle Script ‘/Home/Runner/Work/*/Gradlew’ Is Not Executable 문제 해결하기 Error Gradle Script ‘/Home/Runner/Work/\*/Gradlew’ Is Not ExecutableGithub..
![[Github Actions] Error: Cannot locate a Gradle wrapper properties file at '/home/runner/work/@@@/@@@/gradle/wrapper/gradle-wrapper.properties'. Specify 'gradle-version' or 'gradle-executable' for projects without Gradle wrapper configured. 에러.](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfFJYu%2FbtrMoz2WMDw%2FJLgVYXSuZOYMmdqrIu8nF0%2Fimg.png)
[Github Actions] Error: Cannot locate a Gradle wrapper properties file at '/home/runner/work/@@@/@@@/gradle/wrapper/gradle-wrapper.properties'. Specify 'gradle-version' or 'gradle-executable' for projects without Gradle wrapper configured. 에러.
문제 Github Actions를 이용하여 CI를 구현하던 중에 아래와 같은 에러가 발생하였다. 해결 과정 처음엔 build에서 권한 관련한 에러로 생각하고 서칭했지만, 관련 내용에서는 위의 에러를 찾지 못했다. https://github.com/jojoldu/freelec-springboot2-webservice/issues/395 [프로젝트 환경 점검] Gradle 버전 체크 질문 · Issue #395 · jojoldu/freelec-springboot2-webservice 안녕하세요. 제 intelliJ 버전(2020.1.1)이 너무 높아서 그런지 설명해주신 것과 차이가 많아서 질문드립니다. 제가 생성한 프로젝트 하위 항목에는 gradle-wrapper.properties 파일이 없어서 버전을 체..
![[Spring] JPA 로 Table 생성시 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near... 예외](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkWG5I%2FbtrMfeqz6Ps%2FdsNEyDXbvKUwDAcr2GtHYK%2Fimg.png)
[Spring] JPA 로 Table 생성시 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near... 예외
문제 상황 스프링 부트를 시작시에 Jpa에서 자동으로 table을 만들어 줄 때 아래와 같은 오류가 발생하였다. 원인 mysql 에는 예약어가 존재한다. 내가 생성하려 했던 table 이름이 mysql 예약어와 일치했기 때문에 예외를 발생시킨 것이다. 아래는 mysql의 예약어 목록이다. ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE CASE CHANGE CHAR CHARACTER CHECK COLLATE COLUMN CONDITION CONSTRAINT CONTINUE CONVERT CREATE CROSS CURRENT_DATE CURRENT_TIME CURRENT_TIME..
[Spring] JWT 사용 시, Controller 에서의 Entity 접근.
JWT를 사용하여 인증/인가 처리를 할 경우, 토큰에서 사용자 정보를 빼내어서 요청 처리를 하는 경우가 있다. 그럴 경우 Controller 에서 Authentication 인자 설정을 통해 인증 정보를 받아오고, 해당 정보로 사용자 정보를 추출해야 하는데, 이 사용자 정보 추출을 Controller 에서 하게 된다면 Web 계층에 Entity 가 들어가게 된다. 그렇다면 이를 방지하기 위해 Service 메서드 호출과 동시에 사용자 인증 정보를 넘겨주어 Service 단에서 getPrincipal 메서드를 통해 사용자 정보를 가져오는 것이 맞는 것일까?
[Spring] 서블릿 HTTP 세션
서블릿에서 HTTP 세션을 어떠한 방식으로 만들어줄까? 하나의 HTTP 요청이 들어왔을 오고 이후 로직에서 세션 생성 요청이 있다면, 서블릿 컨테이너에서 세션을 만들고JSessionId를 부여해준다. 이렇게 만들어진 JSessionId 만 알고 있다면 만들어진 세션에 접근하여 원하는 정보들을 저장하거나 삭제할 수 있다. 그리고 요청이 끝난 뒤에도 해당 세션을 서블릿 컨테이너에서 관리하고 있다가 JSessionId를 쿠키로 가진 HTTP 요청이 들어올 경우, 서블릿 컨테이너에서 JSessionId 로 가지고 있는 세션들 중 일치하는 세션ID가 있는지 확인한다. 만약 일치하는 세션이 있다면 해당 요청에서 접근할 수 있도록 설정해준다. 위와 같은 방식으로 서블릿은 세션을 편하게 생성하고 사용할 수 있게끔 만들..
[Java] Reflection 사용 시 주의점.
Reflection 이란 구체적인 정보를 알 지 못해도, 클래스와 메서드의 메타정보를 사용하여 해당 클래스의 메서드, 변수들에 접근할 수 있도록 해주는 기술이다. 이렇게 편리하고 좋아보이기만 하는 Reflection 기술에 무슨 주의점이 있을까? 그건 바로, Reflection은 런타임에 동작하기 때문에, 컴파일 시점에 오류를 잡을 수 없다는 것이다. 타입 정보를 기반으로 컴파일 시점 오류 체킹을 통해 개발편의성을 늘리는 방향으로 프로그래밍 언어가 발전해왔는데, Reflection 은 이러한 흐름에 역행하는 방식이다. 따라서 Reflection은 프레임워크 개발이나 매우 일반적인 공통 처리가 필요할 때만 조심히 사용해야 한다.
[AWS] codedeploy 에서 S3에 위치하는 파일 경로 설정 방법.
ci/cd 를 위해 codedeploy 에서 S3에 있는 zip 파일을 끌어와야 한다. 그에 따른 경로 설정을 github action의 workflow 파일에서 해줘야 하는데, 만약 내가 S3 버켓에 jar_archive 폴더를 만들고 그 안에 zip 파일을 저장해 두었다고 하면 아래와 같이 설정하면 된다. # (6) S3 버킷에 있는 파일을 대상으로 CodeDeploy 실행 - name: Deploy to AWS EC2 from S3 run: | aws deploy create-deployment \ --application-name ${{ env.CODE_DEPLOY_APPLICATION_NAME }} \ --deployment-config-name CodeDeployDefault.AllAtOnce..
![[Github Actions] Error Gradle Script ‘/Home/Runner/Work/*/Gradlew’ Is Not Executable 발생.](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FExYOq%2FbtrJNkuGWJS%2Fk9px1kBhLk5nervd9Ll8VK%2Fimg.png)
[Github Actions] Error Gradle Script ‘/Home/Runner/Work/*/Gradlew’ Is Not Executable 발생.
문제 Github Actions 을 사용하여 ci/cd 에 대해 공부하던 중 아래와 같은 에러가 발생하였다. 해결 나의 경우 gradlew 의 실행 권한을 설정해주지 않았기 때문에 발생한 문제였다. git update-index --chmod=+x gradlew 위의 명령어를 입력후에 commit 후 github 로 push 해주면 해당 문제가 해결된다. 참조 - https://spacetech.dk/error-gradle-script-home-runner-work-gradlew-is-not-executable.html
[Spring] 구글 OAuth 2.0 과정
해당 글은 Spring 작동원리에 대한 개인적인 예상을 작성 해놓은 글 입니다. 구글 Oauth2.0의 과정의 위의 이미지와 같이 일어난다. 여기서 access_token 으로 유저정보를 받아온 뒤의 과정을 설명하겠다. @Slf4j @Service public class CustomOAuth2UserService implements OAuth2UserService { @Override public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException { OAuth2UserService oAuth2UserService = new DefaultOAuth2UserService(); OAuth2User oAu..