분류 전체보기

퍼시스턴스 데이터를 다루는 방법 도커 컨테이너가 실행 중에 작성 혹은 수정된 파일은 호스트 쪽 파일 시스템에 마운트하지 않으면 컨테이너가 파기될 때 호스트에서 함께 삭제된다. 즉, 상태를 갖는 애플리케이션을 운영하려면 새로운 버전의 컨테이너가 배포돼도 이전 버전의 컨테이너에서 사용하던 파일 및 디렉터리를 그대로 이어받아 사용할 수 있어야 한다. 이런 경우에 데이터 볼륨(data volumne) 이 사용된다. 데이터 볼륨 데이터 볼륨은 도커 컨테이너 안의 디렉터리를 디스크에 퍼시스턴스 데이터로 남기기 위한 메커니즘이다. (호스트와 컨테이너 사이의 디렉터리 공유 및 재사용 기능을 제공) 데이터 볼륨을 사용하는 방법은 아래와 같다. $ docker container run [options] -v 호스트_디렉터..
docker container prune # 1.13 docker rm $(docker ps -q -f status=exited) docker image prune # 1.13 - a, --all : 사용하지 않는 모든 이미지 제거 --filter : 조건 설정 -f, --force : 이미지를 강제로 삭제
JAVA8 의 Time 패키지에서 날짜 차이를 구하는 방법을 알아보자. Duration 사용 Period 사용 ChronoUnit 사용 Duration 두 시간 사이의 간격을 나타낸다. between() 정적 메서드를 사용하면, Duration 객체를 생성해 준다. LocalDateTime startDateTime = LocalDateTime.of(2020, 12, 20, 9, 30, 30); LocalDateTime endDateTime = LocalDateTime.of(2020, 12, 20, 10, 0, 40); Duration duration = Duration.between(startDateTime, endDateTime); log.debug("seconds : {}", duration.getS..
1. concat() 연산자 사용 파라미터로 받은 배열이나 값들을 기존의 배열에 합쳐서 새로운 배열을 만들어 리턴 const arr1 = [1, 2, 3]; const arr2 = [4, 5, 6]; const arr3 = [7, 8, 9]; arr1.concat(arr2, arr3); // [1, 2, 3, 4, 5, 6, 7, 8, 9] arr1.concat(4, 5, [6, 7, 8], 9); // [1, 2, 3, 4, 5, 6, 7, 8, 9] 2. ... spread operator 전개 연산자 사용 spread operator는 원소들을 쪼개어 개별요소로 리턴한다. 이 쪼개진 개별 요소들을 인자로 가지는 새로운 배열을 생성하면 아래와 같다. const arr1 = [1, 2, 3]; cons..
사용법 시간 더하기 DATE_ADD(기준 날짜, INTERVAL) 시간 빼기 DATE$_SUB(기준 날짜, INTERVAL) 예제 1 초 더하기 SELECT DATE_ADD(NOW(), INTERVAL 1 SECOND); 1 분 더하기 SELECT DATE_ADD(NOW(), INTERVAL 1 MINUTE); 1 시간 더하기 SELECT DATE_ADD(NOW(), INTERVAL 1 HOUR); 1 일 더하기 SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); 1 달 더하기 SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH); 1 년 더하기 SELECT DATE_ADD(NOW(), INTERVAL 1 YEAR); 빼기를 DATE_ADD를 사용할 수 있음 SEL..
JPA에서 골치아픈 N+1 문제 해결방법을 몇가지 정리한다. N+1 문제 => ORM에서 많이 발생하는 문제 Entity에 대해 하나의 쿼리로 N개의 레코드를 가져왔을 때, 연관관계 Entity를 가져오기 위해 쿼리를 N번 추가적으로 수행하는 문제 N+1 문제에 대해 흔히들 하는 오해 N+1 문제는 EAGER Fetch 전략때문에 발생한다? X, LAZY로 설정했더라도 연관 Entity를 참조하면 그 순간 추가적인 쿼리가 수행됨 findAll()메서드는 N+1 문제를 발생시키지 않는다? Fetch전략을 적용해서 연관 Entity를 가져오는 것은 오직 단일 레코드에 대해서만 적용 단일 레코드 조회가 아닌 경우(JPQL을 수행하는 경우, findAll() 메서드 역시 이 경우) 해당 JPQL을 먼저 수행(E..
2019/10/27 - [프로그래밍 노트/JPA] - [JPA] 다양한 연관관계_일대다(1:N) 일대다(1:N) 단뱡향 관계일 경우, 일대다 단방향관계보단 다대일 양방향관계를 사용해야한다는 포스팅을 한적이있다. 이에관련한 내용을 더 알아보자. member 테이블과 member_detail 테이블은 N:1 관계이다. 다대일(N:1) 단방향관계일때 엔티티를 저장해보자 MemberDetail : Member = N : 1 Member.java @Getter @Setter @Entity public class Member { @Id private Long memberId; private String name; private LocalDateTime createDate; } MemberDetail.java @Ge..
프로젝트 기본 설정 아파치 톰캣에서 제공하는 디스패처 서블릿을 스프링에서 제공하는 디스패처 서블릿으로 변경하는 것부터 작업이 시작된다. ⇒ Spring MVC는 디스패처 서블릿을 확대하여 제공하고 있으며, 기본적으로 아파치 톰캣이 제공하는 디스패처 서블릿기능을 그대로 갖고 있으며, Spring MVC에서 정의한 방식으로 동작될 수 있도록 재정의한 클래스 XML 설정 3.x 까지만 하더라도 XML으로 셋팅하는 방법을 지원했지만, 현재는 JAVA로 셋팅하는 방법도 지원 1. DispatcherServlet 설정하기 기본적으로 Apache Tomcat 안에 ServletJSP 실행에 관련된 기본셋팅이 되어있다. Web.xml 파일이 WebApplication에 없다면 Apache Tomcat이 가지고 있는 w..
Spring ⇒ IoC와 AOP를 지원하는 경량의 컨테이너 프레임워크 개발자가 직접 Servlet 클래스를 작성하지 않고, POJO 만으로 웹 애플리케이션을 구축할 수 있다는 것이 스프링의 특징이다. 컨테이너란? 특정 객체의 생성과 관리를 담당하며 객체 운용에 필요한 다양한 기능을 제공한다. 필요한 객체를 생성하고 객체 간의 의존관계를 관리한다는 점에서 스프링도 일종의 컨테이너라고 할 수 있다. 스프링 컨테이너의 종류 스프링에서는 BeanFactory와 이를 상속한 ApplicationContext 두 가지 컨테이너를 제공한다. BeanFactory: 스프링 설정파일(xml 혹은 java)에 등록된 bean 객체를 생성하고 관리하는 가장 기본적인 컨테이너 기능만 제공한다. 컨테이너가 구동될 때 객체를 생..
JVM 가상머신, JVM 구조JAVA와 OS 사이에서 중개자 역할을 수행하여 JAVA가 OS에 구애받지 않고 재사용을 가능하게 해준다.메모리 관리, Garbage collection을 수행한다.실행과정JVM은 OS로부터 프로그램이 필요로 하는 메모리를 할당 받는다. (메모리를 여러 영역으로 나누어 관리)자바 컴파일러(javac)가 자바 소스코드(.java)를 바이트코드(.class)로 변환시킨다.Class Loader를 통해 class 파일들을 JVM으로 로딩한다. 로딩된 클래스는 Runtime Data Area에 배치된다.Execution Engine이 class 파일들을 해석(interpret)한다.해석된 바이트코드는 Runtime Data Areas에 배치되어 실질적인 수행이 이루어지게 된다.JVM..
깡냉쓰
'분류 전체보기' 카테고리의 글 목록 (15 Page)