import React, { useState, useEffect } from 'react';
import { useParams, Link, useNavigate } from 'react-router-dom';
import axios from 'axios'; // 추가 axios 임포트
const PostView = () => {
const { idx } = useParams();
const navigate = useNavigate();
// [추가] 게시글 상태 및 로딩 상태 추가
const [post, setPost] = useState({});
const [isLoading, setIsLoading] = useState(true);
// [추가] useEffect를 사용하여 API에서 게시글 데이터 조회
useEffect(() => {
// idx값 유효성 확인
if (!idx) {
setIsLoading(false);
return;
}
setIsLoading(true);
axios.get(`http://localhost:8080/RestBoard/board/api/detail/${idx}`)
.then(response => {
const result = response.data;
// API 응답의 데이터 구조에 따라 post 객체를 설정합니다.
if (result.code === '0' && result.detail) {
setPost(result.detail);
} else {
// console.error("API Error:", result.msg);
alert(result.msg || "게시글 상세 정보를 불러오는데 실패했습니다.");
navigate('/'); // 실패 시 목록으로 이동
}
})
.catch(error => {
console.error("Error fetching post:", error);
// 에러 시 더미 데이터 대신 오류 처리 후 목록으로 이동
// (이전 코드의 'id' 변수를 모두 'idx'로 변경했습니다.)
setPost({
IDX: idx,
TITLE: `[ERROR] Post ${idx} Load Failed`,
CREA_ID: `Error User`,
CONTENTS: `Could not fetch content. Check API endpoint: <http://localhost:8080/RestBoard/board/api/detail/${idx}`>,
CREA_DTM: '',
HIT_CNT: 0,
});
})
.finally(() => setIsLoading(false));
// 의존성 배열에 idx와 navigate를 추가
}, [idx, navigate]);
// [추가] 로딩 상태 처리
if (isLoading) {
return <div className="container mt-5"><h2>Loading post...</h2>;</div>
}
// [추가] 데이터가 없을 경우 처리
if (!post || Object.keys(post).length === 0) {
return <div className="container mt-5"><h2>게시글을 찾을 수 없거나 로드에 실패했습니다. Post not found or failed to load.</h2></div>;
}
// In a real app, you would fetch the post data based on the id
// const post = { id: id, title: `Post ${id}`, author: `User${id}`, content: `This is the full content of post ${id}.` };
return (
<div className="container mt-4">
<h2 className="mb-4">게시글 상세</h2>
<div className="card shadow-sm">
<div className="card-header bg-primary text-white fw-bold d-flex justify-content-between">
<span>{post.title}</span>
<span className="badge bg-light text-primary">No. {post.idx}</span>
</div>
<div className="card-body">
<p className="card-subtitle text-muted mb-3 d-flex justify-content-between">
<span>작성자: {post.creaNm}</span>
<span>작성일: {post.creaDtm} | 조회수: {post.hitCnt}</span>
</p>
<hr />
<div className="post-content">
<pre style={{ whiteSpace: 'pre-wrap', fontFamily: 'inherit' }}>{post.contents}</pre>
</div>
</div>
</div>
<div className="mt-4 d-flex justify-content-between">
<Link to="/" className="btn btn-secondary">목록으로 Back to List</Link>
<div>
{/* 수정 및 삭제 버튼 영역 (추후 구현 예정) */}
<button className="btn btn-success me-2">수정</button>
<button className="btn btn-danger">삭제</button>
</div>
</div>
</div>
);
};
export default PostView;
import React from 'react';
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import Header from './components/Header';
import BoardList from './components/BoardList';
import PostView from './components/PostView';
import PostForm from './components/PostForm';
import './App.css';
//spring 서블릿
function App() {
return (
<Router>
<Header />
<main>
<Routes>
<Route path="/" element={<BoardList />} />
<Route path="/list" element={<BoardList />} />
<Route path="/post/:idx" element={<PostView />} />
<Route path="/new" element={<PostForm />} />
</Routes>
</main>
</Router>
);
}
export default App;
import React, { useState, useEffect, useCallback } from 'react';
import { Link } from 'react-router-dom';
import axios from 'axios';
import Pagination from './Pagination';
const BoardList = () => {
const [posts, setPosts] = useState([
{"rnum":1,"hitCnt":18,"idx":5756,"title":"BatchTitle2","creaNm":"관리자","creaId":"2025-09-16"},
]);
const [searchTerm, setSearchTerm] = useState('');//검색어 (검색바)
const [submittedSearchTerm, setSubmittedSearchTerm] = useState(''); //검색어 (페이징 리스트)
const [searchType, setSearchType] = useState('TITLE'); //검색 조건
const [submittedSearchType, setSubmittedSearchType] = useState('TITLE');
const [currentPage, setCurrentPage] = useState(1);
const [totalPages, setTotalPages] = useState(100);
//핸들링 이벤트의 실행주체
const handleSearch = useCallback(() => {
console.log(searchTerm);
console.log(searchType);
setSubmittedSearchTerm(searchTerm);
setCurrentPage(1); // Reset to first page on new search
}, [searchTerm, searchType]);
//이벤트 감지기 (키이벤트)
const handleKeyPress = (e) => {
if (e.key === 'Enter') {//엔터를 입력 했을때
handleSearch();
}
};
//서버 주소 처리
const retriveBoard = useCallback((type, keyword) => {
console.log(type, keyword);
axios.get("<http://localhost:8080/RestBoard/board/api/list>"
, {params: {
type: type,
keyword: keyword,
page: currentPage,
}})
.then(response => {
setPosts(response.data.list);
setTotalPages(response.data.totalpage);
console.log(response);
}).catch(error=>{
console.log(error);
// [추가] API 오류 시 대체 데이터 설정
setPosts([{ "rnum": 1, "hitCnt": 0, "idx": 9999, "title": "[오류] 목록을 불러올 수 없습니다. 백엔드 확인 필요.", "creaNm": "시스템", "creaDtm": "2025-11-04" }]);
setTotalPages(1);
})
}, [currentPage]);
useEffect(()=>{
retriveBoard(submittedSearchType, submittedSearchTerm);
}, [submittedSearchType, submittedSearchTerm, currentPage, retriveBoard])
// Change page
const handlePageChange = (page) => setCurrentPage(page);
return (
<div className="container mt-4"> {/* Bootstrap 컨테이너 추가 */}
<h2 className="mb-4">Board List</h2>
{/* 검색 및 새 글쓰기 버튼 영역 */}
<div className="row justify-content-between mb-3">
<div className="col-md-auto">
<Link to="/new" className="btn btn-primary">New Post</Link>
</div>
<div className="col-md-7">
<div className="input-group">
<select className="form-select" style={{ flex: '0 0 120px' }} value={searchType} onChange={e => setSearchType(e.target.value)}>
<option value="TITLE">Title</option>
<option value="CONTENTS">Content</option>
<option value="ID">Author</option>
</select>
<input
type="text"
className="form-control"
placeholder={`Search by ${searchType}...`}
value={searchTerm}
onChange={e => setSearchTerm(e.target.value)}
onKeyDown={e => handleKeyPress(e)}
/>
<button className="btn btn-outline-secondary" type="button" onClick={e => handleSearch()}>Search</button>
</div>
</div>
</div>
{/* Post List */}
<ul className="list-group mb-4">
{/* 게시판 헤더 - 요청하신 글번호, 제목, 작성자, 작성일, 조회수 표시 */}
<li className="list-group-item list-group-item-dark d-flex align-items-center fw-bold text-center">
{/* 글번호 (rnum) - 10% */}
<div className="col-1">글번호</div>
{/* 게시글 제목 (title) - 50% */}
<div className="col-6 text-start">게시글 제목</div>
{/* 작성자 이름 (creaNm) - 15% */}
<div className="col-2">작성자</div>
{/* 작성일 (creaDtm) - 15% */}
<div className="col-2">작성일</div>
{/* 조회수 (hitCnt) - 10% */}
<div className="col-1">조회수</div>
</li>
{/* 게시글 목록 */}
{posts.map(post => (
<li key={post.idx} className="list-group-item d-flex align-items-center text-center">
{/* 글번호 (rnum) */}
<div className="col-1">{post.rnum}</div>
{/* 게시글 제목 (title) - text-start로 왼쪽 정렬 */}
<div className="col-6 text-start text-truncate">
<Link to={`/post/${post.idx}`} className="text-decoration-none">{post.title}</Link>
</div>
{/* 작성자 이름 (creaNm) */}
<div className="col-2 text-truncate">{post.creaNm}</div>
{/* 작성일 (creaDtm) - 작은 폰트로 표시 */}
<div className="col-2 small text-truncate">{post.creaDtm}</div>
{/* 작성일 (creaIdm) - 작은 폰트로 표시 */}
{/* <div className="col-3 small text-truncate">{post.creaId}</div> */}
{/* 조회수 (hitCnt) */}
<div className="col-1">{post.hitCnt}</div>
{/*<Link to={`/post/${post.idx}`}>{post.title}</Link>
<span>{post.creaNm}</span> */}
</li>
))}
{/* 게시글이 없는 경우 */}
{posts.length === 0 && (
<li className="list-group-item text-center text-muted">
게시글이 없습니다.
</li>
)}
</ul>
{/* Pagination */}
<Pagination currentPage={currentPage} totalPages={totalPages} onPageChange={handlePageChange} />
</div>
);
};
export default BoardList;
- 11월 5일. 수요일. 오후 2시 23분. 스프링 정상 작동 코드. 현재 멀티파트인 상태를 리액트에 맞춰서 바꿀 것. 바꾸기 전 정상 작동 코드
package first.board.controller;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import first.board.dto.BoardDTO;
import first.board.service.BoardService;
import first.common.common.CommandMap;
@CrossOrigin(origins = "<http://localhost:5173>")
@RestController
public class BoardRestController {
Logger log = Logger.getLogger(this.getClass()); //로그 찍고
@Resource(name="boardService")
private BoardService boardService; //서비스 선언
/**
* Rest BoardList조회
* @param commandMap
* @return
*/
@GetMapping(value = "/board/api/list",produces = "text/plain;charset=utf-8") // 얘를 통해서 데이터를 주고 받는 거.
public String selectBoardList(CommandMap commandMap) { // 이게 뭐냐고. 이게. 어??? CommandMap commandMap 이 뭔가??? - public은 접근 제한자, String은 타입. 문자열. selectBoardList는 뭐임? 메서드인가? 그리고 CommandMap 이 도대체 뭐야? 클래스야? commandMap은 객체이고? 정리가 안되네. 설명해줘.
Map map = commandMap.getMap(); // 이것도 기본으로 알아야 하고.
log.debug(map.toString());
//Map<String, Object> resultObj = boardService.board_list_vue(map);
JSONObject resultObj = boardService.selectBoardList(map);
String result = resultObj.toJSONString(); // 최종적으로는 제이슨 문법으로 리턴이 됨.
return result;
}
/**
* 상세글 보기
* @param commandMap
* @return
*/
@GetMapping(value="/board/api/detail/{idx}",produces = "text/plain;charset=utf-8")
public String selectBoardDetail(@PathVariable("idx") String idx) {
String result="";
Map<String, Object> map =new HashMap<String, Object>();
map.put("idx", idx);
JSONObject resultObj = boardService.selectBoardDetail(map);
result = resultObj.toJSONString();
return result;
}
@PostMapping(value="/board/api/detail", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE} ,produces = "text/plain;charset=utf-8")
public String insertBoardDetail(@RequestPart(value = "file", required = false) MultipartFile file, @RequestPart(value="document") JSONObject param) {
String result = "";
log.debug(param);
JSONObject resultObj = boardService.insertBoardDetail(param);
result = resultObj.toJSONString();
return result;
}
@PostMapping(value="/board/api/detail/{idx}", consumes = {MediaType.APPLICATION_JSON_VALUE, MediaType.MULTIPART_FORM_DATA_VALUE} ,produces = "text/plain;charset=utf-8")
public String updateBoardDetail(@RequestPart(value = "file", required = false) MultipartFile file, @RequestPart(value="document") JSONObject param , @PathVariable("idx") String idx) {
String result = "";
log.debug("TEST : " + param);
JSONObject resultObj = boardService.updateBoardDetail(param);
result = resultObj.toJSONString();
return result;
}
@DeleteMapping(value="/board/api/detail/{idx}",produces = "text/plain;charset=utf-8")
public String deleteBoardDetail(@PathVariable("idx") String idx) {
String result = "";
Map<String, Object> param = new HashMap<String, Object>();
param.put("idx", idx);
JSONObject resultObj = boardService.deleteBoardDetail(param);
result = resultObj.toJSONString();
return result;
}
}
- 로그를 읽을 줄 알아야 한다. 로그를!!!! 11월 5일. 2025년. 오후 2시 50분. 스프링 서버쪽 로그에 찍히는 코드
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 서버 버전 이름: Apache Tomcat/9.0.55
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: Server 빌드 시각: Nov 10 2021 08:26:45 UTC
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: Server 버전 번호: 9.0.55.0
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 운영체제 이름: Windows 10
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 운영체제 버전: 10.0
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 아키텍처: amd64
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 자바 홈: C:\\dev\\jdk\\jdk-18.0.1.1
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM 버전: 18.0.1.1+2-6
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM 벤더: Oracle Corporation
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE: C:\\dev\\spring-workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME: C:\\dev\\server\\apache-tomcat-9.0.55
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: -Dcatalina.base=C:\\dev\\spring-workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: -Dcatalina.home=C:\\dev\\server\\apache-tomcat-9.0.55
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: -Dwtp.deploy=C:\\dev\\spring-workspace\\.metadata\\.plugins\\org.eclipse.wst.server.core\\tmp0\\wtpwebapps
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: --add-opens=java.base/java.lang=ALL-UNNAMED
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: --add-opens=java.base/java.io=ALL-UNNAMED
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: --add-opens=java.base/java.util=ALL-UNNAMED
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: -Dfile.encoding=MS949
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: -Dstdout.encoding=MS949
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: -Dstderr.encoding=MS949
11월 05, 2025 2:47:01 오후 org.apache.catalina.startup.VersionLoggerListener log
INFO: 명령 행 아규먼트: -XX:+ShowCodeDetailsInExceptionMessages
11월 05, 2025 2:47:01 오후 org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: 프로덕션 환경들에서 최적의 성능을 제공하는, APR 기반 Apache Tomcat Native 라이브러리가, 다음 java.library.path에서 발견되지 않습니다: [C:\\dev\\jdk\\jdk-18.0.1.1\\bin;C:\\Windows\\Sun\\Java\\bin;C:\\Windows\\system32;C:\\Windows;C:/DEV/sts-4.26.0.RELEASE//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.4.v20240802-1551/jre/bin/server;C:/DEV/sts-4.26.0.RELEASE//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_21.0.4.v20240802-1551/jre/bin;C:\\Program Files (x86)\\VMware\\VMware Workstation\\bin\\;C:\\Program Files\\Java\\jdk-1.8\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;C:\\Windows\\System32\\OpenSSH\\;C:\\Program Files (x86)\\ATI Technologies\\ATI.ACE\\Core-Static;C:\\Program Files\\Bandizip\\;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;%ORACLE_HOME%;%ORACLE_HOME%\\bin;C:\\Program Files\\VisualSVN Server\\bin;C:\\Program Files\\nodejs\\;C:\\Users\\USER\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\USER\\AppData\\Roaming\\npm;C:\\Users\\USER\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\DEV\\sts-4.26.0.RELEASE;;.]
11월 05, 2025 2:47:02 오후 org.apache.coyote.AbstractProtocol init
INFO: 프로토콜 핸들러 ["http-nio-8080"]을(를) 초기화합니다.
11월 05, 2025 2:47:02 오후 org.apache.catalina.startup.Catalina load
INFO: [1175] 밀리초 내에 서버가 초기화되었습니다.
11월 05, 2025 2:47:02 오후 org.apache.catalina.core.StandardService startInternal
INFO: 서비스 [Catalina]을(를) 시작합니다.
11월 05, 2025 2:47:02 오후 org.apache.catalina.core.StandardEngine startInternal
INFO: 서버 엔진을 시작합니다: [Apache Tomcat/9.0.55]
11월 05, 2025 2:47:07 오후 org.apache.jasper.servlet.TldScanner scanJars
INFO: 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다.
11월 05, 2025 2:47:07 오후 org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
11월 05, 2025 2:47:07 오후 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
11월 05, 2025 2:47:10 오후 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'action'
11월 05, 2025 2:47:17 오후 org.apache.jasper.servlet.TldScanner scanJars
INFO: 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다.
11월 05, 2025 2:47:17 오후 org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
11월 05, 2025 2:47:17 오후 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
11월 05, 2025 2:47:19 오후 org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring FrameworkServlet 'action'
11월 05, 2025 2:47:21 오후 org.apache.coyote.AbstractProtocol start
INFO: 프로토콜 핸들러 ["http-nio-8080"]을(를) 시작합니다.
11월 05, 2025 2:47:21 오후 org.apache.catalina.startup.Catalina start
INFO: 서버가 [19109] 밀리초 내에 시작되었습니다.
2025-11-05 14:47:29,679 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:29,679 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/detail/5951
2025-11-05 14:47:29,781 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.selectBoardDetail()
2025-11-05 14:47:29,816 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.updateBoardHitCnt()
2025-11-05 14:47:29,841 DEBUG [first.common.dao.AbstractDAO] QueryId : board.updateBoardDetailHit
2025-11-05 14:47:30,234 INFO SQL : UPDATE SCOTT.TB_BOARD SET
HIT_CNT = HIT_CNT +1
WHERE IDX = '5951'
2025-11-05 14:47:30,248 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardDetail()
2025-11-05 14:47:30,248 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardDetail
2025-11-05 14:47:30,256 INFO SQL : SELECT
IDX
, TITLE
, CONTENTS
, HIT_CNT
, TO_CHAR(CREA_DTM, 'YYYY-MM-DD hh:mm:ss') AS CREA_DTM
, (SELECT NICK_NM FROM SCOTT.TB_MEMBER WHERE ID = CREA_ID) AS CREA_NM
FROM SCOTT.TB_BOARD
WHERE IDX = '5951'
2025-11-05 14:47:30,297 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:30,297 INFO [jdbc.resultsettable] |IDX |TITLE |CONTENTS |HIT_CNT |CREA_DTM |CREA_NM |
2025-11-05 14:47:30,298 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:30,299 INFO [jdbc.resultsettable] |5951 |제목이전1 |내용 |65 |2025-10-17 01:10:36 |[null] |
2025-11-05 14:47:30,300 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:30,321 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:30,387 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:30,387 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/detail/5951
2025-11-05 14:47:30,393 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.selectBoardDetail()
2025-11-05 14:47:30,393 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.updateBoardHitCnt()
2025-11-05 14:47:30,393 DEBUG [first.common.dao.AbstractDAO] QueryId : board.updateBoardDetailHit
2025-11-05 14:47:30,396 INFO SQL : UPDATE SCOTT.TB_BOARD SET
HIT_CNT = HIT_CNT +1
WHERE IDX = '5951'
2025-11-05 14:47:30,406 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardDetail()
2025-11-05 14:47:30,407 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardDetail
2025-11-05 14:47:30,407 INFO SQL : SELECT
IDX
, TITLE
, CONTENTS
, HIT_CNT
, TO_CHAR(CREA_DTM, 'YYYY-MM-DD hh:mm:ss') AS CREA_DTM
, (SELECT NICK_NM FROM SCOTT.TB_MEMBER WHERE ID = CREA_ID) AS CREA_NM
FROM SCOTT.TB_BOARD
WHERE IDX = '5951'
2025-11-05 14:47:30,410 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:30,411 INFO [jdbc.resultsettable] |IDX |TITLE |CONTENTS |HIT_CNT |CREA_DTM |CREA_NM |
2025-11-05 14:47:30,411 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:30,411 INFO [jdbc.resultsettable] |5951 |제목이전1 |내용 |66 |2025-10-17 01:10:36 |[null] |
2025-11-05 14:47:30,412 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:30,414 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:31,932 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:31,932 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/list
2025-11-05 14:47:31,946 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.selectBoardList()
2025-11-05 14:47:31,947 DEBUG [first.board.controller.BoardRestController] {page=1, type=TITLE, keyword=}
2025-11-05 14:47:31,947 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardList()
2025-11-05 14:47:31,947 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardList
2025-11-05 14:47:32,022 INFO SQL : SELECT RNUM, IDX, TITLE, HIT_CNT, CREA_NM, CREA_DTM FROM(
SELECT ROW_NUMBER() OVER(ORDER BY IDX DESC) AS RNUM ,
IDX,
TITLE,
HIT_CNT,
(SELECT NICK_NM FROM SCOTT.TB_MEMBER WHERE ID = CREA_ID) AS CREA_NM,
TO_CHAR( CREA_DTM , 'YYYY-MM-DD')CREA_DTM
FROM SCOTT.TB_BOARD
WHERE DEL_GB = 'N'
)WHERE RNUM BETWEEN 1 AND 10
2025-11-05 14:47:32,030 INFO [jdbc.resultsettable] |-----|-----|------------|--------|--------|-----------|
2025-11-05 14:47:32,030 INFO [jdbc.resultsettable] |RNUM |IDX |TITLE |HIT_CNT |CREA_NM |CREA_DTM |
2025-11-05 14:47:32,030 INFO [jdbc.resultsettable] |-----|-----|------------|--------|--------|-----------|
2025-11-05 14:47:32,030 INFO [jdbc.resultsettable] |1 |5993 |수정되나 |249 |[null] |2025-10-22 |
2025-11-05 14:47:32,031 INFO [jdbc.resultsettable] |2 |5992 |321 |7 |123 |2025-10-22 |
2025-11-05 14:47:32,031 INFO [jdbc.resultsettable] |3 |5991 |성공햇쯰2 |110 |[null] |2025-10-22 |
2025-11-05 14:47:32,031 INFO [jdbc.resultsettable] |4 |5990 |123 |10 |123 |2025-10-22 |
2025-11-05 14:47:32,031 INFO [jdbc.resultsettable] |5 |5969 |페이징확인용1 |96 |[null] |2025-10-20 |
2025-11-05 14:47:32,031 INFO [jdbc.resultsettable] |6 |5954 |제목 이후2 |83 |[null] |2025-10-17 |
2025-11-05 14:47:32,031 INFO [jdbc.resultsettable] |7 |5953 |제목이후1(수정테스트 |127 |[null] |2025-10-17 |
2025-11-05 14:47:32,031 INFO [jdbc.resultsettable] |8 |5952 |기준 |182 |[null] |2025-10-17 |
2025-11-05 14:47:32,032 INFO [jdbc.resultsettable] |9 |5951 |제목이전1 |66 |[null] |2025-10-17 |
2025-11-05 14:47:32,032 INFO [jdbc.resultsettable] |10 |5950 |제목이전2 |31 |[null] |2025-10-17 |
2025-11-05 14:47:32,032 INFO [jdbc.resultsettable] |-----|-----|------------|--------|--------|-----------|
2025-11-05 14:47:32,044 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardTotalPage()
2025-11-05 14:47:32,045 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardTotalPage
2025-11-05 14:47:32,045 INFO SQL : SELECT CEIL(COUNT(*)/10.0)
FROM SCOTT.TB_BOARD
WHERE DEL_GB = 'N'
2025-11-05 14:47:32,066 INFO [jdbc.resultsettable] |--------------------|
2025-11-05 14:47:32,066 INFO [jdbc.resultsettable] |CEIL(COUNT(*)/10.0) |
2025-11-05 14:47:32,066 INFO [jdbc.resultsettable] |--------------------|
2025-11-05 14:47:32,067 INFO [jdbc.resultsettable] |145 |
2025-11-05 14:47:32,067 INFO [jdbc.resultsettable] |--------------------|
2025-11-05 14:47:32,071 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:32,143 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:32,143 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/list
2025-11-05 14:47:32,148 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.selectBoardList()
2025-11-05 14:47:32,148 DEBUG [first.board.controller.BoardRestController] {page=1, type=TITLE, keyword=}
2025-11-05 14:47:32,148 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardList()
2025-11-05 14:47:32,148 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardList
2025-11-05 14:47:32,153 INFO SQL : SELECT RNUM, IDX, TITLE, HIT_CNT, CREA_NM, CREA_DTM FROM(
SELECT ROW_NUMBER() OVER(ORDER BY IDX DESC) AS RNUM ,
IDX,
TITLE,
HIT_CNT,
(SELECT NICK_NM FROM SCOTT.TB_MEMBER WHERE ID = CREA_ID) AS CREA_NM,
TO_CHAR( CREA_DTM , 'YYYY-MM-DD')CREA_DTM
FROM SCOTT.TB_BOARD
WHERE DEL_GB = 'N'
)WHERE RNUM BETWEEN 1 AND 10
2025-11-05 14:47:32,160 INFO [jdbc.resultsettable] |-----|-----|------------|--------|--------|-----------|
2025-11-05 14:47:32,161 INFO [jdbc.resultsettable] |RNUM |IDX |TITLE |HIT_CNT |CREA_NM |CREA_DTM |
2025-11-05 14:47:32,161 INFO [jdbc.resultsettable] |-----|-----|------------|--------|--------|-----------|
2025-11-05 14:47:32,162 INFO [jdbc.resultsettable] |1 |5993 |수정되나 |249 |[null] |2025-10-22 |
2025-11-05 14:47:32,162 INFO [jdbc.resultsettable] |2 |5992 |321 |7 |123 |2025-10-22 |
2025-11-05 14:47:32,162 INFO [jdbc.resultsettable] |3 |5991 |성공햇쯰2 |110 |[null] |2025-10-22 |
2025-11-05 14:47:32,162 INFO [jdbc.resultsettable] |4 |5990 |123 |10 |123 |2025-10-22 |
2025-11-05 14:47:32,162 INFO [jdbc.resultsettable] |5 |5969 |페이징확인용1 |96 |[null] |2025-10-20 |
2025-11-05 14:47:32,162 INFO [jdbc.resultsettable] |6 |5954 |제목 이후2 |83 |[null] |2025-10-17 |
2025-11-05 14:47:32,163 INFO [jdbc.resultsettable] |7 |5953 |제목이후1(수정테스트 |127 |[null] |2025-10-17 |
2025-11-05 14:47:32,163 INFO [jdbc.resultsettable] |8 |5952 |기준 |182 |[null] |2025-10-17 |
2025-11-05 14:47:32,163 INFO [jdbc.resultsettable] |9 |5951 |제목이전1 |66 |[null] |2025-10-17 |
2025-11-05 14:47:32,163 INFO [jdbc.resultsettable] |10 |5950 |제목이전2 |31 |[null] |2025-10-17 |
2025-11-05 14:47:32,163 INFO [jdbc.resultsettable] |-----|-----|------------|--------|--------|-----------|
2025-11-05 14:47:32,164 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardTotalPage()
2025-11-05 14:47:32,164 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardTotalPage
2025-11-05 14:47:32,165 INFO SQL : SELECT CEIL(COUNT(*)/10.0)
FROM SCOTT.TB_BOARD
WHERE DEL_GB = 'N'
2025-11-05 14:47:32,167 INFO [jdbc.resultsettable] |--------------------|
2025-11-05 14:47:32,168 INFO [jdbc.resultsettable] |CEIL(COUNT(*)/10.0) |
2025-11-05 14:47:32,168 INFO [jdbc.resultsettable] |--------------------|
2025-11-05 14:47:32,168 INFO [jdbc.resultsettable] |145 |
2025-11-05 14:47:32,168 INFO [jdbc.resultsettable] |--------------------|
2025-11-05 14:47:32,170 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:33,489 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:33,489 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/detail/5991
2025-11-05 14:47:33,490 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.selectBoardDetail()
2025-11-05 14:47:33,490 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.updateBoardHitCnt()
2025-11-05 14:47:33,491 DEBUG [first.common.dao.AbstractDAO] QueryId : board.updateBoardDetailHit
2025-11-05 14:47:33,491 INFO SQL : UPDATE SCOTT.TB_BOARD SET
HIT_CNT = HIT_CNT +1
WHERE IDX = '5991'
2025-11-05 14:47:33,504 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardDetail()
2025-11-05 14:47:33,504 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardDetail
2025-11-05 14:47:33,505 INFO SQL : SELECT
IDX
, TITLE
, CONTENTS
, HIT_CNT
, TO_CHAR(CREA_DTM, 'YYYY-MM-DD hh:mm:ss') AS CREA_DTM
, (SELECT NICK_NM FROM SCOTT.TB_MEMBER WHERE ID = CREA_ID) AS CREA_NM
FROM SCOTT.TB_BOARD
WHERE IDX = '5991'
2025-11-05 14:47:33,508 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:33,508 INFO [jdbc.resultsettable] |IDX |TITLE |CONTENTS |HIT_CNT |CREA_DTM |CREA_NM |
2025-11-05 14:47:33,508 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:33,509 INFO [jdbc.resultsettable] |5991 |성공햇쯰2 |성공햇쯰3 |111 |2025-10-22 07:10:55 |[null] |
2025-11-05 14:47:33,509 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:33,511 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:33,528 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:33,529 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/detail/5991
2025-11-05 14:47:33,530 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.selectBoardDetail()
2025-11-05 14:47:33,530 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.updateBoardHitCnt()
2025-11-05 14:47:33,530 DEBUG [first.common.dao.AbstractDAO] QueryId : board.updateBoardDetailHit
2025-11-05 14:47:33,530 INFO SQL : UPDATE SCOTT.TB_BOARD SET
HIT_CNT = HIT_CNT +1
WHERE IDX = '5991'
2025-11-05 14:47:33,545 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardDetail()
2025-11-05 14:47:33,545 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardDetail
2025-11-05 14:47:33,545 INFO SQL : SELECT
IDX
, TITLE
, CONTENTS
, HIT_CNT
, TO_CHAR(CREA_DTM, 'YYYY-MM-DD hh:mm:ss') AS CREA_DTM
, (SELECT NICK_NM FROM SCOTT.TB_MEMBER WHERE ID = CREA_ID) AS CREA_NM
FROM SCOTT.TB_BOARD
WHERE IDX = '5991'
2025-11-05 14:47:33,551 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:33,551 INFO [jdbc.resultsettable] |IDX |TITLE |CONTENTS |HIT_CNT |CREA_DTM |CREA_NM |
2025-11-05 14:47:33,552 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:33,552 INFO [jdbc.resultsettable] |5991 |성공햇쯰2 |성공햇쯰3 |112 |2025-10-22 07:10:55 |[null] |
2025-11-05 14:47:33,552 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:33,554 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:34,899 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:34,899 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/detail/5991
2025-11-05 14:47:34,900 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.selectBoardDetail()
2025-11-05 14:47:34,901 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.updateBoardHitCnt()
2025-11-05 14:47:34,901 DEBUG [first.common.dao.AbstractDAO] QueryId : board.updateBoardDetailHit
2025-11-05 14:47:34,902 INFO SQL : UPDATE SCOTT.TB_BOARD SET
HIT_CNT = HIT_CNT +1
WHERE IDX = '5991'
2025-11-05 14:47:34,971 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardDetail()
2025-11-05 14:47:34,971 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardDetail
2025-11-05 14:47:34,972 INFO SQL : SELECT
IDX
, TITLE
, CONTENTS
, HIT_CNT
, TO_CHAR(CREA_DTM, 'YYYY-MM-DD hh:mm:ss') AS CREA_DTM
, (SELECT NICK_NM FROM SCOTT.TB_MEMBER WHERE ID = CREA_ID) AS CREA_NM
FROM SCOTT.TB_BOARD
WHERE IDX = '5991'
2025-11-05 14:47:34,974 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:34,975 INFO [jdbc.resultsettable] |IDX |TITLE |CONTENTS |HIT_CNT |CREA_DTM |CREA_NM |
2025-11-05 14:47:34,975 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:34,975 INFO [jdbc.resultsettable] |5991 |성공햇쯰2 |성공햇쯰3 |113 |2025-10-22 07:10:55 |[null] |
2025-11-05 14:47:34,975 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:34,977 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:34,992 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:34,992 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/detail/5991
2025-11-05 14:47:34,993 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.selectBoardDetail()
2025-11-05 14:47:34,994 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.updateBoardHitCnt()
2025-11-05 14:47:34,994 DEBUG [first.common.dao.AbstractDAO] QueryId : board.updateBoardDetailHit
2025-11-05 14:47:34,994 INFO SQL : UPDATE SCOTT.TB_BOARD SET
HIT_CNT = HIT_CNT +1
WHERE IDX = '5991'
2025-11-05 14:47:35,018 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardDetail()
2025-11-05 14:47:35,018 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardDetail
2025-11-05 14:47:35,019 INFO SQL : SELECT
IDX
, TITLE
, CONTENTS
, HIT_CNT
, TO_CHAR(CREA_DTM, 'YYYY-MM-DD hh:mm:ss') AS CREA_DTM
, (SELECT NICK_NM FROM SCOTT.TB_MEMBER WHERE ID = CREA_ID) AS CREA_NM
FROM SCOTT.TB_BOARD
WHERE IDX = '5991'
2025-11-05 14:47:35,022 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:35,022 INFO [jdbc.resultsettable] |IDX |TITLE |CONTENTS |HIT_CNT |CREA_DTM |CREA_NM |
2025-11-05 14:47:35,023 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:35,023 INFO [jdbc.resultsettable] |5991 |성공햇쯰2 |성공햇쯰3 |114 |2025-10-22 07:10:55 |[null] |
2025-11-05 14:47:35,023 INFO [jdbc.resultsettable] |-----|------|---------|--------|--------------------|--------|
2025-11-05 14:47:35,025 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:43,319 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:43,319 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/detail/5991
2025-11-05 14:47:43,320 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:43,336 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:43,336 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/detail/5991
2025-11-05 14:47:43,474 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.updateBoardDetail()
2025-11-05 14:47:43,474 DEBUG [first.board.controller.BoardRestController] updateBoardDetail param: {"CREA_ID":"reactUser","TITLE":"성공햇쯰2","IDX":"5991","CONTENTS":"서버 재가동 후에 테스트"}
2025-11-05 14:47:43,474 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.updateBoardDetail()
2025-11-05 14:47:43,475 DEBUG [first.common.dao.AbstractDAO] QueryId : board.updateBoardDetail
2025-11-05 14:47:43,477 INFO SQL : UPDATE SCOTT.TB_BOARD SET
TITLE = '성공햇쯰2'
, CONTENTS = '서버 재가동 후에 테스트'
WHERE DEL_GB = 'N'
AND IDX = '5991'
2025-11-05 14:47:43,501 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:43,529 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:43,529 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/detail/5991
2025-11-05 14:47:43,530 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.selectBoardDetail()
2025-11-05 14:47:43,530 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.updateBoardHitCnt()
2025-11-05 14:47:43,530 DEBUG [first.common.dao.AbstractDAO] QueryId : board.updateBoardDetailHit
2025-11-05 14:47:43,531 INFO SQL : UPDATE SCOTT.TB_BOARD SET
HIT_CNT = HIT_CNT +1
WHERE IDX = '5991'
2025-11-05 14:47:43,540 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardDetail()
2025-11-05 14:47:43,540 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardDetail
2025-11-05 14:47:43,541 INFO SQL : SELECT
IDX
, TITLE
, CONTENTS
, HIT_CNT
, TO_CHAR(CREA_DTM, 'YYYY-MM-DD hh:mm:ss') AS CREA_DTM
, (SELECT NICK_NM FROM SCOTT.TB_MEMBER WHERE ID = CREA_ID) AS CREA_NM
FROM SCOTT.TB_BOARD
WHERE IDX = '5991'
2025-11-05 14:47:43,543 INFO [jdbc.resultsettable] |-----|------|--------------|--------|--------------------|--------|
2025-11-05 14:47:43,543 INFO [jdbc.resultsettable] |IDX |TITLE |CONTENTS |HIT_CNT |CREA_DTM |CREA_NM |
2025-11-05 14:47:43,544 INFO [jdbc.resultsettable] |-----|------|--------------|--------|--------------------|--------|
2025-11-05 14:47:43,544 INFO [jdbc.resultsettable] |5991 |성공햇쯰2 |서버 재가동 후에 테스트 |115 |2025-10-22 07:10:55 |[null] |
2025-11-05 14:47:43,544 INFO [jdbc.resultsettable] |-----|------|--------------|--------|--------------------|--------|
2025-11-05 14:47:43,545 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================
2025-11-05 14:47:43,557 DEBUG [first.common.logger.LoggerInterceptor] ================== START ======================
dddddd
2025-11-05 14:47:43,557 DEBUG [first.common.logger.LoggerInterceptor] Request URI : /RestBoard/board/api/detail/5991
2025-11-05 14:47:43,558 DEBUG [first.common.logger.LoggerAspect] Controller : first.board.controller.BoardRestController.selectBoardDetail()
2025-11-05 14:47:43,558 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.updateBoardHitCnt()
2025-11-05 14:47:43,558 DEBUG [first.common.dao.AbstractDAO] QueryId : board.updateBoardDetailHit
2025-11-05 14:47:43,559 INFO SQL : UPDATE SCOTT.TB_BOARD SET
HIT_CNT = HIT_CNT +1
WHERE IDX = '5991'
2025-11-05 14:47:43,570 DEBUG [first.common.logger.LoggerAspect] DAO : first.board.dao.BoardDAO.selectBoardDetail()
2025-11-05 14:47:43,570 DEBUG [first.common.dao.AbstractDAO] QueryId : board.selectBoardDetail
2025-11-05 14:47:43,571 INFO SQL : SELECT
IDX
, TITLE
, CONTENTS
, HIT_CNT
, TO_CHAR(CREA_DTM, 'YYYY-MM-DD hh:mm:ss') AS CREA_DTM
, (SELECT NICK_NM FROM SCOTT.TB_MEMBER WHERE ID = CREA_ID) AS CREA_NM
FROM SCOTT.TB_BOARD
WHERE IDX = '5991'
2025-11-05 14:47:43,574 INFO [jdbc.resultsettable] |-----|------|--------------|--------|--------------------|--------|
2025-11-05 14:47:43,574 INFO [jdbc.resultsettable] |IDX |TITLE |CONTENTS |HIT_CNT |CREA_DTM |CREA_NM |
2025-11-05 14:47:43,574 INFO [jdbc.resultsettable] |-----|------|--------------|--------|--------------------|--------|
2025-11-05 14:47:43,574 INFO [jdbc.resultsettable] |5991 |성공햇쯰2 |서버 재가동 후에 테스트 |116 |2025-10-22 07:10:55 |[null] |
2025-11-05 14:47:43,574 INFO [jdbc.resultsettable] |-----|------|--------------|--------|--------------------|--------|
2025-11-05 14:47:43,576 DEBUG [first.common.logger.LoggerInterceptor] =================== END =======================