본문 바로가기

반응형

스프링

스프링(SPRING) 게시판 3탄(게시판 페이징처리) 이번엔 저번 글들에서 다루지 않았던 게시판의 꽃 페이징을 다루어보도록 하겠다. 자고로 게시판이라고 하면 페이징 기능이 제일 먼저 떠오르는데 지금까지 게시판인데 페이징이 없는 게시판은 보지 못한 거 같다. 그만큼 게시판에서 가장 중요한 기능인 페이징 처리를 해보자. 지금 보여주는 자료는 저번 스프링 게시판 1탄, 2탄 글에서 설명한 프로젝트와 같다. 예시로 회원가입만 보여줬지만, 페이징을 설명 안 하자니 게시판 설명이라고 할 수 없는 거 같아 추가하게 되었다. 먼저 페이징 처리는 https://www.w3schools.com에서 w3.css나 부트스트랩에 들어가 보면 Pagination이라고 예시를 보면 간단하게 사용 가능하다. 원하는 pagination을 가지고와 사용해보도록 하자. - Paginatio.. 더보기
스프링(SPRING) 게시판 2탄(뷰 + 비즈니스로직) 이전 글에서 게시판에 대한 기초설계와 DB 테이블 생성, SQL 작성을 해보았다. 이번에는 먼저 뷰를 만들어보도록 하겠다. 뷰는 간단하게 짜보도록 하는데 w3-css와 부트스트랩을 사용해서 간단하게 만들어보았다. Visual Studio Code를 이용해서 작업했다. 변동사항이 바로 동기화 되기 때문에 이클립스보다 편하다. - 페이지 뷰 만들기(Visual StudioCode) 위처럼 필요한 페이지의 뷰를 만들어서 이클립스로 가져가기만 하면 된다. ㅎ 만들 때 jstl로 foreach 반복할 부분 등이나 상황에 따라 다른 부분들을 생각하면 작성하면 나중에 코딩을 적용할 때 편하다. 자 이제 뷰도 만들었으니 이클립스로 가서 코딩을 시작해보자! 먼저 필요한 모든 패키지,클래스,xml등을 만들자 - 필요한 패.. 더보기
스프링(SPRING) 게시판 1탄(설계 및 설정) 이번에 게시판을 만들어 볼 건데 기초에 충실한 CRUD가 완벽하게 만들어보자. 지금 까지 개발하면서 느낀게 있는데 무턱대고 코딩부터 시작하면 한 번에 생각 안 나는 게 있기 마련이고, 또한 작업 중 까먹는 일이 다반사다. 그래서 먼저 설계와 DB작업부터 시작하는 편이다. 설계는 간단하게 개발자와 사용자의 입장에서 필요한 기능들을 메모장에 적으며 하는 편이다. - 게시판 설계 sql 문 작성하면서 완료 된 사항을 체크해주며 작업한다. 이런 식으로 대충 설계를 했다면 DB SQL문을 작성하러 간다. 그전에 테이블을 먼저 만들자 DB는 오라클을 사용했다. - 테이블 생성 필요한 기능에 맞춰 테이블을 잘 참조해가며 설계하면 된다. 회원 테이블, 게시글 테이블, 게시글 댓글 테이블, 게시글 파일 테이블, 댓글 좋.. 더보기
스프링 AOP 로그인 체크 AOP(Aspect-Oriented Programming)는 관점 지향 프로그래밍이라고 번역된다. 관점이라는 용어는 개발자들 사이에서 관심사라고 통용되는데 관심사란 개발 시 필요한 고민이나 염두에 두어야 하는 일이라고 생각할 수 있습니다. 예를 들어 파라미터가 올바르게 들어왔을까? 이 작업을 하는 사용자가 적절한 권한을 가지고 있는 사용자인가? 작업에서 발생하는 모든 예외처리는 어떻게 처리해야 할까? 이 정도 고민들을 예로 들 수 있는데, 위와 같은 고민들은 핵심적인 로직은 아니지만, 코드를 온전하게 만들기 위해서는 위 로직이 필요합니다. 그래서 AOP 이전까지는 개발자가 반복적으로 위 고민 처리를 코드에 반영하게 되었는데, 이를 AOP가 개발자의 핵심 비즈니스 로직 컴파일, 실행 이전, 실행 후 결합시.. 더보기
스프링 ZingChart 사용하기 이번에 스프링 프로젝트를 하면서 관리자 페이지에 차트를 적용했는데 구글 차트를 보다가 조금 딱딱한 느낌이 들어 zing차트를 사용해보았다. 사용법은 구글 차트와 똑같지만 UI가 더 아기자기하고 부드러워 괜찮았다. 먼저 ZingChart 사이트를 들어가 차트를 고른다. Zing Chart의 장점은 css가 매우 세밀하게 하나하나 다 개인이 설정할 수 있도록 나와있기 때문에 디자인을 입맛에 맞게 바꿔서 사용할 수 있다.(자유도 개꿀) 나는 한번에 3가지 차트가 조화롭게 세트로 되어있는 게 있어서 이걸로 골랐다. 메뉴에 html,css,JavaScript가 다 나와있어 그대로 가져가 바꿔서 쓰면 된다. 위처럼 예시가 나온다. 아이템 하나하나마다 css를 설정할 수 있다. 그래프 형식에 맞게 데이터를 만들어서 .. 더보기
스프링 구글차트(Google Chart) 사용하기 이번에 스프링 프로젝트를 하면서 구글 차트를 사용해 관리자 페이지를 만들어보았다. 의외로 사용하기가 너무 쉬웠고, 하나씩 그려지는 걸 보니 재밌다. 먼저 구글 차트사이트를 들어가 원하는 차트를 선택한다 나는 무언가 복잡해보이고 줌 기능도 있는 annotation 차트를 사용하려고 한다. 일단 안내에서 annotation 카테고리를 선택하면 예시와 코드가 나오는데 여기서 어떻게 데이터가 들어가는지 나는 몇 개의 선을 그릴 것인지 무슨 통계를 넣을 것인지를 생각하고, 필요한 예시 코드를 복사한다. 사용 데이터는 사이트 회원가입 날짜별 남자, 여자, 총합의 가입자 수이다. 데이터는 ajax를 이용하여 오라클 db에서 가져왔다. 데이터를 가져오는 과정은 생략하였다. google.charts.load('curre.. 더보기
스프링 시큐리티(spring security) JSP 사용(2) 자동 로그인 최근 웹페이지들은 로그인할 때 '자동 로그인'이나 '로그인 기억하기'라는 이름으로 로그인 상태를 계속 유지하는 기능을 가지고 있습니다. 이 기능은 거의 대부분 쿠키로 구현하는데 스프링 시큐리티로도 구현이 가능합니다. 태그를 사용하여 기능을 구현합니다. 데이터베이스 이용하는 자동로그인 security-context.xml의 일부 data-source-ref : DataSource를 지정하고 테이블을 이용해서 기존 로그인 정보를 기록 token-validity-seconds : 쿠키의 유효시간을 지정합니다. 로그인 화면에 자동 로그인 설정 customLogin.jsp의 일부 자동 로그인 이제 로그인을 해보면 쿠키에 'remember-me'라는 이름의 쿠키가 생성된 것을 볼 수 있습니다. 로그아웃 시 쿠키 삭.. 더보기
스프링 시큐리티(spring security) 접근 권한 사이트를 운영하다 보면 사용자의 권한을 정해줘야 할 때가 있습니다. 예를 들어 사이트를 이용하는 일반적인 유저와 사이트의 전반적인 부분을 관리하는 매니저, 사이트 전체의 모든 것을 관리하는 관리자가 있을 수 있습니다. 이렇게 사용자의 권한을 나눠서 접근을 제한해야 하기 때문에, 그 권한을 다르게 주어 사용자를 구분해야 합니다. 접근 제한 설정 security-context.xml에 접근 제한을 설정합니다. security-context.xml의 일부 에 접근을 설정하고 여러 권한을 가지는 사용자를 설정할 수도 있습니다. 접근 제한 메시지의 처리 특정 사용자가 로그인을 했지만 URI에 접근할 수 있는 권한이 없는 상황이 발생할 수도 있습니다. 이 경우에 접근 제한 에러 메시지를 보게 됩니다. 이 같은 경우.. 더보기
반응형