SPRING/IceWater Community
IceWater 커뮤니티 프로젝트 마무리
IceWater 기능 구현이 마무리 됐다. 추가한 거의 모든기능에 대한 글을 작성했다. 누구에게 알려주기 위한 친절한 글은 아니였지만 , 그래도 글을 쓰기위해 머릿속에서 다시한번 정리하고, 로직을 생각하며 글을 생각한 덕분에 시간은 많이 걸렸지만 훨씬 깊은 이해를 하게됐다. 특히, 이해를 통한 응용에 참 많은 도움을 받았다. 중간엔 블로그에 이런 글로써 기록하는게 의미가 있을까 싶었지만, 나중을 위한 기록을 포함, 복습에도 좋았다. * 회원가입 비동기 유효성 검사 비밀번호 암호화 이메일 인증 -인증 비밀번호 암호화 * 로그인 인터셉터 활용 - 세션부여 - 자동로그인 - 로그인,비로그인시 접속 제한 아이디 찾기 비밀번호 찾기 - (임시비밀번호 메일) 소셜로그인 * 게시판 다중게시판 페이징 검색 정렬 - 최..
[스프링] 커뮤니티 관리자 페이지
Spring farmework로 구현한 , 커뮤니티 IceWater의 마지막 기능이다. 이제 AWS를 이용해 배포를 하면 끝이다. 처음부터 관리자페이지는 회원관리 외의 기능을 생각하지 않고 구현해서 간단하다. 회원목록, 회원정지 (기간설정) , 포인트부여, 관리자 지정, 회원삭제, 공지사항 목록, 공지사항 등록 , 해제 기능이다. 따로 어려운 부분은 없고, 그냥 쿼리에 입력값을 받아서 처리하는 부분뿐이라 설명은 생략하겠다.. Mapper.xml update MP_MEMBER set MEMBER_RANK = 1 where MEMBER_ID = #{memberId} SYSDATE ]]> select MEMBER_SANCTIONTIME from MP_MEMBER where MEMBER_ID = #{member..
[스프링] 소셜로그인 구현 - 네이버
이번엔 소셜로그인을 구현했다. 이제 관리자 페이지만 만들면 커뮤니티 프로젝트가 마무리 된다. 마지막으로 AWS EC2로 배포를 하고, 프로필이미지나 첨부파일 기능을 위한 로컬위치 변경과 몇가지 설정을 해주면 끝이다. 네이버 개발자센터로 가서 API 이용설정 Service URL 설정 Callback URL설정 을 해준다. Service URL은 http://localhost:8080로 적어줬고, callback URL은 로그인 연결시 , 호출할 URL을 적어주자. 로그인이 연결되어 데이터가 넘어오면 URL로 컨트롤러에서 해당값을 받아서 DB에 insert하거나, select해서 이미 insert되있다면 세션값을 줘서 로그인 시키는 등의 방법으로 활용하면 되겠다. Pom.xml com.github.scri..
[스프링] 커뮤니티 알림목록
전 글의, 웹소켓을 이용한 실시간 푸시알림과 같이 구현한 기능이다. 웹소켓의 값을 이용해 db에 저장되게 하기엔 지금 프로젝트를 마무리 할 시간에 너무 촉박하고, 아직은 웹소켓 사용에 익숙해지지 않았기 때문에 , ajax를 이용해서 구현했다. 뷰 var memberId = ${login.memberId}; //알람목록 function alramList(){ console.log("alramList") var memberId = "${login.memberId}"; $.ajax({ url : '/board/alramList', type : 'get', data : {'memberId' : memberId }, dataType : "json", success : function(data){ var a='';..
[스프링] 커뮤니티 실시간 푸시알림 - 웹소켓
이번엔 커뮤니티 실시간 푸시알림을 구현했다. 일단 대략적인 기능 설명을 해보자면, 커뮤니티 전역에서 사용하는 Header include 부분에 웹소켓기능을 추가해서, 로그인하면 어느부분에서든 실시간으로 웹소켓이 연결이되고, 글작성자의 글에 댓글, 좋아요, 스크랩, 댓글작성자의 댓글에 좋아요,채택 등의 로직이 일어났을 때, 작성자에게 푸시알림이 가고, 알림들을 모아놓고 볼 수 있는 모달창에서 최대 6까지 알림을 볼 수 있고( 최신순 ) 모달창의 버튼에는 알림이 몇개 왔는지 개수가 보이고, 알림을 클릭해서 해당하는 게시글에 들어갈때, 같은 게시글의 알림들은 모두 한번에 없어진다. 푸시알림은 웹소켓을 이용해서 만들었으며, 알림확인 부분은 ajax를 이용해서 만들었다. 웹소켓에 전해지는 이벤트의 데이터를 이용해..
[스프링] 메인페이지,인기글 구현 (블라인드 참고)
이번엔 블라인드처럼 메인페이지를 꾸며보았다. 토픽베스트에는 내 프로젝트에 맞춰서 글작성 후 7일 미만의 게시물 중 , 가장 높은 추천수를 받은 게시글순으로 출력, 아래의 카테고리별 베스트는 2일미만의 게시물 중 추천수 순으로 출력한다. 기능상으로는 어느정도 비슷하게 구현이 됐지만, 디자인이..ㅜㅜ 눈물이다.. 원래 디자인은 생각을 많이 하지 않고 기능적인 구현을 우선한 프로젝트지만 , 결국 완성하고 나면 디자인이 이뻐야 같은 기능이라도 더 돋보이게 되는 것 같다. 다음 프로젝트는 무조건 좋은 템플릿을 선정해서 꾸며보려고 한다. 일단 토픽베스트이다. Mapper.xml SELECT a.BNO, a.TITLE, a.CONTENT, a.WRITER, a.REGDATE, a.HIT, a.REPLYHIT, a.B..
[스프링] 회원 프로필사진 수정 , 등록
이번에 구현할 것은 회원 프로필사진 등록, 및 수정이다. 미뤄왔던 회원 프로필 사진을 드디어 해결했다. 먼저 , 게시판에 사진 등 첨부파일을 등록할 때에는 파일테이블에 게시글PR 이나 파일의 오리지널 NAME 등, 몇가지의 컬럼이 들어가는데, 회원 프로필 사진은 회원테이블에 오직 로컬에 저장 된 파일명 (저장NAME) 만 저장하면 된다. 그래서 기존에 List> 으로 넣어주던 방식에서 String으로 리턴타입을 지정해 , 간단하게 구현했다. [스프링]게시판 첨부파일 업로드 구현 설명(insert) (1) :: 간편 웹프로그래밍 (tistory.com) [스프링]게시판 첨부파일 업로드 구현 설명(insert) (1) 오라클,스프링프레임워크 기준입니다. 먼저 파일추가에 필요한 테이블을 추가해준다. CREAT..
[스프링] 마이페이지 구현 - 회원 활동로그와 작성한 게시글,댓글,스크랩 목록
이번엔 마이페이지로 이동해서 , 그곳에서 회원 활동로그와 작성한 게시글,댓글,스크랩 목록을 볼 수 있도록 구현했다. OKKY 사이트처럼 다른사람도 그 정보를 닉네임을 클릭하는 등의 행위를 통해서 볼 수 있도록 만들었다. 다른 커뮤니티처럼 내 정보는 따로 검색을 하거나 등을 제외하면 나만 볼 수 있도록 할까... 생각을 했지만 IT커뮤니티이니 만큼 (?) 이상한 짓을 못하도록 그냥 모든 정보를 회원들이 서로 볼 수 있도록 만들었다. 실제로 나도 OKKY 커뮤니티를 사용하면서 다른 커뮤니티들과 다른 그런 정보공개?가 처음에는 낯설었지만 꽤나 괜찮다는 생각을 받기도 했다. 단, 너무 행동에 조심하게? 되는 부분에 대해 게시글과 댓글을 삭제하면 활동로그가 아예 삭제되도록 구현해서 해당 부분을 보완했다. 일단 해..
[스프링]게시판 스크랩기능 구현
이번엔 스크랩 기능을 구현했다. 먼저, 마이페이지에서 내 활동로그와 스크랩한 게시글을 볼 수 있도록 만들었는데 그 전에 스크랩 기능을 먼저 구현했다. 스크랩의 정보를 저장할 테이블을 생성하고 , 게시글PR , 회원PR과 DATE를 저장한다. create table MP_SCRAP ( SCRAPNO number not null, MEMBER_ID varchar2(50) not null, BNO number not null, SCRAPDATE date default sysdate, constraint scrap_pk PRIMARY key (SCRAPNO), constraint scrap_fk FOREIGN key (MEMBER_ID) references MP_MEMBER(MEMBER_ID) on delete..
[스프링] 질문 채택 기능 구현 (Like 지식 IN)
이번엔 질문 채택기능을 구현했다. 우선 , 지금 하고 있는 커뮤니티 프로젝트는 일반 카테고리 글작성, 추천 등으로 받을 수 있는 회원 포인트와, Q&A 답변 , Tech카테고리 게시글 작성 , Q&A와 Tech카테고리에서만 받을 수 있는 DEV라는 포인트가 있다. 하트가 추천 포인트, 번개가 DEV 포인트 이다. 각 회원별로 포인트를 가지며 , 해당 구현은 전 글에 작성하였다. 작성자 옆에 보이는 것이 이번에 구현한 채택기능인데, Q&A 카테고리의 채택전(dev포인트) , 채택 후 (v체크) , 다른카테고리라 채택기능이 없는 게시글 목록이다. 글 작성자는 Q&A글을 작성할때 , 자신의 추천포인트를 소비해서 지식in처럼 내공을 걸 수 있다. Q&A카테고리의 댓글엔 글 작성자만 채택버튼이 보이며, 채택버튼을..