일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 과정평가형
- HTTP Status 404
- SQL
- 성적프로그램
- HTTP Status 500
- Java
- jQuery
- 한글 인코딩
- 이클립스
- alias
- 답변형 게시판
- Bootstrap
- group by
- git
- tomcat
- JavaScript
- Oracle DB
- 제약조건
- HTML
- distinct
- rownum
- 모조칼럼
- sql developer
- JSP
- 부트스트랩
- Oracle SQL
- github
- ||
- oracle
- CRUD
초급의 끄적거림
[프로젝트] 호스팅 (cafe24 이용) 본문
1. cafe24 이용하기
1-1) 회원가입
1-2) Tomcat 호스팅 절약형 상품 결제
- 도메인 이름 고민할 것 (1. 아이디를 도메인으로 한 무료 도메인 2. 돈을 내고 산 특정 도메인)
- FTP 비밀번호
- 데이터베이스(Maria DB) 비밀번호 : DB의 경우 시작할 때부터 선택해야 함
2. Oracle DB로 작성된 쿼리문을 Maria DB에 맞게 수정
- cafe24.com → Maria DB 사용 (지금까지 oracle DB를 사용했기 때문에 복사해서 Maria DB로 변경)
2-1) 이클립스 Web Procject 별도 생성한 후 관리
- 프로젝트명 : cafe24
- myweb에 있는 백엔드 java 파일을 '프로젝트 cafe24'에 복사 붙여넣기
- DBPKG의 DBOpen.java 수정 (Oracle DB 버전으로 적혀있기 때문)
<드라이버명>
Class.forName("org.gjt.mm.mysql.Driver");
Connection con=DriverManager.getConnection("jdbc:mysql://localhost/내 아이디", "아이디","FTP비밀번호");
▶ localhost에 IP를 적어도 되지만 보안 등의 이유로 localhost 추천
2-2) BbsDAO 수정 (insert(), reply())
- MySQL 은 bbsno라는 일련번호를 넣는 것이 제약조건으로 존재하기 때문에 bbsno 삭제해도 알아서 들어감
- 칼럼에 regdt 추가 + values에 'now()' 추가
<해당 필드의 값이 NULL을 반환할때 다른 값으로 출력할 수 있도록 하는 함수>
Oracle : NVL(MAX(bbsno), 0)+1 from tb_bbs
MySQL : IFNULL(MAX(bbsno), 0)+1 from tb_bbs as TB (alias 값을 붙여줘야함)
<오늘 날짜>
Oracel : sysdate
MySQL : now()
2-3) myweb의 외부라이브러리 복사, 붙여넣기
: Utility.java의 에러가 사라짐
2-4) Utility class의 첫 줄
<서비스 시에는 도메인으로 변경 되는 부분>
호스팅 전 : private static final String root = "/myweb"; → 개인이 연습할 때의 루트
호스팅 후 : private static final String root = "";
2-5) web.xml
: '첫 페이지 등록'과 '세션 유지 시간 설정' (시간은 본인이 원하는만큼)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>cafe24</display-name>
<!-- 첫 페이지 등록 -->
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 세션 유지 시간 설정 (30분) -->
<session-config>
<session-timeout>1800</session-timeout>
</session-config>
</web-app>
3. filezila 설치
- 내가 가지고 있는 것을 웹에 보일 수 있게 이동시켜 줌
- '사이트 관리자' 에서 호스팅할 사이트 생성
3-1) 프론트엔드
: 로컬 사이트에서 리모트 사이트로 드래그 (폴더째 가능) 하거나 더블클릭하면 로컬에서 리모트사이트로 옮겨감
: 페이징이 안되어 있는 'bbs_v1'을 리모트 사이트에 올리고 'bbs'로 이름변경
3-2) 백엔드
: D:\경로\myweb\build\classes에 들어가서 class 파일을 이용하여 백엔드 설치
D:\경로\myweb\src 에 있는 것을 올리는게 아님
: 올리기 위해 수정했던 cafe24 프로젝트의 classes 폴더, lib 폴더 그리고 web.xml 파일을 리모트 사이트의 /ROOT/WEB-INF 에 'classes' 폴더를 통째로 옮기기
<백엔드를 수정했기 때문에 톰캣서버를 닫았다가 열어야함, Putty를 이용해서 서버를 열었다가 닫을 수 있음>
[내아이디@umj64-002 ~]$ tomcat/bin/catalina.sh stop 톰캣서버 중지
[내아이디@umj64-002 ~]$ tomcat/bin/catalina.sh start 톰캣서버 시작
: 제대로 수행되면 'Tomcat started.' 가 나타남
4. 원격접속 Putty
- ftp (file transfer) 파일전송 : Putty
- MySQL 접속 (아래 링크 참고)
- 서버를 껐다 켰다 할 수 있게 함
: .class, .jar, web.xml 등의 파일을 업로드한 경우에는 반드시 톰캣서버를 재시작 해야함
1) 아이디를 입력하면 비밀번호 입력창이 뜸 (비밀번호는 입력해도 화면에 나타나지 않음)
2) mysql 아이디를 입력하여 db에 접속
mysql -u 아이디 -p 아이디
Enter password : 비밀번호
3) mysql 쿼리문 입력
- 현재 Oracle DB로 만들었던 테이블을 Maria DB에 맞춘 테이블을 생성해야함
: 이를 수행하기 위해 mysql에 맞는 쿼리문으로 변경 후 (아래 표 참고) Putty 에 로그인을 하여 입력
: 나중에 DB를 바꾸는 것은 매우 위험한 행동이니 하지 말 것
게시판 테이블 |
CREATE TABLE tb_bbs ( bbsno INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,wname VARCHAR(20) NOT NULL ,subject VARCHAR(100) NOT NULL ,content TEXT NOT NULL ,grpno TINYINT NOT NULL ,indent TINYINT DEFAULT 0 NOT NULL ,ansnum TINYINT DEFAULT 0 NOT NULL ,regdt DATETIME NOT NULL ,passwd VARCHAR(15) NOT NULL ,readcnt INT DEFAULT 0 NOT NULL ,ip VARCHAR(15) NOT NULL ); |
* AUTO_INCREMENT : 일련번호의 제약조건 * TINYINT : INT 보다 작은 수 |
첨부형 게시판 테이블 |
CREATE TABLE tb_pds ( |
회원 테이블 |
CREATE TABLE member ( id VARCHAR(10) NOT NULL, -- 아이디, 중복 안됨, 레코드를 구분하는 컬럼 passwd VARCHAR(10) NOT NULL, -- 패스워드 mname VARCHAR(20) NOT NULL, -- 성명 tel VARCHAR(14) NULL, -- 전화번호 email VARCHAR(50) NOT NULL UNIQUE, -- 전자우편 주소, 중복 안됨 zipcode VARCHAR(7) NULL, -- 우편번호, 101-101 address1 VARCHAR(255) NULL, -- 주소 1 address2 VARCHAR(255) NULL, -- 주소 2(나머지주소) job VARCHAR(20) NOT NULL, -- 직업 mlevel CHAR(2) NOT NULL, -- 회원 등급, A1, B1, C1, D1, E1, F1 mdate DATE NOT NULL, -- 가입일 PRIMARY KEY (id) ); |
공지사항 테이블 |
CREATE TABLE tb_notice( noticeno INT NOT NULL AUTO_INCREMENT PRIMARY KEY -- 일련번호 ,subject VARCHAR(255) NOT NULL -- 제목 ,content VARCHAR(4000) NOT NULL -- 내용 ,regdt DATETIME NOT NULL -- 작성일 ); |
- 테이블 생성 후에 글쓰기를 실패한 경우 에러 확인 법
: filezila 의 리모트 사이트에서 logs - catalina.out 파일을 바탕화면에 복사하여 에러메세지 확인 가능
: 아래 사진처럼 확인된 에러 메세지를 보고 에러 수정