본문 바로가기
728x90

전체 글69

Container와 VM VM HyperVisor(호스트 OS에서 다수의 OS를 동시에 실행하기 위한 플랫폼)라는것이 있다. 이 HyperVisor를 사용하여 원하는 운영체제로 GuestOS를 올려 여러 VM(서로 독립된 실행환경 이기 때문에 데이터, 코드 등 공유하지 않음)을 만들 수 있다. Container 애플리케이션이 OS환경에서 다른 OS환경으로 빠르고 안정적으로 실행될 수 있도록 코드와 모든 종속성을 패키징하는 소프트웨어 표준 단위이다. HyperVisor를 사용하지 않기 때문에 부팅시간이 짧고 컨테이너 수가 늘어나더라도 디스크 공간을 많이 차지하지 않는다. OS를 포함하지 않기 때문에 각 컨테이너는 호스트의 OS의 커널(Kernel, 시스템 콜과 같이 OS의 핵심 기능을 구현한 프로그램)을 공유 Container와 .. 2022. 10. 10.
QueryDsl에서 exists과 동일한 성능을 낼 수 있는 fetchOne 바로 전 글에서 유저가 모임을 생성할 때 해당 일에 00:00 ~ 23:00시 까지 유저의 일정을 불러오는 부분을 구현 했다면 이번에는 유저가 모임을 생성하려는 시간에 겹치는 일정이 있는지 없는지 체크해서 겹치는 시간이 있으면 생성을 막는 기능을 구현 하려 한다. 전에 만들었던 query를 사용해서 java에서 겹치는 시간이 있는지 없는지 체크를해도 되지만 따로 query를 만들어서 체크를 하기로 했다. 밑 query는 mysql에서 exists 사용 예제다. select exists ( select * from group_table where group_id = 2 ) 하지만 QueryDsl에서는 from절이 필수이기 때문에 저렇게 사용하지 못 한다. 그래서 exists와 동일한 성능을 낼 수 있는 q.. 2022. 9. 27.
QueryDsl에서 MySQL Function 사용하기 부트캠프에서 팀 프로젝트를 진행하면서 QueryDsl을 사용하게 되었다. 마지막 기능 구현 부분인 모임의 일정 기능 구현을 진행하다가 유저가 모임 일정을 생성하려는 경우 일 별로 유저가 모임을 참여했거나, 모임을 생성한 시간들을 데이터 베이스에서 가져와서 일정이 겹치는 경우 생성을 막아줘야하는 부분을 구현해야 할 것 같아서 QueryDsl에서 MySQL Function을 사용 해야 할 일이 생겨버렸다.. 처음에는 당연히 MySQL의 함수를 쓸 수 있을거 같아서 바로 쓴 결과는 실패였다. No data type for node: org.hibernate.hql.internal.ast.tree.MethodNode 위 내용으로 구글링을 한 결과 dialect를 extends한 CustomDialect를 만들어.. 2022. 9. 27.
728x90