국비교육 (146) 썸네일형 리스트형 day72 - 1109 이메일 전송 의존성 추가 - Java Mail Sender 의존성 추가 - 의존성 추가 확인 ** SMTP(Simple Mail Transfer Protocol) JavaMailSenderImpl - Spring의 클래스 - JavaMailSender의 구현체 - 이메일 전송에 필요한 여러 설정을 할 수 있다 - JavaMailSenderImpl의 메소드 중 일부 void send(MimeMessage mimeMessage) Mime Message 전송 void send(SimpleMailMessage simpleMessage) Simple Message 전송 void setHost(String host) host 이름 설정 void setPort(int port) port 번호 설정 void setUs.. day71 - 1108 MyBatis를 이용한 복합 검색 - 하나의 에 여러 이 있으며 이중 일부만 사용하여 조건 검색을 구현 ** 구현하려는 검색창의 최종 형태 product-mapper 조건 조회 - 기본적으로 전체 조회 - 번호가 존재한다면 해당 번호로 조회 select * from product where no = #{no} 기본 검색 조회 - 기본적으로 전체 조회 - 검색 카테고리(type)과 검색어(keyword)가 존재한다면 검색 조회 - 태그처럼 해당 조건을 만족할 때만 안의 내용 동작 select * from product where instr(${type}, #{keyword}) > 0 복합 조회 (1) - 조건의 유무에 상관없이 여러 조건을 연결하여 한번에 쓰기 위해 where 1=1을 붙인다 select .. day70 - 1107 MyBatis 의존성 추가 - 프로젝트 생성시 기존 의존성 외에 MyBatis Framework 추가 - 의존성 확인 - (추가) jsp에 대한 의존성은 수동으로 추가해야 한다 application.properties 설정 추가 1) mybatis.configuration.map-underscore-to-camel-case - DB 컬럼명에 _가 포함된 경우 _ 이후 첫 글자를 대문자로 변환하여 Mapping 2) mybatis.type-aliases-package - mapper의 namespace를 간결하게 하기 위해 사용 3) mybatis.mapper-locations - mapper가 존재하는 위치 설정 mapper의 기본 형태 - 내에 태그 형태의 코드 작성 - namespace : 외부에서 .. day45 - 0928 Visual Studio Code (VSCode) Live Server - 웹 페이지를 새로고침하지 않아도 변경사항이 실시간으로 반영되어 바로 확인할 수 있다 1) 설치 2) Live Server를 실행시킬 브라우저 선택 - settings - browser 검색 - Live Server - Settings : Custom Browser에서 원하는 브라우저 선택 GitHub 연동 1. Git 설치 1) git 홈페이지에서 Downloads 선택 2) 운영체제(Windows) 선택 3) 버전 선택 4) 이후 특별한 선택 없이 다음을 눌러 설치까지 진행 ** 버전 확인 명령 : cmd 실행 후 git -version 2. Git Hub Pull Request and Issues 설치 3. Git Hub의 저.. day44 - 0927 게시판 첨부파일 업로드 및 다운로드 테이블 생성 게시판 첨부파일(board_attachment) - 게시글 번호(board_no) : 외래키, 게시판 테이블(board)의 게시글 번호(board_no) 참조, 필수 입력 - 첨부파일 번호(attachment_no) : 외래키, 첨부파일 테이블(attachment)의 첨부파일 번호(attachment_no) 참조, 필수 입력 ** 하나의 게시글에 하나의 파일만 첨부할 수 있도록 설정하기 위해 게시글 번호(board_no)와 첨부파일 번호(attachment_no)를 복합키로 설정 -- 테이블 생성 create table board_attachment( board_no references board(board_no) on delete cascade not n.. day43 - 0926 파일 업로드 (DB를 이용하지 않고) 1. 파일 전송 태그의 enctype 속성 - 폼 데이터를 서버로 보낼 때 해당 데이터가 인코딩되는 방식을 명시 application/x-www-form-urlencoded default 값으로, 모든 문자들을 서버로 보내기 전에 인코딩됨을 명시 text/plain 공백 문자(space)는 “+” 기호로 변환, 나머지 문자는 모두 인코딩하지 않음을 명시 multipart/form-data 모든 문자를 인코딩하지 않음을 명시한다. 이 방식은 요소가 파일이나 이미지를 서버로 전송할 때 주로 사용한다. - multipart/form-data 에는 여러 content-type의 이 여러 개 들어갈 수 있다 서로 다른 content-type의 데이터가 하나의 HTTP Requ.. day42 - 0923 테이블 조인(Table Join) - 둘 이상의 테이블에서 공통 필드를 기반으로 데이터 또는 행을 결합하는 것 - 두 테이블은 기본키(Primary Key, PK)와 외래키(Foreign Key, FK) 관계로 연결되어있어야 한다 -- 테이블 조인 select [열 목록] from [첫 번째 테이블] [JOIN의 종류] [두 번째 테이블] ON [조인 조건] [WHERE 검색 조건]; 내부 조인(Inner Join) - 조인 조건을 만족하는 행(교집합)만 조회 - null을 갖는 행(조인 조건을 만족하지 못하는 행)이 나올 수 없다 - INNER JOIN을 JOIN이라고 써도 INNER JOIN으로 인식한다 외부 조인(Outer Join) 1) Left Outer Join - 조인 조건을 만족하는 행 뿐.. day41 - 0922 댓글(Reply) - 게시판(Board)과 같은 controller를 사용한다 테이블 생성 댓글(Reply) - 댓글 번호(reply_no) : 숫자, 기본키, 시퀀스로 부여 - 댓글 내용(reply_content) : 문자, 3000byte, 반드시 입력 - 댓글 작성자(reply_writer) : 문자, 회원(Member) 테이블의 회원 아이디(member_id)가 되도록, 회원 탈퇴시 null - 댓글 작성시간(reply_writetime) : 날짜, 기본값이 현재 시간이 되도록, 반드시 입력 - 댓글 원본글 번호(reply_origin) : 게시판(Board) 테이블의 게시글 번호(board_no)가 되도록, 게시글 삭제시 댓글 삭제 -- REPLY 테이블 생성 create table reply .. 이전 1 2 3 4 5 ··· 19 다음 목록 더보기