본문 바로가기

CS127

[MyBatis] 동적 SQL 처리 - trim 사용하기 Intro 검색 관련 쿼리를 작성하다가 동적으로 SQL을 처리해야했다. IF문을 3번 써야했는데, Where절 뒤에 들어가는 조건문 속에 AND가 바로 오면 Syntax Error가 발생했다. trim을 사용해서 해결했는데, 공식문서에 정말 자세히 설명이 나와있고 유사 케이스여서 금방 해결할 수 있었다. Trim 문 안에 있는 쿼리의 맨앞 혹은 맨뒤에 붙는 문자열을 붙이거나 뗄 수 있도록 한다. prefix trim 내부 쿼리 가장 앞에 문자열을 붙여준다. ... prefixOverrides trim 내부 쿼리 가장 앞에 해당 문자열을 지워준다. ... suffix trim 내부 쿼리 가장 뒤에 해당 문자열을 붙여준다. ... suffixOverrides trim 내부 쿼리 가장 뒤에 해당 문자열을 지워.. 2021. 8. 19.
[MyBatis] MyBatis의 Association과 Collection MyBatis에서 Domain 객체와 쿼리를 맵핑을 하다가 막혀서 이 부분을 공부하게 되었다. flat하게 데이터를 주는 쿼리와 다르게, 계층형태로 데이터를 전달해야하다 보면 편하게 맵핑할 방법을 찾게 된다. 이걸 Association과 Collection으로 해결할 수 있다. 세 개의 도메인으로 예를 들어보자. Artist - Album - Song Artist는 여러개의 앨범을 낼 수 있다. Album 안에는 여러 개의 Song이 있다. 즉, Artist와 Album은 1:N의 관계이다. Album과 Song 역시 1:N 관계이다. 만약 특정한 seq번호가 3인 앨범의 정보와 아티스트, 앨범 A에 수록된 곡을 알고 싶다면 어떻게 해야할까? 기존의 나 select로 seq번호가 3인 앨범 정보를 가져온.. 2021. 8. 10.
쿠버네티스(Kubernetes) 개념과 이해 - 2 Intro 쿠버네티스(Kubernetes) 개념과 이해 - 1에서는 오브젝트에 대해 이해했다. 이번 포스팅에서도 document를 이해할 수 있을 정도의 키워드 습득을 목표로 학습하고자 한다. 컨트롤러 1에서 설명했던 4개의 오브젝트로 애플리케이션을 설정, 배포할 수 있다. 이를 좀 더 편하게 관리하기 위해 컨트롤러 개념을 사용한다. 컨트롤러는 기본 오브젝트들을 생성하고, 관리하는 역할을 해준다. 종류는 Replication Controller(RC), Replication Set, DaemonSet, Job, StatefulSet, Deployment 들이 있다. Replication Controller Replication Controller는 Pod를 관리해주는 역할을 한다. 지정된 수로 Pod를 .. 2021. 8. 9.
쿠버네티스(Kubernetes) 개념과 이해 - 1 Intro 마이크로 서비스 아키텍처가 발전하고, 데브옵스에 대한 개념이 명확해지면서 컨테이너 기반의 환경이 주목받기 시작했다. Mesosphere, Swarm, Kubernetes등 다양한 환경이 있으나 현재는 쿠버네티스를 가장 많이 사용한다. 컨테이너 운영 환경 컨테이너를 하드웨어나 VM에 배포하여 사용하면 되는데, 왜 컨테이너 운영 환경이 필요할까? 작은 수의 컨테이너라면 수동으로 배포를 하면 되지만, 하드웨어와 VM의 수가 많아지고 컨테이너의 수가 많아지면 이 컨테이너를 어디에 배포해야 하는지도 결정해야 한다. 자원을 최대한 최적으로 사용하기 위해 적절한 위치에 배포해야한다. 특성에 따라 같은 물리서버에 배포하거나, 가용성을 위해 다른 서버에 배포하기도 한다. 이러한 역할을 스케쥴링이라고 한다. 스.. 2021. 8. 8.