S3 이미지 업로드 후 URL로 접근 시 Access Denied

2024년 12월 20일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.무슨 오류가 발생했을까?This XML file does not appear to have any style information associated with it. The document tree is shown below.AccessDeniedAccess DeniedM11MQ3732XTKGZ66Uxd4UBF7vXDz9KpS6HCofiDuD+Tqid3l0GVkHsfD+J5rSjmb4j35G5IsUOoiouWD3xM8UY0F1gw=Amazon S3에 파일(이미지)을 업로드 후, URL로 파일에 접근하면 위와 같은 오류가 발생한다. S3 버킷을 처음에 생성할 때 권한을 public으로 설정했음에..

Backend/AWS

Spring Boot에서 CORS 설정 시 addCorsMappings 에러

2024년 9월 28일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.무슨 오류가 발생했을까?Spring Boot에서 CORS 설정을 하는 도중 다음과 같은 에러가 발생했다.java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explicitly or consider using..

Backend/Java

GitHub Codespace에서 Java 버전 변경하기

2024년 9월 5일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.군대에서 개발 하려다..군대 싸지방에서 개발 공부를 어떻게 할까 방법을 알아보던 중, GitHub Codespace으로 개발이 가능하다는 것을 알게되었다. 그래서 start.spring.io 에서 새로운 프로젝트를 만들고, 다운받은 프로젝트를 GitHub Codespace로 옮겼다. 그리고 잘 실행되나 프로젝트를 실행했더니 아래와 같은 오류를 만나게 되었다.만난 오류@yunh03 ➜ /workspaces/test (main) $ gradle --refresh-dependenciesFAILURE: Build failed with an exception.* What went wrong:A proble..

군대

macOS에서 .ppk 파일을 .pem으로 변환하기

2024년 5월 10일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.변경하는 방법을 찾아보게 된 계기사이드 프로젝트를 함께 개발하는 팀원에게 AWS 서버 SSH 접근을 위한 인증키 파일을 받았다. 근데.. 팀원은 Windows 운영체제를 사용하고 있어 putty로 SSH 접속을 하기 때문에 .ppk 파일 인증서를 나에게 보내주었다. macOS에서는 터미널을 이용해서 SSH에 접속할 것이기 때문에 .pem 파일 인증서로 변환이 필요했다.ppk, pemPPK(PuTTY Private Key)PuTTYgen 소프트웨어에 의해 생성 된 파일PEM(Privacy Enhanced Mail)인증서, 인증서 요청, 인증서 체인 및 키를 표시하는 데 사용.ppk 파일을 .pem..

macOS

RabbitMQ를 이용해서 응답 시간을 반의 반의 반의 반으로 줄여보자

2024년 3월 22일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.RabbitMQ를 도입하게 된 배경현재 개발 중인 사이드 프로젝트에서 회원가입을 진행할 때 이메일 인증 기능이 사용된다. 인증번호를 담은 메일을 발송하는 API에 요청을 보내면, 응답시간이 상당히 길게 소요된다. 대충 얼마나 소요되냐면..정확하게 4.68초, 약 5초 정도 소요된다. 이메일 요청을 보내게 되면, 아래와 같은 로직을 수행하게 된다.이메일 정규식에 일치하는가?이미 서비스에 등록된 회원이 있는가?이전 이메일 인증 요청을 발송한 후 1분이 경과되었는가? (Redis 사용)새 이메일 인증 번호 생성이메일 인증 번호를 담은 템플릿 생성메일 발송이 과정을 수행해야 사용자가 입력한 메일로 인증..

Backend/Java

[Ubuntu] MariaDB 외부 접속 허용

2024년 3월 20일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf/etc/mysql/mariadb.conf.d/50-server.cnf 파일을 nano 편집기로 열어준다. 방향키를 이용하여 아래 내용을 찾아준다.# Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.bind-address = 127.0.0.1여기에서 bind-address 부분을 0.0.0.0 으로 변경해 주어 외부에서 ..

Backend/Linux

[오류 해결] SQL ERROR 1406: Data too long for column at row 1

2024년 3월 11일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.문제 상황GPT-4 응답 결과와 토큰 사용량에 대해 데이터베이스에 저장하려고 얼마 전에 코드를 수정했다. 수정 전에는 GPT-4에 대한 응답 결과를 따로 저장하지 않고 바로 응답 값을 출력하도록 해두었으나, 수정 후에 갑자기 500(Internal Server Error)가 발생한다는 소식에 확인을 시작했다.백엔드 코드를 확인해 보니 아래 오류가 발생한 것을 확인할 수 있었다.2024-03-10 10:49:04.949 ERROR 1 --- [nio-8080-exec-5] o.h.engine.jdbc.spi.SqlExceptionHelper : (conn=605) Data too long fo..

Backend/Java

Spring, 테스트 코드는 왜 작성할까?

