본문 바로가기

Programing78

Transaction 내에서 ExecutorType 변경 불가 오류 Spring-Batch로 개발을 진행하던 중 아래와 같은 오류를 접하였다. org.springframework.dao.TransientDataAccessResourceException: Cannot change the ExecutorType when there is an existing transaction 현상은 "Transaction내에서 ExecutorType이 변경될 수 없다” 이다. 위 현상은 Batch 처리를 할 때 발생할 수 있다. 그 이유는 아래와 같다. MybatisPagingItemReader를 사용하면 내부적으로 SqlSessionTemplate이 생성될 때 ExecutorType.BATCH로 지정된다. 만약 MybatisPagingItemReader에서 다른 쿼리를 날려보고자 한다면.. 2017. 3. 15.
[코딩도장] 아마존 입사문제 아마존 면접 문제로 알려진 “그 시간 사무실에 몇 명이 있었나?”를 풀어보았습니다. 문제는 아래와 같습니다. A 사무실에 특정일자의 출퇴근 시간이 기록된 거대한 로그파일이 있다고 한다. 파일의 형식은 다음과 같다.(한 라인에서 앞 부분은 출근시간(HH:MM:SS), 뒷 부분은 퇴근시간이다) 09:12:23 11:14:35 10:34:01 13:23:40 10:34:31 11:20:10 특정 시간을 입력(예: 11:05:20)으로 주었을 때 그 시간에 총 몇 명이 사무실에 있었는지 알려주는 함수를 작성하시오. 기본적으로 두 가지 가정하에 문제를 접근해 보았습니다. 로그 파일에 출근시간은 정렬이 되어 있다. 자정을 넘기지 않고 당일날 퇴근한다. 1번의 경우 가정하지 않더라도 정렬 작업을 수행하면 되지만, 2.. 2017. 2. 4.
[코딩 도장] 넥슨 입사문제 중에서 이번 주는 코딩 도장(http://codingdojang.com/) 사이트에서 넥슨 입사 문제 중 하나로 아래와 같은 문제가 있어 풀어보았다. 어떤 자연수 n이 있을 때, d(n)을 n의 각 자릿수 숫자들과 n 자신을 더한 숫자라고 정의하자. 예를 들어 d(91) = 9 + 1 + 91 = 101 이 때, n을 d(n)의 제네레이터(generator)라고 한다. 위의 예에서 91은 101의 제네레이터이다. 어떤 숫자들은 하나 이상의 제네레이터를 가지고 있는데, 101의 제네레이터는 91 뿐 아니라 100도 있다. 그런데 반대로, 제네레이터가 없는 숫자들도 있으며, 이런 숫자를 인도의 수학자 Kaprekar가 셀프 넘버(self-number)라 이름 붙였다. 예를 들어 1, 3, 5, 7, 9, 20, 3.. 2017. 1. 22.
Levenshtein distance Levenshtein Distance란? wikipedia에서는 아래와 같이 정의하고 있다. Ininformation theoryandcomputer science, theLevenshtein distanceis astring metricfor measuring the difference between two sequences. Informally, the Levenshtein distance between two words is the minimum number of single-character edits (i.e. insertions, deletions or substitutions) required to change one word into the other. It is named afterVla.. 2017. 1. 10.