본문 바로가기

thymeleaf4

YSit [14] - 관리자 페이지 구현 & 권한 구현하기 관리자 권한 처리에 대해 한 가지 고민이 있었다. 3가지 선택지가 있었는데, 첫번째로 한 페이지에서 관리자인지 유저인지 판단하도록 코드를 짜는 것이었고, 두번째는 똑같은 페이지를 두 개로 만들어서 각각 유저, 어드민 페이지를 만드는 것이었다. 세번째는 따로 관리자 프로그램을 만드는 것이었다. 처음 기획하고 설계할 땐 1안을 할 생각으로 설계를 했었는데, 이게 지금 와서 조금 생각을 해보니 웹에서도 관리자인지 유저인지 판단해야하고, 컨트롤러쪽에서도 판단을 해야하는데 이게 좀 구현에 어려움이 있었다. 오히려 코드 중복이 많아지는 2안보다 코드가 더 번잡해질 것 같아서 포기했다. 그래서 2안과 3안 중에서 조금 고민을 했었는데, 3안은 프로그램을 다운 받아서 관리를 해야하는데, 만약 학생에게 파일이 들어갈 수.. 2022. 12. 31.
YSit [11] - 게시물 작성 / 목록 기능 구현 유저 기능은 어느정도 구현이 끝났으므로 게시판 기능을 구현을 시작했다. 먼저 게시판 카테고리가 테이블로 만드는 것보다 Enum타입으로 구현하는게 더 편해보이고, 추가적으로 카테고리를 생성할 수 있어서 테이블이 아닌 Enum타입으로 바꿨다. [ 게시물Repsitory 생성 ] @Repository와 @RequiredArgsConstructor 어노테이션을 선언해준다. ( 자세한 설명은 이전 글들 참고 ) 엔티티 저장을 위해 엔티티를 파라미터로 받고 엔티티매니저가 persist해주는 메서드를 만들어준다. 그리고 전체 리스트 구하는 메서드, 게시물Id 기준으로 게시물 하나 구하기, 제목 기준, 내용 기준으로 검색하기 메서드를 만들어준다. 제목 기준, 내용 기준으로 검색은 유사한 형태로 검색해도 게시물이 나와야.. 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 [7] - UserController 개발하기 기능 구현의 마지막이라고 할 수 있는 컨트롤러를 개발한다. UserController 클래스를 생성한다. 그리고 강의에서 컨트롤러에서는 직접 엔티티를 만들지 않고 DTO나 폼 형태로 따로 만들어서 사용하는게 좋다고 하셔서 나도 UserForm 클래스를 따로 만들었다. 유저 컨트롤러에서는 컴포넌트 스캔으로 스프링 빈에 등록하도록 @Controller와 생성자 주입을 자동으로 해주는 @RequiredArgConstructor를 선언해주고 로깅을 위해서 @Slf4j도 선언해주었다. 회원가입부터 만들기 시작했다. 먼저 Get방식으로 받은 다음에 model에 UserForm 객체를 넣어준 후 웹에 넘겨줬다. 그러면 thymeleaf를 이용해 값을 입력받도록 했다. 먼저 처음에 thymeleaf를 사용할 것이라고 .. 2022. 12. 24.