Portfolio

foreach로 받은 리스트의 고유 값 선택해 넘겨줘야 할 때(dataset 활용)
${book.title} ${book.memberId} ${book.count} ${book.readNum} Modify Delete - 속성값이 고유해야할때 data-id를 쓴다. - 여러개를 사용할수도 있다. - input hidden태그 대신 사용하기도 한다. 예를 들어, 게시판 목록중에 삭제 컬럼이 있다고 하자. 삭제버튼을 누르면 foreach로 가져온 리스트중에서 x번째에 해당하는 것을 선택해야하는데, 어떻게 선택해야하는가? 그건 dataset을 이용하면 된다. tr에다 data-id 속성을 주고 value를 고유값으로 주면 각 행의 고유값을 가져올수 있다. 이렇게 가져온 고유값을 서버에 보낼때는 Ajax를 이용한다. 그래서 버튼을 눌렀을때, ajax로 통신해 선택된 고유값을 서버에 보내고 해당..

Spring/Gradle/Thymeleaf 이용한 게시판 빌드 (검색, 페이징) [2]
Controller 글쓰기 부분 @GetMapping("/qnaBoard/write") //글쓰기 폼으로 이동 public String qnaBoardWriteForm(Model model, HttpServletRequest request, HttpSession session, @RequestParam(value = "section", defaultValue = "1") int section, @RequestParam(value = "pageNum", defaultValue = "1") int pageNum) { AuthInfo ai = (AuthInfo) session.getAttribute("authInfo"); if (ai == null) { //로그인 안했으면 게시글 쓰기 불가 return "ac..

Spring/Gradle/Thymeleaf 이용한 게시판 빌드 (검색, 페이징) [1]
Oracle, Mybatis, Bootstrap5 이용한 검색과 페이징 기능이 있는 기본 게시판입니다. 회원타입에 따른 접근 제한 비회원: 읽기, 쓰기 불가 (접근제한) 회원: 글읽기, 본인 글 수정, 본인 글만 댓글 확인 가능 (타인 글 댓글 읽기 불가), 쓰기 가능 관리자: 읽기, 쓰기, 댓글쓰기 가능 Domain - QnaBoard @Data public class QnaBoard { private Integer qnaBoardNum; private Integer memberNum; private String memberName; private String qnaBoardTitle; private String qnaBoardContent; private Date qnaBoardDate; privat..

Spring/Gradle/Mybatis/Thymeleaf 검색기능있는 기본게시판 구현
Domain - QnaBoard @Data public class QnaBoard { private Integer qnaBoardNum; private Integer memberNum; private String memberName; private String qnaBoardTitle; private String qnaBoardContent; private Date qnaBoardDate; private Integer count; private String cmtContent; private Date cmtDate; private String keyword; public QnaBoard(Integer qnaBoardNum, Integer memberNum, String qnaBoardTitle, Stri..

카카오 API (SNS연동 회원가입/로그인 구현)
Spring / Gradle / Javascript 이용한 카카오 API 회원가입 로그인 구현 카카오 DB와 연동되는 회원가입 SQL문은 아래와 같습니다. (카카오로 회원가입을 하면 회원DB ;member 테이블 ; 에 기본값으로 지정한 회원정보가 입력이 됩니다.) Sql CREATE TABLE kakao( name nvarchar2(30) not null, email varchar2(200) primary key, picture nvarchar2(300), CONSTRAINT kakao_pk FOREIGN KEY(email) REFERENCES member(memberEmail) on delete cascade ); CREATE TABLE member_email( memberEmail VARCHAR2(..

전체 DB구조 / 회원테이블 DB 생성
고윤박커피의 전체 DB설계는 이렇습니다. 기본적인 회원가입 테이블은 이렇게 생성했습니다. CREATE TABLE member( memberNum NUMBER(6), memberId VARCHAR2(50), memberPw VARCHAR2(1000) NOT NULL, memberName VARCHAR2(20), memberBday DATE not null, memberAddress VARCHAR2(300), memberTel VARCHAR2(20), memberPhone VARCHAR2(20) NOT NULL, memberEmail VARCHAR2(200), memberEmailYn NUMBER(1), memberMileage NUMBER(6) DEFAULT 0, CONSTRAINT memberNum_pk..

국세청 사업자등록번호 API 활용하기(Ajax)
사업자등록번호 진위확인 & 상태조회 저희 프로젝트가 도,소매를 하는 쇼핑몰이었기때문에 따로 사업자 회원가입을 두고, 사업자 전용 쇼핑몰 페이지에서 10%의 할인가격을 기본으로 제공했습니다. 이를 위해서는, 사업자등록번호를 인증한 사업자만 사업자회원가입이 가능해야했습니다. 사업자등록번호 조회는 국세청의 오픈API인 사업자등록정보 진위확인 및 상태조회 서비스 를 이용하면됩니다.😃 자, 그럼 순서대로 따라해봅시다. 위의 링크에서 국세청 오픈API서비스로 이동합니다. 오른쪽의 활용신청 버튼을 누릅니다. 로그인하라고 뜹니다… 회원가입을 진행하고 다시 활용신청을 합니다! 활용목적은 그냥 간단하게 작성하셔도 됩니다. 한줄정도로 작성하고 신청합니다. 그러면 바로 승인이 됐다고 뜹니다. 링크를 눌러보면 밑에 쭉 ~ 문서..

Spring/Gradle/Thymeleaf 이용한 로그인페이지 구현 +패스워드 찾기
로그인 페이지 빌드하기 저는 전체적인 디자인적 통일성과 페이지 완성도를 위해서 부트스트랩 무료템플릿을 이용해 로그인페이지를 완성시켰습니다. 적용된 무료 로그인 템플릿 : Alex Cornejo Animated Login Form Simple Bootstrap Login Form... codepen.io 적용후 모습은 짜잔 이렇습니다. 구글과 카카오 연동 로그인버튼을 추가했습니다 :) 구글은 OAuth 2.0을, 카카오는 자바스크립트를 이용했습니다. DB와의 로그인정보가 일치하지 않으면 에러메세지가 뜨도록 했습니다. LoginController 예시 @RequestMapping(value = "/signin/loginExecute", method = RequestMethod.POST) public Stri..