2024년 3월 8일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.원래 필자는 PHP와 그 프레임워크인 Laravel을 이용하여 개발을 해왔다. 하지만, PHP의 인기도가 점점 낮아져가는 것도 사실이고, 다른 언어를 접해 보고자 PHP에서 Java와 Spring Boot로 주 개발 언어를 변경하였다. Spring Boot에 익숙해지고, 여러 커뮤니티를 보며 '테스트 코드'라는 게시글을 많이 접하게 되었다. 그래서 나도 원래는 테스트 코드를 작성하지 않았지만 사실 귀찮아서.. 테스트 코드를 작성하는 방법과 그 이유에 대해서는 꼭 알고 넘어가고 싶기에 이 글을 작성했다.테스트 코드를 왜 작성할까?1. 서버를 시작하여 직접 테스트하는 것 보다 시간을 단축시킬 수 있다..

Backend/Java

Spring Boot에서 ChatGPT 활용하기 #2: API로 GPT 응답 값 가져오기

2024년 2월 27일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.Spring Boot에서 ChatGPT 활용하기 #1: API 연결 테스트에 이어 이 글에서는 Spring Boot에서 만든 API 호출을 통해 GPT의 응답 값을 가져오는 코드를 작성해 볼 것이다.구조gptㄴ controller ㄴ GptController.javaㄴ service ㄴ Impl ㄴ GptServiceImpl.java GptService.java application.propertiesapplication.propertieshttps://platform.openai.com/api-keys 여기에서 발급받은 Secret Key는 저장소에 올라가거나 공유되면 안 되..

Backend/Java

Spring Boot에서 ChatGPT 활용하기 #1: API 연결 테스트

2024년 2월 20일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.들어가며OpenAI의 ChatGPT는 현재 전 세계에서 가장 주목받고 있는 기술이다. ChatGPT에 대한 이해가 깊어지면서, 이를 활용한 API 개발에 대한 생각이 점점 커졌다. 또한, 최근에 릴리즈된 Spring Boot 3.0을 아직 제대로 활용해보지 않았던 점을 고려하여, 이번 프로젝트는 Spring Boot 3.0 기반으로 진행하기로 결정했다.ChatGPT API 호출ChatGPT 공식 문서에 따라 Spring Boot에서 본격적으로 활용하기 전 Postman을 통해 API 호출을 먼저 해보았다. 이 글을 쓰는 오늘(2024년 2월 19일) 기준, GPT 모델에 따른 엔드포인트는 다음과..

Backend/Java

S3 이미지 업로드 후 URL로 접근 시 Access Denied

2024년 12월 20일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.무슨 오류가 발생했을까?This XML file does not appear to have any style information associated with it. The document tree is shown below.AccessDeniedAccess DeniedM11MQ3732XTKGZ66Uxd4UBF7vXDz9KpS6HCofiDuD+Tqid3l0GVkHsfD+J5rSjmb4j35G5IsUOoiouWD3xM8UY0F1gw=Amazon S3에 파일(이미지)을 업로드 후, URL로 파일에 접근하면 위와 같은 오류가 발생한다. S3 버킷을 처음에 생성할 때 권한을 public으로 설정했음에..

Backend/AWS

Spring Boot에서 CORS 설정 시 addCorsMappings 에러

2024년 9월 28일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.무슨 오류가 발생했을까?Spring Boot에서 CORS 설정을 하는 도중 다음과 같은 에러가 발생했다.java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explicitly or consider using..

Backend/Java

GitHub Codespace에서 Java 버전 변경하기

2024년 9월 5일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.군대에서 개발 하려다..군대 싸지방에서 개발 공부를 어떻게 할까 방법을 알아보던 중, GitHub Codespace으로 개발이 가능하다는 것을 알게되었다. 그래서 start.spring.io 에서 새로운 프로젝트를 만들고, 다운받은 프로젝트를 GitHub Codespace로 옮겼다. 그리고 잘 실행되나 프로젝트를 실행했더니 아래와 같은 오류를 만나게 되었다.만난 오류@yunh03 ➜ /workspaces/test (main) $ gradle --refresh-dependenciesFAILURE: Build failed with an exception.* What went wrong:A proble..

군대

macOS에서 .ppk 파일을 .pem으로 변환하기

2024년 5월 10일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.변경하는 방법을 찾아보게 된 계기사이드 프로젝트를 함께 개발하는 팀원에게 AWS 서버 SSH 접근을 위한 인증키 파일을 받았다. 근데.. 팀원은 Windows 운영체제를 사용하고 있어 putty로 SSH 접속을 하기 때문에 .ppk 파일 인증서를 나에게 보내주었다. macOS에서는 터미널을 이용해서 SSH에 접속할 것이기 때문에 .pem 파일 인증서로 변환이 필요했다.ppk, pemPPK(PuTTY Private Key)PuTTYgen 소프트웨어에 의해 생성 된 파일PEM(Privacy Enhanced Mail)인증서, 인증서 요청, 인증서 체인 및 키를 표시하는 데 사용.ppk 파일을 .pem..

