1213 일지

Yesol Lee·2022년 12월 13일
0

개발일지 - 2022

목록 보기
178/187

프로젝트

개발

학습자명단 통계 완료

생각보다 빨리 구현해서 다음 통계를 구현할 시간이 넉넉해졌다. 다음 업무인 설문통계가 생각보다 오래 걸릴 수도 있을 것 같은데 야근은 안해도 될 것 같다.

  • 엑셀 다운로드 구현 완료 : 변수를 잘 찾지못하는 오류가 있었는데 위치가 잘못되어서 그랬던건지 이유를 잘 모르겠음
  • 소분류, 이수여부 포함한 목록 조회 (이수증번호는 추후 데이터 들어오면 구현)
  • 조건 검색 구현 (과정, 기수, 분류, 시작일~종료일)
  • 사용자 핸드폰번호 복호화해서 조회 및 다운로드
  • 분류 셀렉트박스에 구분값 binding

설문통계

  • 탭 최소 2개 : 설문별 결과 조회 / 강의나 기수별 만족도문항 결과 조회 필요
  • 이미 거의 동일한 내용을 팝업으로 보여주는 기능이 있어 가져다 쓸 예정. 쿼리에 With가 사용되었는데 실제 사용하는 것은 처음봐 검색해보았다.
    오라클 WITH절 사용법 & 예제 (임시 테이블 만들기)
  • 참고파일 : selectSrvyResultView.jsp / SrvySbmsn.selectSrvyResultList
  • 온라인 sql formatter를 사용해 보았음. --로 주석 작성한 부분은 없애야 잘 된다.

이번주 목표

사실 엄청 급한건 아니지만 테스트도 하고 시연할 것 생각하면 겉으로 보여지는 부분을 빨리 구현해야한다고 생각함.

  • 목요일 오전까지 탭1 화면 띄우기 + 검색
  • 목요일 오후~금요일에 탭2 만들기

사이드 프로젝트

  • 퇴근 후 회의 진행함
  • 우리 프로젝트 진행한 내용을 사내 뉴스레터 기사 및 ppt 등 자료로 만들기로 했다.
  • 파일 다운로드 기능 운영서버에서 되는지 체크해야 함

파일 리셋, 리셋 후 수정 안되는 문제 해결

게시물 작성 시, Home 수정화면에서 사진을 선택했다가 삭제하는 기능이 있는데, 삭제를 하고 나면 새로 파일을 추가하거나 그대로 저장하는 것이 안되는 문제가 있었다. 특이점은 게시물 작성 시 사진 리셋하고 저장하면 에러가 뜨는데, home 수정화면에서 사진을 리셋하고 저장하면 에러 없이 기존 사진이 그대로 조회됐다. 결론적으로 에러의 원인에는 2가지가 있었다.

1. 파일 저장 시 if 조건 잘못 됨 (공통)

원래 isDeleteAttach라는 boolean 변수를 하나 줘서 기존파일 삭제 여부를 판단하려고 했는데, 다시 생각해보니 필요없었던 것 같다. 그냥 새 파일 유무 안에 기존파일 유무로 삭제여부를 중첩하는 방식으로 구현했더니 더 깔끔하고 이해하기 쉬워졌다. 게시물 파일의 수정, 삭제는 이 부분을 수정하니 해결이 되었는데, 이상하게 home 부분은 여전히 기존 파일이 계속 조회되는 문제가 있었다.

2. input type=file의 value 삭제 코드 누락

원인은 home 수정화면의 javascript 코드에 있었다. 화면에서 파일 삭제 버튼을 클릭하면 파일을 삭제하고 화면에서 이미지를 보이지 않게 하는 javascript function이 호출되는데, 해당 함수 안에 input type=file의 value를 비워주는 코드가 누락되어 있는 것을 발견했다. 해당 값이 그대로 들어있으니 계속 기존 파일을 controller로 넘기게 되고, controller에서는 새로운 파일로 인식해 매번 기존 파일 지우고 같은 파일을 다시 등록하고 있었던 것으로 보인다.
누락된 코드를 넣어주니 의도대로 사진 리셋 기능이 작동했다.

function deleteAttach() {
	
	// img 삭제할 부모 태그
    const parent = document.querySelector("ul#image-container");
    
    // 기존파일 id 정보 담긴 태그
    const input_attachId = document.querySelector("input#ATTF_ID");

    if(input_attachId) { // id값 이미 있으면 deleteAttach 속성 true로 변경
        const deleteAttach = document.querySelector('#deleteAttach');
        deleteAttach.value = true;
    }
    // 파일 객체 있으면 삭제 - home 수정 화면에 누락된 코드블록
    const input_attachObj = document.querySelector("input#ATTF_OBJ");
    if(input_attachObj) {
    	input_attachObj.value = "";   
    }
    parent.innerHTML = "";
}
profile
문서화를 좋아하는 개발자

0개의 댓글