본문 바로가기

IntelliJ5

YSit [11] - 게시물 작성 / 목록 기능 구현 유저 기능은 어느정도 구현이 끝났으므로 게시판 기능을 구현을 시작했다. 먼저 게시판 카테고리가 테이블로 만드는 것보다 Enum타입으로 구현하는게 더 편해보이고, 추가적으로 카테고리를 생성할 수 있어서 테이블이 아닌 Enum타입으로 바꿨다. [ 게시물Repsitory 생성 ] @Repository와 @RequiredArgsConstructor 어노테이션을 선언해준다. ( 자세한 설명은 이전 글들 참고 ) 엔티티 저장을 위해 엔티티를 파라미터로 받고 엔티티매니저가 persist해주는 메서드를 만들어준다. 그리고 전체 리스트 구하는 메서드, 게시물Id 기준으로 게시물 하나 구하기, 제목 기준, 내용 기준으로 검색하기 메서드를 만들어준다. 제목 기준, 내용 기준으로 검색은 유사한 형태로 검색해도 게시물이 나와야.. 2022. 12. 28.
YSit [10] - 세션 사용하여 쿠키 대체하기 홈화면에 유저 아이디를 띄우려고 했는데 왜인지 쿠키값이 홈화면에는 안 들어오는 오류가 생겼다. 로그인 전과 로그인 후를 기준으로 HTML을 나눠보기도 하고, 코드에 잘못된 부분이 있나 세세히 살펴보기도 했는데 고쳐지지 않고 아무리 구글링을 해도 이 오류에 대한 정보가 안 나와서 세션을 사용해보기로 했다. 세션은 쿠키보다 무겁긴 하지만, 보안성이 높아서 나중에 사용해보려 했는데 그 나중이 지금인 것 같다. [ 세션 생성 ] 세션도 쿠키를 기반으로 하기 때문에 사용 방법이 그다지 다르지 않다. 먼저 HttpServletRequest를 파라미터로 받아준다. HttpServletRequest.getSession()은 이미 생성된 세션이 있다면 세션을 반환, 없다면 새로운 세션을 생성하여 반환한다. 이 메서드를 .. 2022. 12. 28.
YSit [8] - UserController 개발하기 2 이번에 구현할 기능은 모두 보기 / 선생님만 보기 / 학생만 보기 를 선택적으로 할 수 있는 기능이다. 먼저 Student와 Teacher 중 어떤 값이 true인지 알기 위해서 Form을 하나 작성해주었다. 그 안에 컬럼은 당연하게도 student와 teacher를 만들었다. 유저 컨트롤러에서는 먼저 Get방식으로 읽어와서 model에 addAttribute를 사용해 UserListForm을 넣고 반환하도록 구성한다. 그리고 HTML에서는 전에 작성한 회원가입 페이지 코드와 비슷하게 타임리프 선언을 해주고 체크박스를 두개 만들어준다. 안에 값은 student와 teacher로 설정했다. 학생만 보기 선생님만 보기 Submit 그리고 컨트롤러에서 넘어올 데이터를 시각화하기 위해서 th:each를 이용해서.. 2022. 12. 24.
YSit [6] - 유저 기능 테스트하기 테스트 코드를 작성할 클래스를 하나 만들어주고 테스트를 진행하기 위해서 @SpringBootTest와 @RunWith 어노테이션을 사용했다. 그리고 데이터 변경이 일어나는 부분이기 때문에 @Transcational을 넣어주는데, 트랜잭션 어노테이션은 @Test가 붙어있는 메서드에서는 테스트 진행 후 데이터 롤백을 해준다. 테스트 필요 메서드 1. 중복체크 2. 회원가입 3. 아이디&비밀번호 매치 4. 비밀번호 암호화 중복체크 메서드는 회원가입 과정에도 있기 때문에 회원가입 메서드만 진행해도 되긴 하지만 만약의 상황을 대비하기 위해서 따로 테스트 코드를 작성하기로 했다. 중복체크 메서드를 작성하기 전에 @Test 어노테이션을 달아주고 메서드를 만든 후, 테스트 값을 넣으려고 했는데 문제가 생겼다. 전에 도.. 2022. 12. 24.
YSit [3] - IntelliJ 프로젝트 생성 & 설정하기 기획 단계에서 스프링을 사용하기로 했는데 사실 스프링에 쓸 줄 몰랐기 때문에 인프런 강의를 구매해서 참고하면서 제작하게 되었다. 먼저 프로젝트를 생성하기 위해 Spring Initializr에서 스프링부트 3.0.0, 자바 최신버전인 19버전을 선택하고 Dependencies에서 Spring Web, Lombok, MySQL Driver, Spring Data JPA, Thymeleaf를 추가해주었다. 강의와는 다르게 우리는 mysql을 사용하기로 하였기 때문에 MySQL Driver를 추가해주었다. 그렇게 설정하고 mysql과 인텔리제이를 연결해주는 작업을 시작했다. 구글링을 해보면 툴바에서 DB 탭이 있어서 뭐 그걸로 연결하던데 나는 그런게 없었다. 무료 버전이라 그런거 같아서 포기하고 다른 방법을 .. 2022. 12. 24.