Swagger(Springdoc OpenAPI)에서 불필요한 컬럼이 보이는 이유는API 응답에 DTO를 써야 하는데 Entity를 그대로 사용하기 때문이다. ❌ 문제@GetMapping("/users/{id}")public UserEntity getUser(@PathVariable Long id) { return userService.getUser(id);}UserEntity를 직접 반환하므로, Swagger에서 모든 필드(password, phoneNumber 등)가 API 문서에 포함된다. ✅ 해결법→ Swagger에서 불필요한 컬럼이 보이면, Entity 대신 DTO를 사용하자@GetMapping("/users/{id}")public UserDto getUser(@PathVariable Lon..
1. DAO (Data Access Object)DAO는 DB와 직접 통신을 하면서 데이터를 저장하고, 가져오는 객체이다.사용처 : `MyBatis` 혹은 `JPA`와 같은 ORM에서 실제로 DB 접근을 담당하는 객체특징: 보통 인터페이스 + Mapper (XML or 어노테이션 방식)으로 구성됨 예제 (MyBatis)import org.apache.ibatis.annotations.Mapper;import org.apache.ibatis.annotations.Insert;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Param;@Mapperpublic interface UserDAO { // ..
1. BbsDAO 클래스에 getBbs() 메서드 만들기 `getBbs(int bbsID)` 메서드는 특정 bbsID를 기반으로 게시글 데이터를 데이터베이스에서 조회하여 반환한다.즉 하나의 글 내용을 불러오는 메서드이다. 처음에 적은 코드(틀림) public Bbs getBbs(int bbsID) { String SQL = "SELECT * FROM BBS WHERE bbsID = ?"; try (PreparedStatement psmt = conn.prepareStatement(SQL); ResultSet rs = psmt.executeQuery()) { psmt.setInt(1, bbsID); if (rs.next()) { ..
글목록과 페이지네이션(Pagination)게시물을 DB에서 불러와 화면에 표시하려면 게시글 목록을 가져오는 작업과 페이징 처리 두 가지를 고려해야 한다. 게시글 데이터를 한 번에 불러오기 위해 ArrayList를 사용하여 DB에서 작성자, 제목 등 게시글의 주요 정보를 포함한 데이터를 가져온다. 이 때 중요한 점은 페이징 처리이다. 페이징 처리는 한 페이지에 몇 개의 게시글을 보여줄지 결정하는 과정이며, 예를 들어 한 페이지에 총 10개의 게시글을 가져오도록 설정할 수 있다. 그래서 오늘은 `BbsDAO`에 특정 페이지 번호(pageNumber)에 해당하는 게시글 목록을 반환하는 메서드 ⚡ `getList(int pageNumber)`를 만들어 볼 것이다. 그리고 페이징 처리에서 페이지 번호를 기준으..
1. write.jsp 글쓰기 페이지 만들기 먼저 게시글 작성 페이지 `write.jsp`를 만들어 주려고 한다.`bbs.jsp`를 복사해서 붙여 넣고 중간 부분만 수정 해 줄 것이다. nav바 아래 부분에 이렇게 코드를 작성Bootstrap5 이용했다. ⚡ `mt-5` margin-top: 5rem; ⚡ ``태그에 `required` 속성 넣으면 브라우저에서 유효성 검사를 함. 텍스트를 입력 안 한 채로 submit 하면 `이 입력란을 작성하세요.` 라는 경고 메세지를 띄운다. ⚡ `form-control` 클래스 Bootstrap에서 제공하는 클래스 중 하나로, 입력 필드의 스타일을 쉽게 일관성 있게 적용하기 위해 사용됨.이거 쓰면 입력 필드(input, textarea, select 등)가 기본..
1. 게시판 메인 페이지 `bbs.jsp`만들기먼저 `main.jsp` 페이지에서 게시판 부분 href 속성에 "bbs.jsp" 를 연결해준다. `main.jsp` 페이지를 복사해서 webapp 에다 붙여넣기 하고 이름만 `bbs.jsp`로 바꾸자.여기서 코드에 손을 좀 볼 것이다. 만들었으면 `Home`에 있던 active 클래스를 `게시판`으로 옮겨 줘서 현재 선택한 페이지임을 가시적으로 보여 준다. 그 다음 네비게이션바 아래에 게시판 형식의 테이블을 삽입 해 준다.테이블을 만들기 전에 `` 태그로 container와 row 영역을 잡아 주고 테이블을 만들어주자. 번호 ..
✅ session 관리✅ logout.jsp✅ main.jsp 만들기 지금까지 회원가입, 로그인 기능까지 구현해보았다.이제 세션 관리를 해 보자. `session` 이란 현재 접속한 회원에게 할당해주는 고유한 아이디이다.로그인에 성공한 회원에게 각각 `session`을 부여해주는 과정을 구현해보자. `loginAction.jsp`에 `session`을 설정해주는 `session.setAttribute()` 코드 한 줄 타이핑!`joinAction.jsp`에도 코드 복붙해서 넣어 준다.로그인 성공한 회원에게 세션 부여하고 메인 페이지로 넘어가게끔 해 준다. 이렇게 세션을 설정해 주었다. 세션은 해제 하기 전까지는 유효하기 때문에 할당한 세션을 해제할 수 있는 로그아웃 페이지도 만들어 주자. `joinAc..