두얼굴의 북극곰님의 이글루입니다
Posts
14 posts
스프링프로젝트, Ajax에서 한글 깨짐 현상
얼마 전에 신입사원이 입사하면서, 업무 시스템에서 신규 담당자 추가 작업이 필요하게 되었다. 다만 늘 그렇듯이 귀찮은 작업은 하드코딩으로 넣어두었더니, 신규 담당자가 발생할때마다 전체 jsp 파일에 일일이 이름을 새기는 작업을 해야만했다. 내가 비석에 이름 새겨넣는 석공도 아니고... 결국 귀찮음을 이겨내고 디비에 신규 가입자가 발생할때마다 모든 담당자 설정 박스에 동적으로 데이터를 가져오도록 수정을 했다. $.ajax({ url : "/ecommerce/weekreport/getUserList", type : "GET", cache : false, async : false, success : function(data) {
동적쿼리에 관하여
이번 연휴 기간동안 깨달은 바가 있어 오랜만에 블로그에 글을 올린다. 동적 쿼리? 그냥 변수만 던져줘서 변수에 맞게 조회하면 그게 동적 쿼리 아니야? 너무나 무지한 소리를 내뱉고 퇴근한 게 지난 금요일이었다. 동적 쿼리는 변수 뿐만이 아니라 쿼리문 자체가 유동적으로 적용될 수 있어야 한다. 우선 그전에 변수 관련해서 한 가지 배운 점은, 변수를 넘겨 받을 때 #{변수} 를 이용하지만, 참조하는 필드값도 변수로 전달하는 경우에는 ${변수}를 이용해야 한다, ${변수} = #{변수}; 동적쿼리를 구현하는 방법에는 여러가지가 있겠지만, 나는 trim을 이용하였다. select ~~ from {DB} 뒷부분에 where 조건절을 넣기 전, 아래의 설정을 적용한다.
CyclicRotation
오늘의 문제. 특정 값이 입력된 배열을 N번 오른쪽으로 이동 시킨 후,그 결과가 담긴 배열을 구하는 문제. 예를 들어, [1,2,3,4,5] 라는 배열을 3번 이동하게 되면결과값으로 [3,4,5,1,2] 를 출력하면 된다. 이 문제는 코드 자체를 구현하는 것보다 개념적인 방법을 떠올리는데 많은 시간이 걸렸다. 이것은 바꿔말하면, 나의 수학적 기초가 약하다는 뜻이다.수학이 싫어 문과에 갔던 삶의 행보가 묻어있는.... 다시 위의 예시로 돌아가서,N개의 숫자가 들어있는 배열을 M번 이동시키는 경우에만약 N과 M이 같다면 숫자의 위치는 처음 있던 제자리로 돌아오게 될 것이다. 여기서 착안해보면 N과 M이 다른 경우에는 숫자의 위치가 M값을 N으로 나눈 나머지 만큼만 이동한다는 뜻이다. 배열의 크기인
OddOccurrencesInArray
오늘은 두 번째 Codility 문제에 도전하였다.중국쪽 회사에 개발환경 테스트 관련 영어메일을 보내느라 멘붕이었지만.. 어쨌든 도전.. 문제는 이렇다.입력된 배열의 값 중에 중복되지 않는 값을 찾아내는 것. 예를 들어[9, 3, 9, 3, 9, 7, 9] 라는 값이 입력되면짝꿍이 없는 7을 정답으로 제출하면 된다. 나의 계획은입력된 값을 비교하여 같으면 0으로 변환하고, 혼자 남는 값을 남겨서 출력해보자. 코드 결과는 여기까진 좋았으나..결과를 제출하자 예상치 못한 오류를 만났다. 숫자가 커지자 time out 에러가 발생... 내 두뇌의 한계는 여기까지였기 때문에, 고수들의 도움을 요청하였다.그 결과 XOR 연산을 이용해서 풀어내는 방법을 알게 되었다.XOR 연산은 비트연산으로,
binary gap
Codility 라는 사이트에서 코딩테스트 연습을 하고 있다.오늘은 그 첫 번째 문제에 도전.이진수에서 0이 반복되는 최대 숫자를 구하는 문제.예를 들어, 1041은 이진수로 10000010001 이므로,최대 반복되는 0의 숫자는 5.따라서 결과값이 5가 나와야 한다.처음에는 무조건 이진수 구현에 매몰되어 있다가생각해보니 굳이 그럴 필요가 없다.2로 나눠서 나머지가 0이면 카운팅 한 뒤 최종 변수에 넘겨주고,1이면 중간 카운팅 변수를 0으로 초기화 시킨다.그 후 중간 변수와 최종 변수를 비교하여 최종 변수가 크면 그대로 출력.최종 변수가 작으면 둘을 바꿔주면 된다. 작성한 코드 결과는 끝.


