| 항목 | 설명 |
|---|---|
required = false | 쿼리스트링 매개변수가 필수가 아님을 의미 |
required = true (기본값) | 매개변수가 반드시 포함되어야 함 |
| 활용 포인트 | 매개변수 존재 여부에 따라 동적인 변수 선언 및 처리 필요 |
💡 예시:
@GetMapping("/search") public String search(@RequestParam(required = false) String keyword) { if (keyword != null) { // keyword 기반 검색 } else { // 전체 조회 } return "result"; }
| 항목 | 설명 |
|---|---|
| 문제 상황 | SQL에서 LIKE 조건을 사용할 때, % 문자를 포함한 검색이 필요 |
| 해결 방법 | PreparedStatement의 setXXX() 메서드에서 %를 포함하여 전달 |
📘 예시:
String sql = "SELECT * FROM post WHERE title LIKE ?"; PreparedStatement ps = conn.prepareStatement(sql); ps.setString(1, "%" + keyword + "%");
| 항목 | 설명 |
|---|---|
| 문제 상황 | JS에서 Java로부터 받아온 int를 문자열로 인식함 |
| 해결 방법 | parseInt()로 숫자형 변환 후 연산 수행 |
⚠️ 예시:
let num = "1"; // Java에서 받은 값 console.log(num + 1); // "11" (문자열 덧셈) console.log(parseInt(num) + 1); // 2 (숫자 연산)
| 항목 | 설명 |
|---|---|
| 문제 상황 | 첫 페이지(0) 이하 또는 마지막 페이지(전체페이지 수 초과)로 이동하는 오류 발생 가능 |
| 해결 방법 | 페이지 이동 전 유효성 검사 로직 추가 |
💡 예시:
if (page > 0 && page < totalPages) { movePage(page); }
| 항목 | 설명 |
|---|---|
| 목적 | 전체 조회 및 조건 검색을 하나의 메소드로 통합 |
| 핵심 포인트 | @RequestParam(required = false)을 활용하여 선택적 매개변수 처리 |
| 쿼리스트링 예시 | /list?keyword=java → keyword 검색/list → 전체 조회 |
⚙️ 예시 코드:
@GetMapping("/list") public List<Post> getList(@RequestParam(required = false) String keyword) { if (keyword != null) { return postService.search(keyword); } else { return postService.findAll(); } }