Controller에서 고민
- noticeList() 전체 조회가 있는데 1건 조회를 하는건 메소드를 따로 구성해야할까?
- 결과창(응답이 나가는 페이지 이름)이 다르게 나오기 떄문에 메소드를 분리하여 설계하는 것이 좋음.
- 왜? 개발만 하는 것이 아니라 유지보수 비용까지 생각하자! (화면 처리 솔루션에 따른 클래스 설계 분리)
메소드 설계 시
- 기존 noticeList()와 거의 동일
- 단, 게시판에 조회수가 포함되어있어서 1건 조회 발생 & 조회수 1 증가를 해야할 경우!
- 한 번은 select로 가져오고, 한 번은 조회된 값이 1이 된다면, 조회수를 Updete를 하도록 설계해야 함.
- Update notice set n_hit = n_hit +1 where n_no=3
DB 설계 시
- 화면에 보이지 않는 컬럼이 제대로 추가되었는지 꼭 확인 필요
- 화면에 보이지 않는 컬럼이지만 개발자에겐 필요한 컬럼,파라미터 값 변경
- (`)
- 변경시, VO, xml 수정 필요
- 관계형태(1:1, 1:N, n:n)를 잘못 그린 게 아니면 리스크는 적은 편
- 시퀀스?![[시퀀스]]
✅ 유일한 순차적인 숫자를 생성하는 데이터베이스 객체
주로 식별자(Primary Key) 값 생성에 사용
시퀀스는 특정 테이블의 하나 이상의 열에 대해 자동으로 값을 생성하며, 보통 테이블의 기본 키 값으로 사용
자동으로 값이 생성되기 때문에, 다수의 사용자가 동시에 데이터를 추가하는 경우에도 중복되지 않는 고유한 값이 보장
안전한 채번이 가능(Exception 있어도 처리->예매, 연번 등)
[!quote] 대규모 데이터베이스 시스템에서 성능을 향상시키고 식별자의 고유성을 유지하는 데 도움
공지사항 수정하기
쿼리스트링 방식
✅ url 뒤 ? 붙여서 넘기는 방식
단점 : 제한적인 방법
get 방식에서 256 byte까지만 가능
따라서 내용이 긴 경우에는 body로 보내는 것이 맞음
jsp에서 Form 전송으로 넘어오는 경우
UI/UX 솔루션 사용 시 js의 객체로 넘어오는 경우 있음.(fetch, axios)
프로젝트 구상
화면 UI 솔루션
html(jsp)
jstl과 el 섞어쓰기
ReactJS(데이터셋-JSON포맷)
부분적 React & 다른 솔루션
[[디자인패턴]]
MVVM 선호 : 장치에 따라 뷰를 선택, 다양한 환경에서 쉽게 조립하여 사용 가능, 뷰를 위한 뷰 어댑터를 설계
쿠키(317p)
쿠키를 이용한다?
페이지끼리(싱글페이지) 정보를 공유할 때(forward방식) 이용하는 방법 중 하나
예 : 로그인 후 화면을 전환할 때, 로그인된 정보가 PC(로컬)에 저장되어 공유될 수 있도록 한다.
쿠키 사용하기
SetCookie.java
쿠키 생성 : 쿠키(쿠키이름, 쿠키값(문자열 형태)
유효시간 : 상대시간(setMaxAge()) / 절대시간
쿠키 브라우저로 전송 : response.addCookie(c) 쿠키는 클라이언트 pc에 저장되는 값이기 때문에 사용하기 위해서는 반드시 브라우저로 전송하는 작업이 필요함!
[!tip] 쿠키는?
여러개를 생성할 수 있으며, 그 값은 문자열만 올 수 있고, 유효시간을 설정하여 로컬에 저장이 된다.
로컬에 저장된 것을 반드시 클라이언트에 전송해야 함. addCookie()
다른 경로에 있는 쿠키를 가져오기 위해서는 setPath()로 경로를 설정하는 것이 필요하다.