본문 바로가기

분류 전체보기

(92)
[Spring Framework] OAuth2.0 카카오톡 로그인/회원가입 (Spring Security 적용) 병원 테마의 회원제 게시판 사이트를 만드는 개인 프로젝트를 할 때, OAuth 2.0을 이용한 로그인을 구현해보고 싶었다. 네이버, 구글, 페이스북, 카카오 등 여러 곳 중 카카오로 도전을 했었다. 카카오톡 로그인에 대한 정보가 Spring Boot는 많았지만 Security가 적용된 Framework에 대해서는 찾기 힘들어서 프로젝트 기간 내에 구현하지 못 했었는데, 이번에 이전 최종 팀플 때 했던 네이버 로그인과 비교해가며 구현해 냈다. 개발 환경 STS 3.9.11 Tomcat 9.0 🍍 1. 초반 설정 카카오 개발자센터에서 애플리케이션 등록을 한다. developers.kakao.com/console/app 입력 후 생성을 하고 요약정보를 누르면 발급된 앱키를 확인 할 수 있다. 플랫폼 메뉴에서 ..
[스프링] 독서실 관리 프로그램- 관리자 페이지에서의 좌석 등록 1 21. 05. 31. ✨ 개요 요구사항: 관리자는 전체 회원 중 좌석/사물함을 이용하고 있지 않은 회원 목록을 조회할 수 있고, 그 목록을 이용해 좌석/사물함 이용을 등록할 수 있다. 미등록 회원 목록에서 회원의 이름을 누르면 회원 목록과 좌석 배치도 사이에 등록 폼이 보이면서 해당 회원의 정보가 자동으로 기입되고, 좌석 배치도에서 비어 있는 좌석을 선택하면 해당 좌석 번호가 기입된다. 사물함 번호와 기간을 선택하지 않으면 등록을 진행할 수 없도록 했다. +) 이용자가 이용 등록을 할 땐 결제 처리까지 함께 이루어지는데, 관리자 페이지에서의 등록을 할 때 어떻게 해야 할지 고민이 되었다. 나는 결제 처리가 되어서 '결제 내역'에 데이터가 들어가야 이용 현황 차트에 반영시킬 수 있다고 생각했는데, 조원들과 얘기해 본 결과 관리..
자바로 쇼핑몰 상품 이미지 크롤링 하기. (jsoup 라이브러리 이용) 21. 05. 30. ✨ 개요 크롤링(crawling)은 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위를 말한다. Maven에서 jsoup.jar을 받아 자바 프로젝트에 외부 라이브러리 연결을 먼저 해준다. 크롤링 해 볼 사이트는 https://www.marpple.com/kr/product/list/9. 🍏 1. 사전 작업 CrawlTest.java package crawling; import java.io.FileOutputStream; import java.io.InputStream; import java.net.URL; public class CrawlTest { public static void main(String[] args) throws Exception { String targetUrl = "..
테이블 3개 조인하기. (관리자-좌석관리에서 좌석 배치도에 정보 입력 하기 위함) 21. 05. 29. 개요 ✨ 관리자 페이지의 '좌석 관리' 페이지에서 좌석 배치도에 '좌석 번호, 이용 중인 '회원 이름', '만료일'을 나타내고 싶다. 처음에 잘못 생각해서 단순히 inner join으로 TBL_MEMBER, TBL_REGINFO, TBL_SEAT을 join 했는데, 그럼 좌석 배치도를 띄울 수가 없었다! 빈 좌석들도 나와야 하기 때문에 OUTER JOIN을 이용해야 한다. 🍏 SQL SELECT S.SNO, M.USERNAME, R.ENDDATE, S.STATUS FROM TBL_SEAT S LEFT OUTER JOIN TBL_REGINFO R ON S.SNO = R.SEATNO LEFT OUTER JOIN TBL_MEMBER M ON M.USERNO = S.USERNO ORDER BY SNO; 🔶 이런..
[스프링] 독서실 관리 프로그램- 좌석 변경 21. 05. 27. 개요 ✨ 요구사항: 이용자는 현재 이용 중인 좌석을 다른 좌석으로 바꿀 수 있다. 좌석 배치도에서 이용 중인 회원이라면 "좌석 변경하기" 버튼이 노출되고, 이 버튼을 누르면 좌석이용/변경 페이지(changeSeat.jsp)로 이동한다. 빈 좌석 중 원하는 좌석의 변경 버튼을 누르면 해당 좌석으로 이전된다. 🍄 VO SeatVO, RegInfoVO 사용. SeatVO.java @Data public class SeatVO { private int sno; // 좌석 번호 private String name; // 좌석 이름(고정석,자유석) private boolean status; // 좌석 이용 상태 private Long userNo; // 회원 번호 } RegInfoVO.java @Data publi..
[스프링] 독서실 관리 프로그램- 이용 기간 연장하기 21. 06. 02. 수정 개요 좌석을 이용 중인 회원이 만료일 전에 이용 기간을 연장할 수 있도록 한다. 좌석 배치도에서 (추후에 MyPage같은 회원 정보 페이지로 이 기능을 이동할 것이다.) 내 만료일을 확인할 수 있고 '연장하기'버튼을 누르면 이용 기간 연장 페이지(exPament.jsp)로 이동한다. 이용 기간 연장 페이지(exPament.jsp)에서 이용중인 좌석 번호와 만료일을 확인할 수 있고 연장할 기간을 선택 후 '결제하기'버튼을 누른다. +) 다른 조원 파트인 결제 부분이랑 합치다가 이 글을 쓰다 말았다는 것을 깜빡했다.😂 뒤늦게 올림. 🍏 mapper public interface RegInfoMapper { // 이용 기간 연장 (이용 등록 정보 수정) int updatePeriod(RegInfoVO info..
[스프링] 독서실 관리 프로그램 1인 1좌석 자바스크립트 21. 05. 26. 개요 좌석 배치도에서 이용자가 등록 버튼을 누르면, 회원이 아닐 때 로그인을 유도하고 이미 이용중인 좌석이 있는 회원은 '1인 1좌석'원칙을 알린다. seat.jsp에서 스크립트 처리 $(function() { //ready /* 각 좌석의 등록버튼을 눌렀을 때 modal 띄우는 이벤트 */ $(".sRegBtn").click(function() { var result = confirm($(this).attr('value') + "번 좌석을 등록하시겠습니까?"); var sno = $(this).data("sno"); /* 등록 버튼에 해당하는 좌석 번호 */ var user = '${member.vo.userNo}'; if(user =='') { alert("로그인 후 이용하실 수 있습니다."); re..
[스프링] 좌석 만료일이 지났을 때 처리 21. 05. 24. 개요 팀 프로젝트로 독서실 관리 프로그램을 만들고 있다. 좌석은 등록일과 만료일이 있고, 만료일이 지나면 좌석 상태를 '빈 좌석'으로 만들어야 한다. Quartz 라이브러리로 스케줄러를 구성해서 처리해 보았다. 초기 설정 pom.xml에 라이브러리 추가. org.quartz-scheduler quartz 2.3.2 org.quartz-scheduler quartz-jobs 2.3.2 root-context.xml 네임스페이스에 task를 체크한 후 추가. PeriodCheckTask.java package xyz.sumtplus.task; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import ..