반응형 IT/Java394 JPA, Hibernate, Spring Data JPA 저번 포스팅에서 jpa에 대한 내용은 이미 다룬적이 있다. 참고를 하실 분들은 아래 참고 포스팅에서 직접 확인을 해보기 바란다. 이번 포스팅에서는 해당 JPA를 사용하는데 많이 나오고 함께 공부해야하는 hibernate와 비슷한 이름의 Spring Data JPA 에 대해서 함께 비교하며 얘기를 해볼까 한다. JPA공부를 시작함에 있어서 많이들 헷갈려 하는 부분이 JPA와 Hibernate와의 관계다. 동영상강의에서는 처음에 EntityManager를 활용하여 Data를 삭제 저장 업데이트를 하지만, 실제 실무에서는 EntityManager를 사용하지 않고 Repository 인터페이스 만을 이용해서 JPA를 사용을 주로 한다. 만약 querydsl 까지 다루게 되면 EntityManager를 좀더 다.. 2022. 8. 17. 자바 직렬화(Serializable) 자바에서 사용하는 직렬화의 의미는 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술 시스템적인 면에서는 JVM 메모리에 상주(스택/힙)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주시키는 형태(역직렬화) 를 말한다. 사용하는 법은 다음과 같다. @Data @ToString @Builder @AllArgsConstructor @NoArgsConstructor public class Dto implements Serializable{ private String id; private String name; } 이렇게 implements Serializa.. 2022. 8. 15. delay 설정하기 (Thread.sleep) 코딩을 하다보면 일정 시간 잠깐 정지, delay를 해야할 경우가 있다. 파이썬에서는 간단하게 time.sleep(10) 이렇게 지정을 해주면 되지만 자바에서는 thread 단에서 잡아줘야한다. 코드는 다음과 같다. Thread.sleep(1000); 괄호 안의 값은 ms 로 1000ms = 1초 이다. 파이선과 비슷한 문법이긴 하지만 자바에서는 여기서 끝이 아니라 한가지 작업을 추가로 해줘야한다. Thread를 건드리기에 try catch 문으로 예외 처리를 해줘야한다. 그래서 결국 코드는 이렇게 된다. try { Thread.sleep(1000); }catch(Exception e) { System.out.println(e); } Thread에 대한 개념은 아래 참고 포스팅 참고 바란다. 참고 포스팅.. 2022. 8. 13. gson 에 대해서 자바에서 json 형식을 다룰 일이 많다. 특히나 restapi를 다루게 될 경우엔 더욱 많고 restapi 에 대한 내용은 아래 참고 포스팅을 참고해보자. json 형식에 대해서도 안다는 가정 하에 포스팅을 이어서 작성해보면 json의 장점은 가독성이 좋고 가볍고 플랫폼에 독립적인 이유로 많이 사용이 된다. 그러면서 자바에서는 json 라이브러리를 사용하여 JSONObject json = new JSONObject(" ---- "); 을 사용해서 많이 구현을 한다. 추가적으로 key / value 로 이루어진 json을 get key 로 해서 가져올수도 있기에 많이 사용이 된다. 근데 구글에서 개발한 오픈소스인 Gson 이라는것을 이번 포스팅에서 소개해볼것이다. Gson은 스트링 뿐 아니라 Map 의 .. 2022. 8. 12. JSON Array 처리중 단일 데이터의 경우 문제(22.08.10) restapi 통신중에 받는 형식이 LIST로 되어 있는데 간혹 리스트가 아닌경우가 들어올 경우가 있었다. 예를들어 표준은 아래와 같이 보내지는데 { "value" : [ "1", "2" ] } 간혹 이렇게 한가지의 값만 보낼때가 있어서 { "value" : "3" } com.fasterxml.jackson.databind.JsonMappingException 이런 에러를 만나게 된다. 그럴때는 dto에서 해당 변수에 annotation설정 하나로 해결을 할수가 있다. @JsonFormat(with = JsonFormat.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY) private List value; 2022. 8. 9. 오버로딩(Overloading)과 오버라이딩(Overriding) 자바 기술면접에서 단골문제로 나오는 문제중 하나인 오버로딩과 오버라이딩에 대해서 다뤄볼 것이다. Overloading 동일한 이름을 가진 메소드들이 같은 클래스에 존재하고 파라미터에 따라서 호출이 되는 방식 Overriding 상속관계에서 부모클래스에서 상속받은 클래스를 자식 클래스가가 재정의 하는 것 parameter 및 return type는 같아야 함 Java 1.5 이상부터는 return type이 같은 클래스나 subclass가 될 수도 있음 즉, 자식 클래스가 필요에 의해 메소드 구현을 다양하게 하기 위해서 사용 2022. 8. 3. mybatis에서 <![CDATA[ ]]> 사용 이유 CDATA 란 CDATA = Character DATA, 즉 문자형 데이터를 말한다. 이렇게 선언하고 안에 문자열을 채워 넣으면 , [ ] 안에 있는 문장은 파싱되지 않고 그대로 문자열로 출력된다. 그래서 아래 참고 포스팅의 spring 예제에서 mapper 파일을 보면 이 문구 안에 쿼리가 들어가있다. 마이바티스에서 매퍼 파일은 XML으로 작성되어 있고, 파싱될 때 XML 표준으로 파싱된다. SELECT문에는 조건을 걸어 쿼리하기 위해 , = 등의 기호를 많이 사용하는데, 이것이 파싱 중에 태그로 인식되거나 하는 등의 문제가 생길 수 있다. 안에 원하는 쿼리문을 선언 한다면, 파싱하지 않고 그대로 문자열로 인식 시킬 수 있어 이런 문제를 예방할 수 있다. 동적 SQL에서는 사용하지 못하는데, 필요한 특.. 2022. 8. 2. 시간복잡도 계산 시간복잡도 기본적인 연산을 수행하는데에 어떤 고정된 시간이 걸릴 때, 알고리즘에 의해서 수행되는 기본 연산의 개수를 세어 예측할 수 있다. 그러므로 걸리는 시간의 총량과 알고리즘에 의해 수행되는 기본적인 연산의 개수는 최대 상수 인자만큼 다르다. - 위키피디아- 시간복잡도를 구하는 방법은 아래와 같이 크게 3가지이다. O(Big-O) Ω(Omega) Θ(Theta) 가장 많이 쓰이는 시간복잡도는 빅오(Big-O) 표기법이므로 해당 표기법에 대한 설명을 다뤄볼 것이다. 코드를 예시로 하여 좀 더 알아보면 아래 두개의 코드를 한번 자세히 읽어보도록 한다. int sum = 0; for (int i=0; i 2022. 8. 1. 자바 문자열 비교 compareTO 프로그래밍 언어 별로 값을 비교하는 메서드들이 존재한다. integer 의 값은 값별로 뭐가 크고 작은 값인지 비교가 확실한데 string 일 경우엔 어떻게 비교가 될까? 이럴때 사용하는 메서드가 compareTo 이다. 어떻게 비교가 되는지 살펴보면 다음과 같다. int compareTo(NumberSubClass referenceName) int compareTo(String anotherString) compareTo() 함수는 두개의 값을 비교하여 int 값으로 반환해주는 함수이다. compareTo() 함수에는 위에서 설명하는바와 같이 "문자열의 비교" 와 "숫자의 비교" 두 방식이 존재한다. 숫자의 비교 같은 경우는 단순히 크다(1), 같다(0), 작다(-1) 의 관한 결과값을 리턴해주는 반면.. 2022. 7. 31. 이전 1 ··· 34 35 36 37 38 39 40 ··· 44 다음 반응형