JSP - Java 문법 연동(List)

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