본문 바로가기

전체 글

(53)
[AWS] S3 버킷을 이용한 이미지 파일 조회 AWS S3 버킷을 이용한 이미지 파일 조회 1. S3 버킷 만들기S3 버킷은 AWS 에서 파일(객체)를 저장하기 위한 공간이다. (클라우드 상의 폴더 개념이다.)로컬 환경에서 이미지 담는 폴더를 만들어 개발하다가클라우드 상의 폴더를 이용하면 추후 배포 때도 편하게 이미지를 관리할 수 있을 것 같아 만들었다. 해당 프로젝트는프론트 : React(vite) + Typescript백엔드 : SpringBoot 3 + Spring Data JPA환경에서 진행한 걸 기준으로 작성되었다. 또한 서버에서 버킷으로의 파일 업로드가 아닌,버킷에 업로드된 파일을 프론트에서 조회하는 방식만 작성되어 있다. 무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어이러한 프리 티어 혜택은 AWS 신규 고객에게만 제공되며 AWS..
OpenAI ChatGPT API Postman 테스트... 크레딧이 없다. 프로젝트에 챗봇을 도입할 일이 있어서 가장 유명한 ChatGPT API 를 사용하려고 했다.가입 후 무료 크레딧을 일부 준다는 이야기가 있어 1년 전 영상으로 테스트 중이었는데... https://www.youtube.com/watch?v=HlDkuFy8xRM참고 영상 { "error": { "message": "You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.", "type": "in..
[JPA] Pageable 이용한 Pagination(페이징 처리) Spring Data JPA 의 Pageable 이용한 Pagination(페이징 처리) 1. JPA PageableSpring Data 의 Pageable 은 페이지네이션(페이징 처리)을 위한 인터페이스로, 대량의 데이터를 페이지 단위로 나누어 클라이언트에 제공할 수 있도록 돕는다. JpaRepository 가 기본으로 제공하는 메소드로, List findAll(); 위의 예시가 T 객체를 전부 찾아 List 로 반환하는 메소드라면 Page findAll(Pageable pageable); T 테이블에서 한 페이지의 레코드들만 조회하여 리턴한다. 구체적으로,Pageable 객체에 담겨있는 페이지 번호와 정렬순서로, 한 페이지의 레코드들만 조회한다.라고 할 수 있다. 2. Pagination 구현 ..
[SpringBoot] 로그 메시지 출력 SLF4J (@Slf4j) 로 디버깅하기 로그 메시지 출력 SLF4J (@Slf4fj) 로 디버깅하기   1. SLF4J (@Slf4j) 사용 이유디버깅에 필요한 정보를 출력할 때 System.out.println(...) 을 사용하곤 했는데, 사실 이는 바람직한 방법은 아니다. 1. 코드 유지보수 어려움1-1. 디버깅이 끝나면 println 출력문을 일일이 제거해야 하고1-2. 많은 출력문이 코드 곳곳에 남아있으면 가독성이 저하된다. 2. 성능 문제2-1. System.out.println() 은 동기적으로 실행된다. 이는 I/O (input/output) 작업이므로 속도 저하를 초래할 수 있다.특히 반복문에서 많이 호출될 경우 성능 저하가 심해질 수 있다. 3. 출력 관리의 어려움3-1. 모든 출력이 콘솔(console)에 섞여 나오므로 필..
[SpringBoot/JPA] List<Integer> 를 서버로 전송하기 (@RequestBody) List 를 서버로 전송하기 (@RequestBody)  1. 문제 개요 (문제 발생 환경)1.1 애플리케이션 유형- Full-stack (Spring Boot + React) 1.2 백엔드 기술 스택- Spring Boot 3.4.2- JPA (MySQL 8.0)- Gradle 1.3 프론트엔드 기술 스택- React 18.2.0 1.4 배포 환경- 로컬 개발 환경 1.5 OS- window 11 1.6 IDE- IntelliJ IDEA 2024.3, VS Code 1.98.2 1.7 JDK 버전- OpenJDK 17 1.8 Node.js 버전- 20.18.1 1.9 문제 발생 시점- 프론트에서 musicList(List) 에 대한 배열 정보를 param 으로 보내자서버에서 Required reques..
[AWS/Actions] 웹 프로젝트 배포하기 (4) - 프론트(React) Nginx 배포 및 CI/CD 구축 웹 프로젝트 배포하기 (4) - 프론트(React) Nginx 배포 및 CI/CD 구축 [AWS/Actions] 웹 프로젝트 배포하기 (3) - 서버(SpringBoot) 배포 및 CI/CD 구축웹 프로젝트 배포하기 (3) - 서버(SpringBoot) 배포 및 CI/CD 구축 [AWS] 웹 프로젝트 배포하기 (2) - 메모리 증설 및 자바 설치웹 프로젝트 배포하기 (2) - 메모리 증설 및 자바 설치 [AWS] 웹 프hanadoescoding.tistory.com이전 글에서 이어집니다. 1. React 프로젝트 클론server 레포지토리와 client 레포지토리를 분리해서각각 actions 를 적용하는 방법도 있으나.. 이미 한 레포지토리 안에 다 넣어버린 관계로한번에 진행하는 방식으..
[AWS/Actions] 웹 프로젝트 배포하기 (3) - 서버(SpringBoot) 배포 및 CI/CD 구축 웹 프로젝트 배포하기 (3) - 서버(SpringBoot) 배포 및 CI/CD 구축   [AWS] 웹 프로젝트 배포하기 (2) - 메모리 증설 및 자바 설치웹 프로젝트 배포하기 (2) - 메모리 증설 및 자바 설치    [AWS] 웹 프로젝트 배포하기 (1) - EC2 인스턴스 생성웹 프로젝트 배포하기 (1) - EC2 인스턴스 생성   1. AWS 접속   무료 클라우드 컴hanadoescoding.tistory.com이전 글에서 이어집니다   1. 깃허브 계정 설정 및 클론여태까지 빌드업이었다. (실화)본격적으로 서버 배포를 시작해보자. 프로젝트 파일을 ① FileZilla 를 통해 직접 옮기는 방식도 있지만Github 의 Actions 기능을 다루기 위해 미리 깃허브 레포지토리에 업로드해둔 상태다...
[AWS] 웹 프로젝트 배포하기 (2) - 메모리 증설 및 자바 설치 웹 프로젝트 배포하기 (2) - 메모리 증설 및 자바 설치    [AWS] 웹 프로젝트 배포하기 (1) - EC2 인스턴스 생성웹 프로젝트 배포하기 (1) - EC2 인스턴스 생성   1. AWS 접속   무료 클라우드 컴퓨팅 서비스 - AWS 프리 티어이러한 프리 티어 혜택은 AWS 신규 고객에게만 제공되며 AWS 가입일로부터 12개월 동안hanadoescoding.tistory.com이 글에서 이어집니다.   1. 인스턴스 연결 및 메모리 증설 열심히 설정해준 인스턴스를 실행시켜 본격적으로 배포해보도록 하겠다. 만든 인스턴스의 체크박스를 누르고상단의 연결 버튼을 누른다.  기본 설정대로 연결해줬다.사용자 이름은 제법 중요하니 따로 정의한 경우 꼭 기억해두자. 연결 버튼을 눌러 배포를 위한 AWS ub..