springboot

안녕하세요~😄 오늘은 YOUTUBE 개발바닥 영상을 보던 중에 N + 1 문제라는 키워드가 환기되어 현재 진행 중인 프로젝트에서 N + 1 문제가 발생되고 있는지 확인해 보고 2가지 방법으로 해결해 보도록 하겠습니다. 가이드 && 환경 💡 SpringBoot 3.2.2 , SpringDataJPA, Hibernate 💡 Tag Entity, Category Entity, N+1 문제 확인 💡 해결방법 1. Fetch Join, 2. @EntityGraph 사용하기 💡 성능향상 점검 💡 결론 문제 인식 ✅ 먼저 Postman을 사용하여 자주 사용하는 Rest API를 모두 호출해 보았습니다. ✅ 그중 사용빈도가 매우 높은 "모든 태그를 불러오는 기능"에서 Tag , Category 두 엔티티의 연관관계에서..
안녕하세요!😄 오늘은 저번 시간에 설정했던 Redis를 이용해서 조회성능이 어느 정도 향상되는지 알아보겠습니다. 가이드 & 환경 - Spring3.2.2 , Postman, Redis, EC2 - SpringBoot CacheCode - 테스트할 DTO , List - 조회 성능 차이 계산 SpringBoot Cache Code @Service @RequiredArgsConstructor public class LikesCachingServiceImpl implements LikesCachingService { private static final Logger logger = LoggerFactory.getLogger(LikesCachingServiceImpl.class); private final Li..
안녕하세요~ 오늘은 읽는곳곳 프로젝트에 공유 독후감을 등록했을 때 좋아요 기능도 있었으면 좋겠다! 싶어서.. 포스팅을 하게 되었습니다. 좋아요 기능을 해본 적은 있지만 숙련되지는 못해 나중에 더 좋은 방법이 있다면 업데이트하도록 하겠습니다. 요구사항 & 정리 요구사항은 아래와 같습니다. > 한 독후감에 1개의 좋아요만 가능하다. > 즉 좋아요 상태의 유무 관리가 필수 여기서 Review에 좋아요 카운트 칼럼을 만들어서 직접 하면 안 되냐 생각하실 분도 계시겠지만 중복으로 좋아요가 가능하고 상태 관리를 할 필요가 없다면 그러셔도 될 것 같습니다. 하지만 좋아요를 누를 때마다 DB에 접근하여 Update를 직접 해주어야 하는 것은 비효율적이라고 생각되기에 캐시나 배치 등 여러 방법을 통한 자신만의 최적화 방..
Java 11과 17에 대하여 안녕하세요 오늘은 자바 버전차이에 대하여 포스팅하려 합니다. 2023년 기준 자바 17이 드디어 자바 11 버전의 사용율을 이겼네요. 새롭게 등장한 SpringBoot 3 버전도 자바 17 이상만 지원하기 때문에 앞으로 새롭게 등장하는 웹서비스에 대해서는 Java17을 사용할 확률이 높겠습니다. 아마두? 주요 변경 사항 ✅자바 11에서 17로 업그레이드됨에 따라 주요 변경사항을 한번 공부해 보도록 하겠습니다!! 패턴 매칭 for instanceof 자바 11: if (obj instanceof String) { String s = (String) obj; System.out.println(s.length()); } 자바 17: if (obj instanceof String ..
Swagger 사용기 안녕하세용 오늘은 프론트와 백이 협업을 하며 사용하면 좋은 Swagger에 대한 사용법을 알아보도록 하겠습니다.🙂 Swagger를 처음 접하시는 분들께 설명드리자면 Swagger는 OpenAPI 명세(OpenAPI Specification, OAS)의 핵심 도구 중 하나입니다. OpenAPI는 RESTful API를 위한 API 설계에 대한 표준 언어 및 프로세스를 정의합니다. 이 명세는 API의 모든 측면을 기술적으로 설명하여 API의 기능을 정확히 이해하고 올바르게 사용할 수 있게 합니다. 본 프로젝트는 Java 17 , SpringBoot 3.2.2 , gradle 8.5 버전을 사용합니다. 의존성 추가 아래의 의존성을 사용해 줍니다. implementation 'org.spr..
AWS S3 Bucket을 이용한 이미지 업로드 + CloudFront설정 안녕하세요! 오늘은 Interior 프로젝트를 진행하면서 웹 서비스에서 이미지를 효과적으로 보여주기 위해 AWS의 S3 버킷과 CloudFront를 활용하는 방법에 대해 자세히 알아보도록 하겠습니다. S3의 여러 가지 장점이있는데요 ❗ ❗ 💡 내구성과 안정성: AWS의 S3는 데이터의 내구성과 안정성을 보장합니다. 데이터가 여러 복제본에 걸쳐 저장되므로 데이터 손실 우려가 줄어듭니다. 💡 확장성: S3는 거의 무한한 확장성을 제공하므로 대용량 데이터를 저장하고 처리할 수 있습니다. 💡 다양한 데이터 관리 기능: 버전 관리, 암호화, 액세스 제어 등 다양한 데이터 관리 기능을 제공하여 데이터를 보다 효율적으로 관리할 수 있습니다. ..
안녕하세요. 오늘은 Spring Framework를 사용하면서 자주 마주치는 MissingPathVariableException에 대해 알아보고, 이 문제를 해결하는 방법을 공유하고자 합니다. 오류 개요 MissingPathVariableException은 Spring MVC에서 컨트롤러의 메서드가 URI 경로 변수를 요구하는데, 실제 요청 URL에 해당 변수가 포함되지 않았을 때 발생합니다. 에러 메시지는 다음과 같습니다 .w.s.m.s.DefaultHandlerExceptionResolver: Resolved [org.springframework.web.bind.MissingPathVariableException: Required URI template variable 'id' for method p..
· DevOps/AWS
본 게시글은 [K-디지털] 개발자를 위한 AWS DevOps 입문(CI/CD 무중단 배포) 온라인 과정 중 일부를 복습하는 글입니다. 오늘은 기본적인 배포 스크립트 구성을 알아보도록 하겠습니다. 최대한 한줄한줄 뜯어보며 복습하겠습니다. var.sh #!/bin/bash GITHUB_ID="codingspecialist" PROJECT_NAME="aws-v2" PROJECT_VERSION="0.0.1" PROJECT_PID="$(pgrep -f ${PROJECT_NAME}-${PROJECT_VERSION}.jar)" JAR_PATH="${HOME}/${PROJECT_NAME}/build/libs/${PROJECT_NAME}-${PROJECT_VERSION}.jar" export GITHUB_ID expor..
안녕하세요~! Spring Boot와 MySQL을 연동하는 방법을 알려드리려 합니다. Spring Data JPA와 MySQL을 활용하여 사용자 데이터를 관리하는 기본적인 CRUD(Create, Read, Update, Delete) 기능을 구현하는 과정을 차근차근 알아가 보겠습니다. 프로젝트 설정 먼저 application.yml 기본 설정부터 알려드리겠습니다. spring: jpa: database: mysql hibernate.ddl-auto: update show-sql: true datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:{portNum}/{databaseName}?serverTimezon..
Login with OAuth 2.0 [invalid_token_response] An error occurred while attempting to retrieve the OAuth 2.0 Access Token Response: 401 Unauthorized: [no body] SpringBoot 3.0.7 버전을 사용하던 중 OAuth2.0 소셜 로그인 중 일어났던 오류입니다. 아래와 같은 오류는 Spring Boot가 2.x.x 버전에서 3.x.x버전으로 올라감에 따라 일어남으로 인지했습니다. Kakao 소셜 로그인중 일어났으며 해결방법은 아래와 같습니다. client-authentication-method: Post 먼저 스프링 시큐리티 버전을 확인하신 뒤, 변경하시면 됩니다. # Spring ..
발달중인 망고
'springboot' 태그의 글 목록