개발/10줄 TIL 5

210905 10줄 TIL

[ mybatis에서 list를 파라미터로 받기 ] 프로젝트를 DB 두 개에 연결하고 (DB는 이하 각각 A, B라 함) A에서 받아 온 VO의 list를 B에 insert 또는 update 하는 미션이 있었다 예전에 한 번 해 본 것이라 어렵지는 않게 했지만 블로그에도 기록해 둔다. * Mapper (java class) int updateHospitalList(List myList); * Mapper (xml) 1) parameterType : java.util.List - 몇 군데의 블로그에서 mybatis는 list를 받을 수 없으니 map으로 바꾸라고 하는데, 일단 잘 되기에 굳이 map으로 변환하지 않았다. 2) keyProperty = "seq" - 리턴값에 로우 수를 세기 위해 사용하였다...

개발/10줄 TIL 2021.09.06

210901 10줄 TIL

[ 배치와 스케줄러 ] 팀장님께서 "배치 돌리자" 라고 하셨는데, 뭔가 적절한가..? 싶어서 다시금 질문을 드려 보니, 스케줄러를 돌리자는 뜻이셨다. 실제로 배치와 스케줄러를 뭉뚱그려 많이 말한다고. 배치 대용량 데이터 처리가 주 목적 (은행의 전날 거래액 집계 등) 스케줄링 기능이 없어 스케줄러를 보완제로 사용한다 * 아 맞다 통장정리! 해서 가끔 수행하는 것은 배치 작업이지만 스케줄러 작업은 아님. 스케줄러 매 시간, 혹은 지정한 시간에 지정한 동작을 수행 * 1시간마다 신규 데이터 insert여부를 확인하는 작업은 스케줄링 작업이지만 배치 작업은 아님.

개발/10줄 TIL 2021.09.02

210831 10줄 TIL

[ 다중 데이터소스 사용 Multiple DataSource ] DB를 여러 개 사용할 때 데이터소스를 여러개 잡는 방법! 1. DatabaseConfig.java 파일을 DB 수만큼 만들기 (진행중인 플젝은 'Develop' @Profile이 걸려 있어서 그 부분까지 처리하느라 많아졌는데, PlfmDatabaseConfig.java, PrscDatabaseConfig.java 두 개가 골자다.) 2. 각각의 DatabaseConfig.java 안에 ①DataSource ②TransactionManager ③SqlSessonFactory 를 만들어준다. 나중에 구분하기 위해 각 DB별 @Bean의 이름을 설정해주고, 메인이 되는 DB에는 @Primary를 붙여주어야 혼선이 없다 @Profile("stag..

개발/10줄 TIL 2021.09.01

210830 10줄 TIL

어제 기절해서 못 적어 둔 10줄 TIL 잊어버리기 전에 얼른 정리하기! [ SQL에서의 인덱스 ] SELECT 성능을 향상시켜주는 INDEX, 잘 알고 잘 써야 한다고. 두 테이블을 조인하여 검색을 할 때, 쿼리 옵티마이저는 대부분 최적의 결과를 내기 위해 인덱스가 있는 테이블부터 스캔한다고 한다. 하지만 간혹 인덱스가 없는 테이블부터 스캔하는 것이 성능 면에서 명백히 좋을 때가 있다. (ex. 로우 수가 현저히 적은 경우 등) 이럴 때는 의도적으로 인덱스가 타지 않도록 처리하는 것도 필요하다 속어로 "다리를 부러뜨린다"는 표현을 쓴다고 들었음 (덜덜) 인덱스에 연산을 거는 등 처리를 하면 된다. 참고한 포스팅 : 인덱스가 있지만 인덱스를 안 타는 경우 (엘키의 주절주절 블로그) [ 확인 ] SELEC..

개발/10줄 TIL 2021.08.31

210826 10줄 TIL

API를 만들 때, ①리스트와 ②리스트 총 카운트를 내려주어야 하는 경우가 자주 있다. 위 ①과 ②의 쿼리는 분리해서 짜더라도, API는 분리하지 말고 하나의 기능으로 통일해서 한 번에 내려주는 것이 좋다. 이럴 때는 ①과 ②를 감싸는 객체를 만들어주자. [ 감싸는 객체 예제 ] @Data public class EncounterListEntry { private List result = new LinkedList(); private int count; } * 따로 분리하면 안 되는 이유 기능을 분리해서 각각을 비동기로 호출할 경우, ①과 ② 중 어느 쿼리가 먼저 수행될지 알 수 없고 프론트단에서 두 값을 모두 사용하는 함수가 있을 경우 에러가 발생할 수 있다고 한다. 그러므로 한 번에 내려줄 것! [ ..

개발/10줄 TIL 2021.08.27