본문 바로가기

Programming152

bootstrap modal 창을 사용하여 수정 기능을 구현하는 것이 좋을까? 페이지가 좋을까? bootstrap의 modal을 사용하여 데이터를 저장하고 수정하는 기능을 구현하던 중에 같은 modal을 사용하여 수정 기능을 구현할 때 코드가 복잡해짐을 느꼈다. 한가지 form에 두 기능을 넣으려니 복잡해지는게 당연하겠지만 새로운 페이지에 작업시에는 request의 parameter를 사용하여 비교적 깔끔하게 처리를 할 수 있다. 내 경우에는 table에서 특정 row의 수정 버튼을 선택하면 해당 row의 데이터가 채워진 수정 modal 창을 출력 해주려는 것이었는데, 이를 위해 테이블의 row에 해당하는 tr 엘리먼트를 참조하여 그 하위 td 엘리먼트 안의 text 데이터를 가져와서 form안을 채워주어야 한다. 그나마 선택한 테이블 row의 데이터를 얻어오는 것을 map을 사용하여 코드양을 줄이.. 2016. 4. 1.
iCheck jquery plugin은 change 이벤트가 다르다. checkbox를 사용하던 중 당연히 될 것으로 생각했던 change와 click 이벤트가 동작하질 않았다. class attribute로 iCheck 플러그인을 사용한 것 외에는 별다를 것이 없어서 당연히 동일한 인터페이스가 제공될 것으로 생각하고 계속 삽질만 했다. 결국에는 iCheck class를 사용하면서 이벤트 함수가 다르다는 것 떄문이었다. iCheck에서는 change 이벤트의 이벤트 명이 ifChanged 였다. 내가 가져다 사용하는 플러그인을 제대로 알지 못하면 이런 문제가.. 한참 삽질한 후에 제대로된 결과를 얻을 수 있었다. 2016. 4. 1.
getClass에 대해서 책을 보다보니 getClass를 사용하는 예제가 있었다. getClass는 런타임 시에 동작하고 현재 오브젝트의 class 를 반환한다. 결과를 반환 받을 때는 Class 그대로 받아서 사용하는 것보다는 Class 2016. 3. 31.
Map의 keySet()을 활용해보았다. jedis(redis.clients.jedis)를 사용하여 hgetall을 수행하는 경우 반환 타입이 Map이다. 여기서 내가 필요로 했던 값은 key 값 리스트 였기 때문에 반환된 Map에서 keySet() 메서드를 사용하여 key 리스트를 얻어왔다. keySet()의 반환 타입은 Set인데 이 컬렉션 데이터를 정렬해야 하는 이슈가 생겼다. 그래서 정렬을 효율적으로 하기 위해 List로 변환을 해야 했는데 ArrayList의 생성자에서 파라미터로 Collection 타입을 받기 때문에 간단하게 List로 변환이 가능했다. 내부적으로 copy를 수행하여 새로운 ArrayList를 만들어내기는 하지만 이 작업은 불가피할 것 같다. 이 후 sort를 수행하여 원하는 결과를 얻을 수 있었다. 2016. 3. 31.