[Spring Boot] The requestURI was rejected because it can only contain printable ASCII characters
·
🍏 Spring Boot
@RequestParam 을 MultipartFile 타입으로 받아서 포스트맨으로 file 타입을 전송하는데, 400 오류가 뜨며 다음과 같은 에러 메시지가 출력됐다. The requestURI was rejected because it can only contain printable ASCII characters 이게 무슨 소리인가... 하니ASCII 범위를 벗어나는 문자가 포함되어 있어서 Spring Security에서 차단한 것이라고 한다 하지만 내 파일 이름은 단순히 tumbler.jpg 였기에 파일 이름의 문제는 아닌 것 같았다  챗지피티한테 물어봤을 때는 1. 서비스 메서드 안에서 파일 이름을 ASCII 코드로 바꿔서 전송하거나,2. 방화벽 설정을 비아스키코드 허용으로 바꾸라는데... 1번은 ..
[AWS EC2] nohup 사용법 / 백그라운드 실행
·
🦎 프로그래밍
aws의 ec2 인스턴스를 이용하여 스프링부트를 배포하였는데컴퓨터를 끄면 서버가 종료되면배포한 이유가 없어지는 것!! 이럴 때는 nohup 을 이용하여 백그라운드에서 서버를 유지시킬 수 있다.(무중단 배포) 👽 nohup이란?no hang up 의 약자로, 말 그대로 '끊지 마' 라는 뜻서버의 연결을 끊지 않고 계속 실행하는 것이다.  우선 ec2에 접속한 후, ps -ef | grep .jar 이 명령어를 실행하면 어떤 .jar 파일이 실행 중인지 알 수 있다. 나는 이미 백그라운드 실행을 돌려놓은 상태였기 때문에 다음과 같이 jar 파일이 실행되고 있는 걸 볼 수 있다! 아무것도 없다고 가정하고백그라운드 실행을 돌려야 할 때는 nohup java -jar (프로그램명) &  을 입력하면 된다.아무 ..
[Spring Boot] @RequestParam, @RequestBody
·
🍏 Spring Boot
post와 get의 차이는 간단하다. post는 정보를 새로 생성하거나 업데이트할 때, get은 정보를 요청할 때 (가져올 때) 사용한다. 그러나 이걸 컨트롤러 계층에서 @PostMapping, @GetMapping 으로 api를 호출하여 사용할 때 @RequestBody 와 @RequestParam의 차이는 뭐지? 언제 써야 하지? 와 같은헷갈림이 종종 발생하여내 이해를 위해 정리해 보기로 한다. . . 🍏 POST vs GET  GET - 서버로부터 정보를 요청할 때 사용하는 HTTP 메서드POST - 정보를 생성하거나 업데이트할 때 사용하는 HTTP 메서드 🍏@RequestParam쿼리 파라미터, 폼 데이터 또는 URL에서 값을 추출할 때 사용됨HTTP 요청 파라미터의 이름으로 바인딩하여 변수에..
[Spring Boot] 1. RDS MySQL 배포하기
·
🍏 Spring Boot
무지하게 오류가 많이 났던... 배포 일기. 맨 처음에는 ubuntu 내에 mysql 을 설치해서 해보려 했으나느리기도 느리고마지막 에러 해결이 안 돼서 정신이 나갈 뻔했다그래서 내 부족함을 인정하고 rds 로 재빠르게 피신했다. . .근데 이것도 두 번째 생성 일기  우선 RDS를 생성하기 위해 AWS에 접속 검색창에 rds 검색하면 맨 위에 뜨는데 들어가서 데이터베이스 생성을 누릅니다.  많고 많은 것 중에 내가 사용할 것은 MySQL  엔진 버전 설정해 주고  우리의 통장은 소중하니 프리티어를 꼭! 적용해 줍시다 그리고 이걸 보는 개발자님은 허리 한번 펴고 스트레칭 합시다 이것도 통장을 지키는 방법 중 하나이니까요  이것도 마찬가지로 각자 사용할 식별자와 이름, 그리고 아래에 비밀번호까지 입력하면 ..
[Spring Boot] @Transactional 이란?
·
🍏 Spring Boot
🍏 @Transactional 이란?스프링부트에서 사용되는 어노테이션 중 하나로, 'Transaction' 을 적용시킨다.  그렇다면 'Transaction' 이란?= 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위  그래서 @Transactional 을 붙이면, 그 메서드는 하나의 단위가 되어 실행되고메서드 실행이 중단됐을 시 일부만 적용되는 것을 막아 준다! 예를 들어 @Transactional{userRepository.save(newUser);articleRepository.save(newArticle);}이런 식의 메서드가 있다고 가정했을 때, newArticle에 오류가 있어 저장이 진행되지 않았다면newUser 또한 저장이 되지 않는 것이다.  🍏 @Transactiona..
[Git] 깃허브 토큰 발급 받기
·
🦖 Git
깃허브에서 발급받을 수 있는 '토큰'은하나의 로그인 방식이다 인텔리제이에서 깃허브 리포지토리를 클론해 오거나저장소와 연결하는 등... 깃허브에 로그인할 일들이 생기는데이럴 때마다 나는 웹 로그인이 안 돼서매번 토큰을 발급받아 이용하고 있다훨씬 간편한 방법이라고 생각한다 👽 깃허브 토큰 발급 받기 상단 우측 프로필 아이콘을 누르면 이렇게 목록이 뜨는데 여기서 Settings에 들어간다 그리고 맨 아래에 있는Developer settings 클릭  그럼 이렇게 뜨는데 여기서 Tokens (classic) 으로! 그리고 우측에 Generate new token (classic) 을 클릭 Note 에 토큰 이름과Expiration 에서 유효 기간을 설정해 준다.나는 처음에는 30일로 지정했었는데매번 유효기간 ..
[Git] 깃허브 원격 저장소에 push 하기
·
🦖 Git
로컬에서 작업한 파일을원격 저장소와 연결하고 push 하는 방법을 알아보자우선 원격 저장소에 새 리포지토리를 만들어준다이때 나는 README file을 추가했는데이거 때문에 충돌나서 결국 로컬 파일을 지웠다만약 로컬에 이미 README 가 있다면 추가 안 해도 될 것 같다!  그리고 이 리포지토리의 URL을 복사 그리고 인텔리제이의 터미널을 열어준다 git remote -v로 현재 연결 중인 저장소의 링크를 보고(나의 경우는 그냥 내 개인 리포지토리)연결을 해제해 주기 위해 git remote remove origin 을 실행한다그리고 git remote add origin "원격 저장소 url"으로 새로운 곳에 연결한 후  git add . git commit -m "커밋 설명"을 통해 커밋 git p..
[IntelliJ] 인텔리제이 No python interpreter configured for the module 오류 해결
·
🦎 프로그래밍
자바만 사용하던 나...fast api 연동을 위해인텔리제이에서 파이썬 파일을 불러 오니까  이런 오류가 발생 대충 파이썬 모듈이 없어서 그런 것 해결 방법은 간단합니다 File - Project Structure 에 들어가서 Modules에 들어가라는데 나는 거기에서 파이썬 추가해도 아무것도 안 떴음파일조차 없으니까그래서 SDKs 에 들어가서 python sdk부터 다운을 받아준다 이렇게 적용된 모습 (저는 잘못 예전 버전을 다운받아서 최신 버전으로 다시 다운받고경로 변경까지 다시 해 줬어요)  그러면 이렇게 Interpreter에 뜨게 되고 Apply 하면 끝~필요한 모듈은 terminal에서 따로 다운받으면 오류가 없어집니다 👽
[Spring Boot] 시작하기 / 기본 개념 정리
·
🍏 Spring Boot
🍏 기본 개념 정리서버와 클라이언트란?클라이언트: 서버로 요청하는 모든 프로그램. 대표적인 예: 웹 브라우저서버: 클라이언트의 요청을 받아 처리하는 주체데이터베이스에 대하여데이터베이스: 여러 사람이 데이터를 한 곳에 모아 관리하는 데이터 저장소RDB: Relational Database, 관계형 데이터베이스. 데이터를 행과 열로 이루어진 테이블로 관리.oracle, mysql, sql 서버 등SQL: Structured Query Language, 데이터 검색 언어.NoSQL: Not only SQL, 비정형 데이터를 다루는 방식아이피와 포트아이피: 인터넷에서 서로를 식별하고 통신하기 위한 주소포트: 서버에서 운용되고 있는 서비스를 구분하기 위한 번호https:// → 서버의 443번 포트를 사용하기 ..