개발
-
[JPA] JPA개발/Java 2023. 1. 1. 16:47
JPA는 Java Persistence API의 약자로 Java의 ORM 표준이다. 기존의 JDBC와 Java 앱 사이에서 사용되는 API다. 기존의 RDB, SQL과 객체지향적 코드 사이에는 문제점이 있다. RDB 같은 경우 SQL을 통해 DB에 접근하여 데이터를 관리할 수 있다. 하지만 객체지향적 언어에서 사용되는 상속 관계 등을 명확하게 표현할 수 없다. 또, 참조되는 객체 사이에서는 그 이동이 자유로워야 한다. 하지만 RDB를 통해 가져온 데이터에서는 매번 Join을 통해 새롭게 데이터를 추가해야한다. 이런 상황에서 여러 상황에서 쓰이는 쿼리를 매번 작성하는 것이 번거롭기에 JPA가 등장했다. JPA는 지연 로딩, 즉시 로딩을 지원하며 상황에 따라 필요한 객체를 필요 시점에 맞게 불러올 수 있다...
-
[Spring Boot] Reason: Validation failed for query for method public abstract개발/Java 2022. 6. 9. 21:39
...@EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract...스프링부트에서 JPA를 활용하다 이런 에러를 종종 마주했다.JPA는 함수 명에 따라 쿼리를 동작시켜주는데 종종 직접 작성한 쿼리가 필요할 때가 있다. /* 에러 발생 어노테이션 */@Query("___MY_QUERY__")/* 수정한 어노테..
-
[SpringBoot] URL 이미지 반환하기(2) - Redis Caching개발/Java 2022. 5. 16. 15:55
[SpringBoot] URL 이미지 반환하기 스프링부트를 활용해서 API 서버를 만들면서 이미지가 담긴 URL을 반환해주는 기능이 필요했다. 클라이언트가 서버의 URL로 접근해서 이미지를 요청하면 외부 API의 정적 이미지를 담은 URL을 내 쪽 www.floodnut.com 앞서 구현한 URL 이미지를 캐싱하는 작업을 진행하고자 한다. 우선 캐싱을 진행하고자 한 이유는... 이미지는 외부 API를 통해 요청된다. API 호출 횟수를 줄이기 위해서다. 반복 요청에 대해서 외부 API로의 이미지 요청의 응답 속도를 줄이기 위해서다. 그렇다면 NoSQL인 Redis를 선택한 이유는? Key-Value를 통해 원하는 이미지만 빠르게 반환하기 위해서다. 여러 이미지를 반환한다면 RDBMS가 더 유리할 수도 있..
-
[JAVA] 입출력개발/Java 2022. 4. 25. 20:37
우리가 자바를 통해서 일반적으로 입출력을 처리하는 방법에 대해서 알아본다. 파이썬의 경우 sys.stdin.readline(), input(), map(), split() 등을 이용하는 것처럼 여러가지의 경우를 정리할 것이다. 추가 내용이 있을 경우 업데이트 예정 일반적인 입출력 import java.io.*; import java.util.*; public class Main { public static void main(String[] args){ /* 입력 */ Scanner sc = new Scanner(System.in); int n = Integer.parseInt(sc.nextLine()); /* 출력 */ System.out.println(n); } } Scanner와 표준 출력을 활용한 ..
-
[Spring Boot] URL 이미지 반환하기개발/Java 2022. 4. 25. 17:14
스프링부트를 활용해서 API 서버를 만들면서 이미지가 담긴 URL을 반환해주는 기능이 필요했다. 클라이언트가 서버의 URL로 접근해서 이미지를 요청하면 외부 API의 정적 이미지를 담은 URL을 내 쪽으로 끌고와서 해당 URL의 이미지를 내 서버의 URL로 접근할 수 있도록 해야했다. 외부 API에 직접 접근하면서 생기는 두 가지 문제점을 해결하고 싶었다. API키가 노출되는 점 URL 길이가 길어지는 점 위 두 개의 문제점을 해결하기 위해서 다음과 같은 방법을 생각했다. 외부 API URL에 접근해서 이미지만 객체 또는 바이트 배열로 받아오기 해당 이미지 객체를 바이트 배열로 반환하기 우선 아래와 같은 클래스와 함수를 만들었다. 파라미터로 전달되는 값들을 통해 URL을 구성하고 이를 통해서 URL 객체..