프로젝트 진행 과정 메모

  1. 진행하고자 한 것
    https://ejim0093.github.io/etc/error2/ 이어서

  2. 처음 구상
    지난글 마무리에 옵션 value값고 표현부만 나누어주면 간단히 해결될것같다고 마무리 하였으나
    이제 뭐든 간단할거라고 생각하지 말아야겠다…☆

  3. 진행 과정 (7/20) 대분류에서 value/name값을 분리해주는 방식은 일단 맞았다.
    하지만 code(컬럼명)만 넘겨주면 정상적으로 하위옵션값이 뜰거라는 예상과 달리 undefined라는 문구만 출력되었다.
    셀렉트항목 갯수가 DB와 동일하게 뜨는것 봐서는 값추출이 되지 않는 문제는 아닌듯 했고, 프론트 출력상의 문제로 생각되었다.
    혹시 모르니 컨트롤러와 자바스크립트단에서 각각 전달값,응답값을 출력 체크해보았고
    양쪽 모두 json의 배열형식으로 값이 전달되는걸 확인할수 있었다.
    일단 object로만 넘어오는 값에서 속성값을 빼내야 했기에 result로 넘어온 값을 JSON.stringify(result) 처리 해주었다.
    그리고 기존 컬럼명이 아닌 배열 키값으로 반복문 출력명을 변경해 주어
    최종으로 상위 셀렉트 선택시 해당되는 범위의 하위 셀렉트값만 출력됨을 정상 확인했다

최종

function categoryChange(e) {
	var _main_code = $('#cate_m').val();

	$.ajax({
		type: 'post',
		url: '${contextPath}/select/hobbysub.do',
		data: {main_code : _main_code},
		success: function(result){
			let str = JSON.stringify(result);
			var cate_s = "";
			
			for (var i = 0; i < result.length; i++) {
				cate_s += '<option value="' + result[i].SUB_CODE + '">' + result[i].SUB_NAME + '</option>';
			}

			$('#cate_s').html(cate_s);
			}
		})
	};
}
<td width="20%">
	<select name="cate_m" id="cate_m" onchange="categoryChange(this)">
		<option value="1">대분류를 선택해주세요</option>
		<c:forEach items="${hobbyList }" var="hobby">
			<option value="${hobby.hobby_code }" />${hobby.name }</option>
		</c:forEach>
	</select>
</td>
<td width="20%">
	<select name="cate_s" id="cate_s">
	</select>
</td>
@RequestMapping(value="/select/hobbysub.do", method=RequestMethod.POST)
@ResponseBody
public ResponseEntity<List<HobbysubDTO>> ajaxhobbysub(String main_code) throws Exception {

	ResponseEntity<List<HobbysubDTO>> entity = null;

	try{
		List<HobbysubDTO> list= hobbyService.listHobbysub2(main_code);
		entity = new ResponseEntity<List<HobbysubDTO>>(list, HttpStatus.OK);
	} catch(Exception e){
		e.printStackTrace();
	}
	return entity;
}

너무 당연한문제들을 실수해놓고 엄한곳에서 어렵게 생각하며 체크하느라 장시간을 쏟을때는 너무 허무함이 크다
하지만 아내는 과정에서 코드를 분석하고 전체적인 흐름을 다시 짚는것이 도움이 되는것을 알고있기에
일단 찾지못하고 해멘 나 자신에게 억울함이 들긴하지만 결국 해결해서 다행이라고 생각하려한다.

처음엔 스스로가 꼼꼼하지 못해서 자꾸 기본적인걸 놓치나 고민을 했다.
그런데 하면 할수록 그런 문제가 아닌것같다

경험이 부족하다보니 큰틀에서 전체적인 그림을 보지 못하고 세세한 부분에 집중해서 생기는 문제인것 같다
여러 객체와 구현부들이 유기적으로 이루어져있는것을 파악하고 서로의 관계를 머리속에 넣어두어야하는데
자꾸 하나의 페이지에서 문제가 있는지 먼저 검토하고, 없으면 다음페이지로 넘어가고
그러다보니 너무 쉬운건데도 이어지는 문제들을 확인하지 못하고 놓친다

개별적인 기능구현 실력을 늘리는 것도 중요하지만 자바의 특성상 큰 그림을 볼줄 알아야 한다
그러려면 무조건 많이 해보고 코드들의 흐름 자체를 딱봐도 이해되게 익히는 수 밖에 없다
쉬운걸 발견하지 못했다고 자책하면서 다운되지말고 그만큼 자극을 받아서 더 열심히 하면 된다
부족한만큼 더 많이 더 오래하면 못할건없다

Updated: