본문 바로가기
반응형

IT/Java318

Java 에서 Http 통신 방식 3가지(RestTemplate, WebClient, OpenFeign) Spring Framework 는 다양하게 Http 요청 방식을 지원하고 통신을 제공한다. 3가지 방식에 대해서 간단히 작성해볼것이다. Http 통신 에 대한 내용은 아래 참고 포스팅을 참고 바란다. 1. RestTemplate RestTemplate은 Spring Framework에서 제공하는 동기식 HTTP 통신을 위한 클라이언트 RestTemplate은 주로 Spring MVC 기반의 애플리케이션에서 사용되며, 다양한 HTTP 메서드(GET, POST, PUT, DELETE 등)를 지원하고 JSON, XML 등 다양한 형식의 데이터를 처리할 수 있음 RestTemplate restTemplate = new RestTemplate(); String url = "https://thenicesj.tist.. 2024. 1. 20.
JPA메서드 save 와 saveAll 비교 Entity 를 사용하여 save를 할 경우 정상일 경우라면 insert 가 된다. saveAll 함수를 사용하게 될경우엔 List 를 형으로 받아서 처리를 해주고, 리스트를 bulk insert 처럼 삽입을 할수 있다. 둘의 성능 차이가 궁금해서 비교해보았다. 결국 SaveAll 함수 내부 로직을 보면 @Transactional @Override public List saveAll(Iterable entities) { Assert.notNull(entities, "Entities must not be null"); List result = new ArrayList(); for (S entity : entities) { result.add(save(entity)); } return result; } 이와.. 2024. 1. 19.
Servlet 이란? (JSP 와 비교) 자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으로 생성하는 서버측 프로그램 혹은 그 사양을 말하며, 흔히 "서블릿"이라 불린다. 라고 위키에 등록이 되어있다. https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EC%84%9C%EB%B8%94%EB%A6%BF 자바 서블릿 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 서블릿은 여기로 연결됩니다. 다른 뜻에 대해서는 서블렛 문서를 참고하십시오. JSP 파일의 수명. 자바 서블릿(Java Servlet)은 자바를 사용하여 웹페이지를 동적으 ko.wikipedia.org https://www.baeldung.com/intro-to-servlets 좀더 쉽게 풀어보면 웹페이지를.. 2024. 1. 17.
RequestEntity 란 이전 포스팅에서 ResponseEntity 에 대해서 다룬 글이 있다. 자세한 내용은 아래 참고 포스팅을 참고 바란다. 간단히 말해 ResponseEntity 는 응답에 대한 내용이고 RequestEntity는 요청에 대한 내용이다. 요청 헤더, HTTP 메서드, URI 등의 정보를 포함한다. 각각의 내용은 아래 참고 포스팅을 참고 바란다. 종류는 크게 2가지로 나뉜다. 요청 본문이 없는 경우 RequestEntity requestEntity = new RequestEntity (헤더, 메서드, 요청 URI); ex) RequestEntity requestEntity = new RequestEntity (headers, HttpMethod.GET, uri); 요청 본문이 있는 경우 RequestEntit.. 2024. 1. 13.
LocalDateTime 요일 구하기 이전 포스팅에서 Java 8버전 이후에 표준으로 쓰이고 있는 LocalDateTime에 대해서 다룬 글이 있다. 참고 포스팅을 참고 바란다. 이 LocalDateTime클래스를 사용하여 요일 값을 알기위해서는 아래와 같이 코딩이 가능하다. LocalDateTime ldt = LocalDateTime.now(); DayOfWeek dow = ldt.getDayOfWeek(); int dydlf = dow.getValue(); 이렇게 하면 월요일부터 일요일까지 1~7의 숫자로 표현된다.(월요일이 1, 일요일이 7) 참고 포스팅 https://thenicesj.tistory.com/273 LocalDateTime 날짜 비교 자바에서 날짜 자료형중 하나인 LocalDateTime에서 날짜를 비교하려면 다음과 같.. 2024. 1. 11.
[JPA] @DynamicInsert, @DynamicUpdate 란? ORM 을 사용할 경우 Entity 를 save method를 사용해서 Insert 혹은 Update 를 할수 있다. 이때 Entity 의 모든 항목을 채워주지 않으면 해당 컬럼은 default 값이 잡혀 있지 않는 한 Null로 체크가 된다. Default의 대해서는 db에서도 가능하지만 JPA에서 설정은 아래 참고포스팅을 참고바란다. 설정되지 않는 값들은 제외하고 설정하는 값들만 insert 와 update 를 되게 하려면 @DynamicInsert, @DynamicUpdate 를 사용하면 된다. 비슷한 내용의 stackoverflow 글이 있는데 도움이 될것이다. https://stackoverflow.com/questions/21721818/why-does-not-hibernate-set-dyna.. 2024. 1. 10.
UUID 생성(GUID) in Java 자바에서 GUID 및 UUID 를 생성하는법에 대해서 다룰 포스팅이다. UUID 와 GUID등에 대해서는 아래 참고 포스팅을 참고 바란다. String으로 UUID를 만드려며 Java.Util 클래스를 사용한다. 아래와 같다. import java.util.UUID; public class Main { public static void main(String[] args) { String uuid = UUID.randomUUID().toString(); System.out.println(uuid); } } 참고 포스팅 https://thenicesj.tistory.com/675 UUID란?(Universally Unique Identifier) 네트워크에서 고유성이 보장되는 id를 만들기 위한 규약이다. .. 2024. 1. 6.
[Error] After saving the identifier must not be null! Spring Data JDBC를 사용하는중에 아래와 같은 에러가 발생하였다. After saving the identifier must not be null! 해석을 해보면 식별자가 Null이다. 라는 의미여서 Entity 와 sql을 확인해보았는데 오타는 없었다. 문제는 데이터엑세스 계층을 담당하는 repository에서 는 CrudRepository를 사용하는데 여기서 참조되는 Entity에서 @Id 가 지정이 되지 않아서 발생한 문제였다. Entity에서 @Id를 넣어주면서 해결. public class Test { @Id private long testId; private String testName; } 2024. 1. 4.
숫자 자리수 0으로 채우기 이전 포스티에서 정규식에 대해 다룬적이 있다. 정규식 관련 내용은 아래 참고 포스팅을 참고 바란다. 정규식과 비슷한 내용으로 숫자 왼쪽에 0을 채우는 방법에 대해서 적어볼 것이다. 예를들어 회원번호가 THENICESJ1 THENICESJ2 THENICESJ3 THENICESJ4 . . . 이런식으로 쌓이는 테이블이 있다면 10의자리가 되면 THENICESJ9 THENICESJ10 이렇게 자리수가 바뀌고 100의 자리로, 1000의 자리로 가면 자리수가 계속해서 많아진다. 이럴경우를 대비해서 THENICESJ0001 THENICESJ0002 .. .. THENICESJ0010 . . THENICESJ0100 이렇게 특정 자리수를 고정해두고 앞의 빈칸을 0으로 채우면 좋은 방법이다. 방법은 간단하다. int.. 2023. 12. 28.
반응형