초급의 끄적거림

[프로젝트] 호스팅 (cafe24 이용) 본문

카테고리 없음

[프로젝트] 호스팅 (cafe24 이용)

codingD 2019. 9. 23. 18:04

1. cafe24 이용하기


 www.cafe24.com

 

카페24

No.1 글로벌 전자상거래 플랫폼 '카페24'

www.cafe24.com

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

실제로 배포할 class가 들어 있는 폴더 경로

    - 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' 폴더를 통째로 옮기기

classes 를 붙여넣을 곳
classes, lib web.xml이 올라간 모습

 

<백엔드를 수정했기 때문에 톰캣서버를 닫았다가 열어야함, Putty를 이용해서 서버를 열었다가 닫을 수 있음>

[내아이디@umj64-002 ~]$ tomcat/bin/catalina.sh stop      톰캣서버 중지

[내아이디@umj64-002 ~]$ tomcat/bin/catalina.sh start      톰캣서버 시작

 : 제대로 수행되면 'Tomcat started.' 가 나타남

 

  4. 원격접속 Putty


     - ftp (file transfer) 파일전송 : Putty 

    - MySQL 접속 (아래 링크 참고)

https://help.cafe24.com/cs/cs_faq_view.php?idx=240&page=1&mode=&s_value=&faq_list=35&categoryIdx=35&select_os=&contentNum=20

  - 서버를 껐다 켰다 할 수 있게 함

    : .class, .jar, web.xml 등의 파일을 업로드한 경우에는 반드시 톰캣서버를 재시작 해야함

 

  1) 아이디를 입력하면 비밀번호 입력창이 뜸 (비밀번호는 입력해도 화면에 나타나지 않음)

  2) mysql 아이디를 입력하여 db에 접속

mysql -u 아이디 -p 아이디
Enter password : 비밀번호

 

    3) mysql 쿼리문 입력

MariaDB에 접속하고 쿼리문 작성

 

  - 현재 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 (
      pdsno       INT            NOT NULL AUTO_INCREMENT PRIMARY KEY
      ,wname      VARCHAR(100)   NOT NULL
      ,subject    VARCHAR(250)   NOT NULL
      ,regdate    DATETIME       NOT NULL
      ,passwd     VARCHAR(15)    NOT NULL
      ,readcnt    INT            DEFAULT 0
      ,filename   VARCHAR(250)   NOT NULL
      ,filesize   INT            DEFAULT 0
    );

 

  회원 테이블

  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 파일을 바탕화면에 복사하여 에러메세지 확인 가능

  : 아래 사진처럼 확인된 에러 메세지를 보고 에러 수정

 

 

Comments