macOS

RabbitMQ를 이용해서 응답 시간을 반의 반의 반의 반으로 줄여보자

2024년 3월 22일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.RabbitMQ를 도입하게 된 배경현재 개발 중인 사이드 프로젝트에서 회원가입을 진행할 때 이메일 인증 기능이 사용된다. 인증번호를 담은 메일을 발송하는 API에 요청을 보내면, 응답시간이 상당히 길게 소요된다. 대충 얼마나 소요되냐면..정확하게 4.68초, 약 5초 정도 소요된다. 이메일 요청을 보내게 되면, 아래와 같은 로직을 수행하게 된다.이메일 정규식에 일치하는가?이미 서비스에 등록된 회원이 있는가?이전 이메일 인증 요청을 발송한 후 1분이 경과되었는가? (Redis 사용)새 이메일 인증 번호 생성이메일 인증 번호를 담은 템플릿 생성메일 발송이 과정을 수행해야 사용자가 입력한 메일로 인증..

Backend/Java

[Ubuntu] MariaDB 외부 접속 허용

2024년 3월 20일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf/etc/mysql/mariadb.conf.d/50-server.cnf 파일을 nano 편집기로 열어준다. 방향키를 이용하여 아래 내용을 찾아준다.# Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.bind-address = 127.0.0.1여기에서 bind-address 부분을 0.0.0.0 으로 변경해 주어 외부에서 ..

Backend/Linux

[오류 해결] SQL ERROR 1406: Data too long for column at row 1

2024년 3월 11일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.문제 상황GPT-4 응답 결과와 토큰 사용량에 대해 데이터베이스에 저장하려고 얼마 전에 코드를 수정했다. 수정 전에는 GPT-4에 대한 응답 결과를 따로 저장하지 않고 바로 응답 값을 출력하도록 해두었으나, 수정 후에 갑자기 500(Internal Server Error)가 발생한다는 소식에 확인을 시작했다.백엔드 코드를 확인해 보니 아래 오류가 발생한 것을 확인할 수 있었다.2024-03-10 10:49:04.949 ERROR 1 --- [nio-8080-exec-5] o.h.engine.jdbc.spi.SqlExceptionHelper : (conn=605) Data too long fo..

Backend/Java

Spring, 테스트 코드는 왜 작성할까?

2024년 3월 8일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.원래 필자는 PHP와 그 프레임워크인 Laravel을 이용하여 개발을 해왔다. 하지만, PHP의 인기도가 점점 낮아져가는 것도 사실이고, 다른 언어를 접해 보고자 PHP에서 Java와 Spring Boot로 주 개발 언어를 변경하였다. Spring Boot에 익숙해지고, 여러 커뮤니티를 보며 '테스트 코드'라는 게시글을 많이 접하게 되었다. 그래서 나도 원래는 테스트 코드를 작성하지 않았지만 사실 귀찮아서.. 테스트 코드를 작성하는 방법과 그 이유에 대해서는 꼭 알고 넘어가고 싶기에 이 글을 작성했다.테스트 코드를 왜 작성할까?1. 서버를 시작하여 직접 테스트하는 것 보다 시간을 단축시킬 수 있다..

Backend/Java

Spring Boot에서 ChatGPT 활용하기 #2: API로 GPT 응답 값 가져오기

2024년 2월 27일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.Spring Boot에서 ChatGPT 활용하기 #1: API 연결 테스트에 이어 이 글에서는 Spring Boot에서 만든 API 호출을 통해 GPT의 응답 값을 가져오는 코드를 작성해 볼 것이다.구조gptㄴ controller ㄴ GptController.javaㄴ service ㄴ Impl ㄴ GptServiceImpl.java GptService.java application.propertiesapplication.propertieshttps://platform.openai.com/api-keys 여기에서 발급받은 Secret Key는 저장소에 올라가거나 공유되면 안 되..

Backend/Java

Spring Boot에서 ChatGPT 활용하기 #1: API 연결 테스트

2024년 2월 20일에 작성되었고, 블로그를 이전하며 옮겨온 포스트입니다.여기에서 원본을 확인할 수 있습니다.들어가며OpenAI의 ChatGPT는 현재 전 세계에서 가장 주목받고 있는 기술이다. ChatGPT에 대한 이해가 깊어지면서, 이를 활용한 API 개발에 대한 생각이 점점 커졌다. 또한, 최근에 릴리즈된 Spring Boot 3.0을 아직 제대로 활용해보지 않았던 점을 고려하여, 이번 프로젝트는 Spring Boot 3.0 기반으로 진행하기로 결정했다.ChatGPT API 호출ChatGPT 공식 문서에 따라 Spring Boot에서 본격적으로 활용하기 전 Postman을 통해 API 호출을 먼저 해보았다. 이 글을 쓰는 오늘(2024년 2월 19일) 기준, GPT 모델에 따른 엔드포인트는 다음과..

Backend/Java