개발/Web
-
spring boot 엑셀 다운로드와 파일 다운로드시 자동열림 문제개발/Web 2019. 4. 12. 09:40
엑셀 함수작업을 위해 디자인 한 엑셀 템플릿에 데이터를 넣어 다운로드하는 엑셀 다운로드 작업을 했다. 때문에 poi+jxls를 사용하였고, 컨트롤러와 엑셀 생성 메서드를 통해 작업을 이루어졌다. 헤맸던 것은 예제들은 maven build인점. 이부분은 mavenrepository 사이트에서 찾아 gradle로 변형시켜 채워넣으면 해결. 두번째로는 resource에 있는 file을 불러와야하는데 이 경로를 잡는데 어려움이 있었다. 결론은 ClassPathResource() 를 사용해 resource까지 접근. 나머지 하위경로를 잡아주면 된다. File file = new ClassPathResource("excel/"+templateFile).getFile(); 마지막으로 ajax로는 서버에서 엑셀다운 이..
-
Logback 설정 및 사용개발/Web 2019. 3. 20. 16:28
유지보수 하던 프로젝트에서 매일 로그 기록을 일정 개수가 유지되도록 변경하게 되었다. 기존 프로젝트는 log4j를 사용하고 있었고, dailyRollingFileAppender의 날짜 포멧으로 매일 로그를 남기고 있었다. 하지만 개수를 유지하는것은 RollingFileAppender의 maxbackupindex 설정 영역이었다. log4j 1.2버전을 찾아보고, 돌다돌아 커스터마이징 한 dailyRollingFileAppender를 프로젝트에 추가해 적용시켜보았지만 잘 되지않았다. 그리고 알게 된 것이 logback이다. logback은 log4j를 만든 개발자가 더 보완해서 만든거라는 설명글을 보았다.자세한 정보는 https://logback.qos.ch/documentation.html공식 사이트 메..
-
setInterval()과 setTimeout()개발/Web 2019. 3. 6. 01:17
대쉬보드 화면을 10초와 60초 간격으로 이벤트를 발생시켜 데이터를 갱신하도록 짜 둔 페이지에서 갱신이 되지 않는 문제가 발생하였다. 이유인 즉슨 며칠간 켜둔 페이지를 setInterval()을 이용하여 주기적 실행을 해뒀는데 점점 지연으로 느려지다 멈춘 경우다. 따라서 일반적인 주기는 setTimeout() 써야하나보다. 이 둘의 특징은 정해진 시간대로 실행한다는 것이고, 차이점으로는 인터벌은 정해진 시간으로 무한 반복, 타임아웃은 한 번만 실행이다. 따라서 타임아웃을 사용하여 무한 반복을 할 경우엔 재귀함수를 사용하여 함수안에서 한번 더 호출해야 한다. setinterval() 과 setTimeout() 사용법은 같다. var interval = setInerver(함수,1/1000초);var tim..
-
특정 행 클릭시 해당 행의 파라미터를 포함한 메소드 호출개발/Web 2018. 12. 5. 11:00
이전 프로젝트에서는 tr행에 onclick = function이름(' +변수+') 식으로 쉽게 해결되었었다. 그런데 지금 프로젝트에서는 Uncaught ReferenceError: 변수 is not defined at HTMLTableRowElement.onclick 이런 에러로 해당 변수값은 제대로 전달되었으나 정의되지않은 값으로 에러를 발생시켜 애를 먹였다. 이것에 대한 해결 방법으로는 replace로 일반값을 넣은 후 이걸 바꾸자, 는 긴 검색도중찾았지만 안되었고 혹은 포문용으로 생성된 변수 a는 전달되어 이것을 통해 받아 찾자. 라는..처음부터 떠오른 쉬운길, 하지만 좋지않은 방법이 있었다. 찾다찾다 스택오버플로우에서 https://stackoverflow.com/questions/43369314..
-
테이블 해당 열 값 가져오기 행 값 가져오기개발/Web 2017. 12. 19. 15:31
보통 행 값을 가져오는 경우는 그 행을 클릭 하여 tr값을 불러오거나 셀렉트박스에서 체크된 값을 부르는 경우가 많다. 해당 열 클릭시 그 tr을 통해cname으로 접근하여 값을 얻을 수 있다 $table.on('click', '.msginfo', function() { var $row = $(this).closest( "tr" ); var seq = $row.find('[cname=seq]').val(); var validator = $('#info_msg_form').validate(); var pdata = { "seq" : seq, }; /* 발송 대상 선택 클릭시 */ $('#btn_addCustomer').click(function(){ var validator = $('#add_cus_form..
-
프로젝트를 임폴트 했을 때 톰캣 서버가 붙지 않을 때개발/Web 2017. 12. 18. 17:17
지금까지 svn이나 기타 협업프로그램을 통해 새 소스를 받거나 새로운 프로젝트를 임폴트 했을경우 잘 되던 프로젝트에 서버가 붙지 않아 애 먹은 적이 많다. 이럴때 워크스페이스 변경, 이전버전으로 복귀 후 추가 부분 워크스페이스에 복사해서 갱신하는 등 아주 원시적이고 불편한 방법으로 꾸역꾸역 해결해갔다. 정확한 원인을 해결하지 못했기 때문이다. 분명 빌드패스 문제같은데 이것을 어떻게 해결해야할까? 어디서 손봐야하는지 정말 알 수가 없었다. 이제야 찾은 방법은 프로젝트 > Properties > Build Path > unbound 된 서버 삭제 또는 수정 > Add Library > Server Runtime > 서버 선택 출처: http://metalbird.tistory.com/entry/프로젝트-im..
-
초짜 개발자의 작업일기개발/Web 2017. 12. 14. 19:40
신입이라 위안삼아 보지만 부끄럽게도 부족한 것도 많고 , 모르는 것도 많고 실수도 많다. 지금까지 코딩을 하면서 자잘한 실수와 알게 된 것이 많지만 현재 테이블 관련하여 작업중인 것으로 첫 글을 남기려 한다. 한 테이블에 ajax를 통해 불러온 데이터를 각 행을 클릭하면 그 행의 필요 데이터가 옆에 디자인한 다른 테이블로 옮겨진다. 그리고 이 옮겨진 데이터를 버튼을 통해 값을 늘리거나 줄이고, 삭제하려고 하는 아주 간단한 작업이다. 나는 이 간단한 작업을 날짜로는 일주일을 경과하여 완료하였다. 1.첫 고비클릭하여 옆 테이블로 옮기는 것은 아주 간단하다. 그래서 기본적으로 쓰였던 테이블 값을 넣고 tbody += ''; tbody += ''+rdata.menu[a].rownum+''; tbody += ''..