2020. 7. 15. 23:42ㆍ개발공부/JSP
List를 써서 LottoSimulator 만든 다음 JSP 통해 웹 브라우저에 띄우기
연습한 예제였고 불과 1주일 전에 쳐본 코드였기 때문에 자신있게 시작했다.
그런데 수업시간 1시간 + 1시간을 더 써도 구현하지 못했고, 지하철에서도 머리 싸매고 고심하면서
Java로 먼저 구현하고 나서야 자전거 타고 오는 길에 발견해냈다.
쳐봤던 코드였으나 오래 걸린 이유?
1. 메서드를 통해 호출해야된다는 강박관념
- 자신감 있게 구현 방식을 정하고 코드를 쳐야하는데 '맞는' 방식을 찾아 가려고 한다.
- 예를 들어 다른 방법으로도 풀 수 있는 문제를 단원에 맞춰 풀려고 하다보니 제 꾀에 제가 빠진 격
2. 배운 것은 무조건 쓰려는 남용
- 수업 시간 멤버변수와 메서드는 선언자로 선언하라고 배웠다.
- 선언자는 객체 List도 내부 데이터가 누적되도록 쌓는다는 점을 간과하고, 선언은 무조건 'declaration'을 이용했다.
- 그 결과 웹 브라우저로 띄우는데 새로고침이 먹히지 않고 놑북이 다운되다시피 느려졌다.
- 뭔가 이상해서 코드 한 줄씩 지우면서 원인을 찾았고, 제어 값을 정해놓고 List 배열을 받으니 옆으로 쭉쭉 쌓였다.
- List.size() == 6 이란 코드가 있음에도 자꾸 실행시키려 했으니 런타임은 헛돌았던 것이다.
- 선언자 declaration (!)를 없애니 그제서야 새로고침이 시원하게 동작했다.
기술적으로 배운 점들
1. JSP는 out.print
- 클래스, 객체 생성하는 방법이 익숙하지 않아 메서드를 쓰지않고 코드 그대로 출력했다
- 그러다보니 로또 번호를 출력할 때 System.out.print(); Syntax를 썼다. 결과는 미출력이었다.
- 왜 그럴까 좌절했다.(그럴 때 좌절하지말고 왜 그럴지 다른 관점으로 원인을 찾는데 시간을 집중하자 제발!)
- 알고보니 Java문을 써도 Sysout은 웹브라우저에 써지지 않았다. Java 콘솔에만 써질뿐.
2. Look out for declaration
- 윗 문단 1번에서 거론했듯이 선언자는 데이터를 담아두고 재구동된다. 배열이면 계속 배열 내 값이 이어진다.
- List가 갱신되도록 선언자 없이 객체 생성 해줘야한다. (그렇게하니 지금은 문제없이 구동된다!)
'개발공부 > JSP' 카테고리의 다른 글
JSP - Connection pool & DAO (0) | 2020.08.04 |
---|---|
JSP - application & include (0) | 2020.08.02 |
JSP - Oracle 연결 (0) | 2020.07.24 |
JSP - HTML, Eclipse(JSP) (0) | 2020.07.14 |
JSP - Orientation, HTML (0) | 2020.07.13 |