Java 유지보수(JSP/Servlet, Spring Boot) 쇼핑몰 유지보수

Java 유지보수 지원 센터의 구성
(주)심포니소프트는 Java 유지 보수 고객을 위하여 최적의 유지보수 지원을 하고 있습니다.
다양한 고객들의 needs에 따라 필요한 만큼만 합리적으로 비용을 지불하고 , 효율적으로 유지관리를 하실 수 있도록 (주)심포니소프트 에서는 지원시간 별 가격정책을 제공 하고 있습니다.
시간별 유지보수 범위
운영유지보수 범위는 1개월을 기준으로 년 지원시간을 월로 분할하여 지원하며 유지보수에 필요한 기획자, 디자이너, 개발자 등의 담당자가 다양한 범위를 진행하실 수 있도록 지원합니다.
* 자세한 문의사항은 영업핫라인을을 통하여 문의 바랍니다.

분류 Basic Standard Premium
금액 1,200(월100만원) 2,400(월200만원) 별도협의
지원시간 년 200시간 년 400시간 별도협의
투입인력 담당PM 1명 담당PM 1명 별도협의
투입인력 디자이너 1명 디자이너 1명 디자이너 1명
개발자 개발자 1자 개발자 1자 별도협의
부가 서비스 반기 별 PM 방문 반기 별 PM 방문 별도협의
심포니만의 시너지 지원 사항
분류 내용
프로젝트 관리 PMS 서포트 Ticket 시스템의 운영
(1) 사이버 의견 교환 시스템
(2) 신속한 지원시스템
(2) 지원 보고서 자동화
(3) 문제점을 끝까지 추적하여 종결시킴
형상 관리 비공개 자체 git 시스템으로 소스 관리 및 동기화 지원
(1) 소스 관리 이력 자동 정리
(2) 소스 자동 백업
(3) 특정 시점 소스 자동 복원
문서 관리 비공개 문서 git 관리 시스템으로 문서 관리 표준화
(1) 개발 문서 관리 이력 자동 정리
(2) 개발 문서 자동 백업
(3) 특정 시점 개발 문서 자동 복원

[Node.JS 유지보수] Vue.js와 React.js 를 이용한 한세 실업 공정관리 시스템 Frontend 개발 완료

[제품 생산 공정 스케줄링 프로젝트]

2020년 3월 Node.JS: Vue.Js Framework 와 React로 개발된 Global 봉제공정 관리
시스템을 개발하여 베트남의 호치민시, 과테말라 산호세시, 인도네시아 우타마 등에 있는 봉제 공장에 활용할 수 있도록 하였습니다.
Backend 단에서 제공된 .Net C# 으로 만들어지 서버 API에 맞추어 기본적으로 이미 자체 개발된 Vue.js 관리자 모드 보일러 플레이트를 사용하였으며 리본메뉴와 좌 우측 메뉴을 동시에 사용할 수 있도록 조정하였습니다. 프론트 페이지는 React.Js 로 개발하였습니다.

시스템 구성 개요
[개요] 전체 서버 구성은 프론트 엔드 서버에서 Vue.Js(Node.js) Framework 을 사용하여 개발되었고 핵심 라이브러리는
핵심 라이브러리는 SyncFusion 이란 막강한 UI 컴포턴트를 사용하여 개발하였습니다.

타이틀 상세 사항
Node.JS Frontend Frameworks: Vue.Js(Node.Js), Backend: C# .Net
DB MS-SQL
Web Server IIS 6.0
Android/iOS 앱 패키징
DB/Code 개발툴 VS Code / SQL Gate
관련 웹사이트 https://www.hansae.com/ko/index.asp
Node.JS: Vue.Js 상세 개발 내용
[제품 생산 공정 스케줄링 프로젝트]
항목 상세 내역
주요기능 1. 다수의 제품 생산 오더를 당당자별 팀별로 분할하여 일정을 만들고
2. 해당 일정에 대하여 Elastic 한 방식으로 Gantt Chart를 만들어
3. 직접 상황을 확인하면서 일정을 조정할 수 있도록 하며
4. 각 오더에 대한 세부 오더들에 대해서 일정을 조정할 수 있도록
5. 사용자 인터페이스를 구성하였습니다.
기능 설계 Backend 단에서 제공된 API에 맞추어 기본적으로 이미 자체 개발된 Vue.js 관리자
모드 보일러 플레이트를 사용하였으며 리본메뉴와 좌 우측 메뉴을 동시에 사용할 수 있도록
조정하였습니다.
구성 설계 2020년 3월 Node.JS: Vue.Js Framework 와 React로 개발된 Global 봉제공정 관리
시스템을 개발하여 베트남의 호치민시, 과테말라 산호세시, 인도네시아 우타마 등에 있는 봉제 공장에
활용할 수 있도록 하였습니다.Backend 단에서 제공된 .Net C# 으로 만들어지 서버 API에 맞추어
기본적으로 이미 자체 개발된 Vue.js 관리자 모드 보일러 플레이트를 사용하였으며 리본메뉴와 좌
우측 메뉴을 동시에 사용할 수 있도록 조정하였습니다.
다보리가 해당 서비스 업체에 제공할 서비스는
항목 상세 내역
On-Premise 서버 상시 최대 가용성 상태를 유지
개발의 뒷이야기
베트남 개발자와 함께 개발하여 베트남 호치민시의 공장에 첫번째 테스트을 할 수 있었습니다. 이후 코로나의 여파로 실제 공정에 설치하는 과정은 지연되긴 하였지만 성공적으로 런칭하여 각 국의 봉재 공장 브랜치에서 사용하고 있습니다.

[Node.JS 유지보수] All the Partee – Zoom 기반 글로벌 무료 화상 강의, 소셜 에듀케이션 프로젝트 완료

안녕하세요 ?
2020년 10월 Node.JS 로 개발된 Allthepartee 시스템의 사후 관리 유지 베이스로 계약하여 2개월 만에 성공적인 오픈을 할 수 있었습니다.

시스템 구성 개요
[개요] 전체 서버 구성은 5대로 프론트엔드 서버, 백엔드서버, DB 서버로 구성되어 있습니다.

타이틀 상세 사항
Node.JS Frontend Frameworks: React JS, Backend: Express
DB My-SQL
Web Server NginX
Android/iOS 앱 패키징
DB/Code 개발툴 VS Code / SQL Gate
관련 웹사이트 https://allthepartee.com/
Node.JS 상세 개발 내용
현재 카카오톡 오픈 채팅방에서 운영 중인 서비스를 모바일 앱으로 제작하는 프로젝트입니다.

44개국 유저를 대상으로 한국인들이 참여하는 재능공유 무료 커뮤니티 서비스입니다.
페이스북 스타일의 커뮤니케이션 기능이 필요하며, 교육 진행을 희망하는 유저가
방을 개설했을 때 다른 유저가 참여하고 줌(ZOOM)을 통해 교육을 진행하는 구조입니다.

진행 과정에서 결제, 화상채팅 지원은 필요하지 않으며, 유저 간 중개, 매칭을 지원하는 서비스입니다.

항목 상세 내역
주요기능 – 페이스북 스타일의 커뮤니케이션 기능(게시글, 댓글, 좋아요 등)
– 오픈 채팅방 관리기능(내보내기, 게시글 삭제 정도), 등록된 교육일정표 기능 등
– 안드로이드, IOS 앱 구현 목표
기능 설계 순차적으로 기능 개발, 론칭을 하는 애자일 방식을 지향합니다.
추가적으로 모바일 웹, PC 웹용 1페이지짜리 서비스 소개 페이지 개발이 필요합니다.
구성 설계 웹과 모바일웹을 먼저 개발하고 안드로이드와 iOS 베이스로 앱 페키징을 완료하였습니다.
다보리가 해당 서비스 업체에 제공할 서비스는
항목 상세 내역
AWS EC2 관리 상시 최대 가용성 상태를 유지
개발의 뒷이야기
초기에 타 개발사와 계약해서 작업 진행하던 중 개발 일정과 계속 지연되고 산출물이 지연되는 이유로 인하여 이전 업체와의 계약을 해약하고 본사가 해당 프로젝트를 중도에 인수 인계 받게 되었습니다. 소스코드 인수 과정과 초기 개발과정이 쉽지는 않았지만 잘 마무리하여 성공적으로 론칭 시켰습니다.

[Java유지보수] 대한민국 국방부 00 관리 시스템 유지보수 계약 진행

안녕하세요 ?
2021년 3월 JAVA 베이스로 개발된 국방부의 OO 관리 시스템 유지보수 업무를 수주하여 진행하게 되었습니다.

시스템 구성 개요
[개요] 전체 서버 구성은 5대로 웹서버, 백업서버, 검색엔진 서버, DB 서버, 보안 관리 서버로 구성되어 있습니다.

<tbody요
타이틀 상세 사항
개발언어 View: Java JSP Controleler & Model: JAVA Servlet
DB MS-SQL Enterprise 2006
Web Server Apache Tomcat 7.0
DB/Code 개발툴 SQL Gate / Eclipse
Backup Tool Sync Toy
보안툴 국가 승인 Hash 알고리즘: Aria
(주의) 개발 유지보수 내용은 국가 안보와 관련있는 정보이므로 상세 내용은 공개하지 않습니다.

[마젠토2] 다른 웹호스팅 또는 SSL 로 마이그레이션 하는 가장 심플한 방법

안녕하세요 ?
국내 유일의 PHP 쇼핑몰 교육 모임인 “Dabory PET(Dabory PHP E-Commerce Technology”에서 연구한 자료를 관심있는 여러분들과 공유하고 있습니다.
Magento-2 : Easiest wat to migrate to the other webhosting or change to SSL website in https

예)single.daboryhost.com에서 fit-vac.com 도메인 명의 웹사이트로 이전하기
선택 설명
(1)Magento
사이트 백업 및 복원
DB와 폴더를 snap-move-site 로 그대로 부어 준다. 이경우는  Kloxo Webhosting 을 사용할 경우이므로 일반 웹호스팅의 경우
public_html 전체과  DB를 백업하여 이전할  웹호스팅에 복원한다.
git 으로 하지 말것 vendor를 빼기 때문에 전체가 엉망이 되어 설치 불가능한 상태가 된다.
(2)Base URL 수정 phpmyadmin  로 진입하여 아래의 쿼리를 실행한다.

UPDATE core_config_data  SET value = ‘http://fit-vac.com/’
WHERE path IN (‘web/secure/base_url’, ‘web/unsecure/base_url’);
이것은 =>Store-Configuration-General-Web-BaseURLs-BaseURL, BaseURS(Secure)을 수정하는 것과 동일하다.

(3)Include URL 수정 phpmyadmin  에서 아래의 쿼리를 실행한다.

UPDATE core_config_data SET value = REPLACE(value, ‘single.daboryhost.com’, ‘fit-vac.com’)
WHERE path = ‘design/head/includes’;
이것은 =>=>Contents-Design-Configuration-website store-html head- Scripts and Style Sheets을
수정하는 것과 동일하다.

(4)domain folder 일치 domain folder 일치시킴.
(Kloxo의 경우 웹호스팅 root folder 에서 ln -s fitvac public_html 로 domain folder를 수정한다.
(5)app/etc/env.php 수정 backend 주소와 db 접속 정보 를 이전된 DB 연결 환경과 일치시킨다.
(6)domain folder 일치 domain folder 일치시킴.
(7)my-kloxo-cleanup 서버를 못찾아서 서있으면 엔터를 몇번 쳐줄 것. kloxo 웹호스팅의 경우
https:// 링크 문제가 발생할시의 수정 방법
미리 ssl 적용하면 관리자 모드로 들어갈 수 없기 때문에 phpmysql 에서 직접 Query를 실행하면 빨리 적용할 수 있다.
위 항목의 (2)(3)에서  http -> https 로 바꾸어서 쿼리 실행을 한다.

[워드프레스] 속도를 개선하는 방법-종합개요

안녕하세요 ?
국내 유일의 무료 워드프레스 쇼핑몰 “우커머스 교실”에서 사용하고 있는, 워드프레스 속도를 개선하는 방법에 대해 알아보도록 하겠습니다.
기본적으로 쇼핑몰과 같이 영리를 목적으로 하는 웹사이트 속도는 방문객들의 체감하는 웹사이트 속도에 의하여 매출 전환율이 많은 영향을 받습니다. 웹서비스가 1초 느려지면 매출이 3% 떨어진다는 마이크로소프트 빙(BING)의 통계도 있는데, 에버든 그룹(Aberdeen Group)에 보고서에 의하면 온라인 쇼핑몰의 경우 페이지 로딩 시간이 1초 지연될때 마다 페이지 뷰는 11%, 고객 만족도는 16% 감소할 뿐만 판매 전환율도 7%정도 낮아 진다고 합니다. 그리고 웹사이트의 성능에 불만을 느낀 소비자의 79%가 해당 사이트에서 다시 상품을 구매하지 않을 것입니다. 따라서 웹사이트의 속도는 매출 전환율을 높이는 중요한 요소 중에 하나 입니다.

1. 웹사이트 속도를 결정하는 요소
실제 웹사이트 방문자들이 체감하는 웹사이트 속도에 대개 3가지의 요소로 정리됩니다.
(1) 다운로드 속도
(2) 웹서버 부하 감소
(3) 브라우져의 효율성
입니다.
이중 (3) 브라우져의 효율성은 개별 방문자의 크롬이나 인터넷 익스플로러의 설정과 관련된 것이라 방문객 별로 일일히 통제하기에는 거의 불가능한 상황이므로 논외로 하고 다운 로드 속도와 서버 부하에 대해서 대안을 생각해보도록 하겠습니다.
(1) 다운로드 속도
웹사이트 다운로드 속도란 페이지 로딩 속도라고도 하는데 웹사이트의 이미지 화일을 포함하는 정적인 컨텐츠( Static Contents ) 인 Html, Javascript, Css 화일이 다운 로드되는 속도를 말합니다. 대부분의 웹사이트 측정을 하는 웹사이트는 다운 로드 속도 이상을 측정해주지는 않습니다. 그 이유로서는 웹사이트 다운로드 속도 측정은 웹서버 내부의 Database 엑세스와 Apache 나 NginX와 같은 Php와 같은 동적으로 컨텐츠를 구성하는 과정을 측정해내지는 못하기 때문입니다.
(2) 웹서버 부하 감소.
실제 워드프레스 속도 문제을 100%으로 놓고 보면 다운로드 속도 부분은 20%로 적은 편이고 서버 부하부분이 80% 이상의 문제를 차지하는 편입니다. 이커머스를 활용하는 대부분의 국가들의 인터넷 회선 속도를 감안할 때 대용량 이미지를 잘못 쓰는 경우가 아니라면 큰 무리가 없고 있다하더라도 이미지 최적화를 통하여 해결할 수 있기 때문입니다.
웹서버를 Apache로 쓰고 있는 경우, 워드프레스는 Apache – Php – Mysql 과 연결되는 과정에서 부하를 발생시킵니다. 워드프레스의 서버 부하는 대부분은 설치된 테마와 플러그인들이 발생시키는 Mysql Access 에서 발생한다고 봐도 무방합니다.
이 두가지 내용에 대해 세부적인 진단과 처리 방법에 대해 알아보도록 하겠습니다.
워드플레스는 설정이나 각 플러그인의 동작시에 Mysql DB에 상당히 많은 횟수의 읽기가 시도됩니다. 많은 부분 Mysql 의 데이터 읽기 과정에 많는 부하가 발생하는 경우 입니다.
2. 다운 로드 속도
일단 다운 로드의 경우 속도 측정을 어떤 요소가 속도에 영향을 미치고 있는가가 중요한 요소입니다. 잘 알려진 속도 측정 사이트를 소개합니다.
(1) 핑덤
핑덤은 전 세계적으로 사이트 속도 측정을 위해 가장 많이 이용되는 사이트 중 하나이며, 측정했던 기록이 남기 때문에, 보완 후 다시 측정 했을 때 얼마나 효과가 있었는지도 확인 가능 합니다. (2) 구글 스피트 페이지
웹사이트의 다운 로드 속도를 즉정하는 도구로써는 Google 의 PageSpeed 가 있습니다. 구글 스피드 인사이트는 구글에서 제공하는 측정 사이트로, 속도 측정 결과와 함께 수정 해야할 사항들을 표시해 줍니다. (3) GT 매트릭스
GT 매트릭스는 고정된 위치(IP)가 아닌 국가에서 속도를 측정해줍니다. 즉, 글로벌 유저를 표적고객으로 하는 웹사이트에를 테스트 하기에 적절한 사이트 입니다.
2. https://gtmetrix.com/
일단 속도 측정을 하고 나면 어디에서 속도의 취약점이 발생하는가를 확인할 수 있습니다. 다운 로드 속도는 결국 대부분
(1) 이미지 최적화 (2) 브라우저 캐싱 (3) Static (Html, Javascript, css ) 화일 최적화로 귀결이 됩니다.
그럼 좀 더 세부적인 내용을 살펴 보도록 하겠습니다.
(1) 이미지 최적화 – Image Optimazation ( Image Polishing )
다운로드의 속도의 대부분은 무거운 이미지가 대부분은 차지 합니다.
a. 이미지의 품질 수준은 유지하면 하면서 용량을 최소할 할 수 있는 방법을 찾아 봅니다.
Optimizilla는 기부로 운영되는 뛰어난 온라인 이미지 최적화 사이트입니다. 이미지 최적화는 온라인상 보여지는 이미지의 품질 수준을 유지하면서 용량을 크게 감소시켜 주며 Optimizilla를 사용화면 최대 7배가 넘는 크기를 최적화가 가능하며 한 번에 20개의 이미지를 업로드할 수 있고 직접 압축 품질 변경 가능한 기능을 제공한다. 하지만 이러한 최적화를 제공하는 확장자는 JPG, PNG뿐입니다.
http://optimizilla.com/ko/
이미지 최적화 클라이언트 툴 : https://imageoptim.com/mac
b. 가장 중요한 요소가 갤러리 형태로 보여줄 때 썸네일 방식으로 용량이 최소화된 형태로 자동으로 잘라 줄 수 있는가 입니다. 이 경우 워드프레스 테마에서 제공해주는 경우가 많는데 실제적으로 테마를 사용하면서 확인해보는 것이 가장 좋습니다.
c. 워드프레스 이미지 최적화 플러그인
(2) 브라우저 캐싱은 서버에서 다룰 수 있는 것이 아니므로 일단은 제외하고 넘어 갑니다.
(3) 정적(Static) 화일 Minifying
동적으로 변화 하지 않는 Html 이나 Include되는 Jave script, Css 화일을 압축하는 기능입니다. 미리 압축한 min 화일을 사용할 수 도 있고 캐시에서 압축할 수 도 있습니다. 하지만 다운로드 속도 개선을 위하여 이미지를 제외한 정적 화일의 minifying 이 가져다 주는 효과는 미미합니다.
** 결국 다운로드 속도를 증가 시키기 위한 가장 확실할 방법으로써 CDN ( Contents Delivery Network) 서비스와 Image Polishing 이라는 방법이 있습니다. **
해당 내용은 아래의 독립된 소절에서 상세히 설명하도록 하겠습니다.
병목_현상__Angde
3. 서버 부하 감소
웹서버 부하 측정으로 들어가면 이제 양상은 상당이 복잡해지기 시작합니다. 워드프레스 기술 구조중 가장 강점 중에 하나인 유연한 플러그인(Plugin) 개발 기법은 워드프레스를 통한 무한한 기능 확장이 용이하게 될 수 있도록 만들어져서 워드프레스를 전 세계 CMS 툴 분야에서 사실상을 표준을 만들수 있는 일등공신이 되었습니다. 하지만 강점이 있으면 그것으로 인한 약점도 생기는 법이지요. 워드프레스 플러그인에서 주로 사용하는 Calllback 함수 (보통 Hook이라고 부르기도 합니다.)가 특성상 미리 로직을 로딩하여 컴파일 해둔 상태에서 한 페이지가 실행되는 상황에 따라 사용 여부를 결정하는 방식이므로 자연적으로 서버 부하가 상대적으로 많이 발생하는 구조이 되어 있습니다. 사실은 그리고 각 플러그인들은 대부분의 메인 페이지는 웹사이트의 root 폴더의 index.php에 모두 include되어 컴파일되는 방식으로 만들어져 있으므로 플러그인 개발자가 플러그인 개발시 최적화에 공을 들이지 않으면 하나의 플러그인이 웹서버 부하를 크게 발생시켜 버립니다. 또한 개별 웹 페이지가 실행될 때 마다 각 플러그인의 세팅 정보를 읽어 내어야 하는데 그 개별 정보 하나 하나가 wp-options라는 하나의 테이블 한 레코드에 저장되도록 구성되어 있으므로 많은 수의 Mysql Query를 발생시켜 버립니다. 대체적으로 워드프레스에서 한 페이지를 보여줄 때 80~200개 정도의 쿼리가 발생되는데 MySql에서 데이터를 가져오는데 이 숫자가 많을수롤 서버 부하는 증가되는 것입니다. 그래서 워드프레스의 속도는 사실 이 쿼리의 갯수를 최대한 적게하고, 쿼리 속도를 최대한 빠르게 만드는 것이 가장 중요한 관건이 되는 것입니다. 그래서 Mysql를 워드프레스에 적합하도록 튜닝하는 것이 중요한 이슈가 되지만 실제 그럴만한 기술를 가진 사람을 찾기란 힘든 상황입니다. 대체적으로 Php Version 5.x 대에서 Php 7으로 업그레이드 한 경우라도 만족스러운 결과가 나오지 않는 것은 근본적으로 워드프레스가 Mysql을 혹사시키고 있다고 예상되기 때문입니다. 지금까지 다보리에서 워드프레스로 개발된 웹사이트를 호스팅하면서 발견된 재미있는 사항을 서버 사양을 높힌다 하여도 한번 잘못 개발된 플러그인을 사용하고 있는 경우 특별한 개선책이 나오지 않았다는 것입니다. 따라서 가장 고질적인 문제인 서버 부하의 감소인 플러그인과 테마의 효율성을 확보하는 것에 다름아닌 것입니다.
일단 워드프레스 플러그인 문제가 어찌되었던 내 사이트의 문제가 해결되려면 일단 진단은 되어야 하므로 플러그인 속도 진단 플러그인을 소개합니다.
이 플러그인을 가만히 살펴보면 제작사가 GoDaddy라는 미국의 가장 큰 웹호스팅사로 되어 있습니다. 다른 곳도 아닌 웹호스팅사가 뭐가 답답해서 이런 것을 만들었을까요 ? 이것은 웹호스팅사가 워드프레스 호스팅 때문에 많은 골머리를 앓고 있다는 것을 명백히 보여주는 것입니다. 공통으로 사용하는 웹서버에 서버 부하를 심하게 가져가는 워드프레스 웹호스팅이 그렇게 환영받지 못한다는 것입니다. 실제 미국의 내노라하는 웹호스팅사가 워드프레스 전용 웹호스팅 상품을 공격적으로 영업하지 않는 이유가 이런 문제점이 있기 때문이 아닐까 하고 생각해 보았습니다.
sitegroundfastresponsetime
4. 워드프레스 캐시 플러그인을 통한 서버 부하 감소
실제 대부분의 워드프레스용 캐시를 사용해보았지만 뚜렷한 속도의 개선 효과를 보지는 못했습니다. 역으로 해킹에 대해 더 취약해지고 다른 플러그인과 충돌이 나는 경우가 종종 있었습니다. 하지만 유료로 제공되는 WP-Rocket 이라는 워드프레스 캐시 플러그인은 본사의 한 사용자 분의 주장이 워드프레스 캐시 플러그인 중에서 가장 빠르게 만들 수 있다고 주장하고 있습니다. 그분의 웹사이트에 추가하여 현행 사용 중이며 계속 모니터링 해볼 계획입니다.
wp-rocket-comparison
특징 중에 하나는 Cloudflare의 CCDN 기능과 아주 잘 연동되고 있는 것으로 확인되었습니다.
5. CDN을 통한 서버 부하의 감소
CDN (Contents Delivery Network) 서비스는 이미지나 동영상 같은 정적인 컨텐츠들을 서비스하는데, 서버가 있는 데이타 센터에서 서비스를 하게 되면, 네트워크 latency 때문에 성능이 저하가 되기 때문에, 여러 개의 데이타 센터에 서버를 넣고, 클라이언트가 다운로드드에 유리한 서버로 부터 컨텐츠를 제공하는 서비스입니다. 즉, 웹서버와 컨텐츠 서버를 분리하여 웹서버에서는 동적인 HTML 다운로드만 담장하고 CDN은 다운로드될 정적 컨텐츠만들 담당하여 부하 분산과 다운로드 속도를 감소시키는 방법입니다.
아마존의 경우에도 얼마전부터 Cloud Front라는 이름으로 CDN 서비스를 제공하는데, 아마존 인프라와 융합되어 몇 가지 특별한 기능들을 제공합니다.
CDN이 가져다 주는 일반적인 서버 부하 분산과 속도 증가 효과를 한번 살펴보면
(1) 웹서버의 부하 감경 효과
(2) 네트워크 트래픽의 분산 효과
(3) 웹캐쉬의 의한 다운로드 속도의 증가
(4) 이미지 최적화 ( Image Polishing) 울 통한 다운로드 속도 증가
CDN은 부하 분산에는 상당한 효과를 가져오지만 꽤 고가의 비용을 지속적으로 지불해야 한다는 단점도 있습니다.
L
top_img_05
6. 다보리에서 제공하는 워드프레스 속도 개선 서비스
A. 이전/완성 테스트 서비스
(1) 해킹/악성 코드 테스트
신규 웹사이트 제작 완료 또는 신규 웹호스팅 이전시에 웹사이트를 방역소(Quarantine) 웹사이트로 이전한 후 악성 코드 테스트를 1~3일간 하게 됩니다.
(2) 서버 부하 테스트
신규 웹사이트 제작 완료 또는 신규 웹호스팅 이전시에 웹사이트를 서버 부하와 Performance 테스트를 하게 됩니다.
(3) 다운로드 속도에 대한 보고서를 확인하여 사용자가 그에 따르는 적절한 대책을 강구하게 합니다.
(4) 조치가 완결된 후 정상 웹호스팅 서버로 한번 더 이전합니다.
B. Perfomance 테스트 서비스
방역소 웹사이트에서 이전된 워드프레스 웹사이트에 대하여
===1 단계===
(1) 웹사이트 다운로드 테스트
(2) 플러그인 부하 테스트.
(3) 테마 부하 테스트
===2단계===
(3) 다운로드 최적화 작업 – Image Polishing 가 Static File minify
(4) 플러그인 최적화 작업 – Plugins Optimazaion
===3단계===
(5) MySql 튜닝 – My Sql Tunning
위의 3단계를 거쳐서 워드프레스 웹사이트를 최고 속도로 운영할 수 있도록 준비하고 있습니다.
wsm_QS-login
워드프레스제작
위의 설명 과정에서 많는 워드프레스 사용자들이 Insight 를 발견했으리라 생각합니다. 사실 다보리 사이트는 1,2,3 단계의 최적화를 커쳐 현행 한국의 PG 결제를 사용 하고 있는 웹사이트 중 가장 빠른 웹사이츠로 만들었다고 자부할 수 있습니다. 좀 더 자세한 내용은 다보리 통합 플러그인과 워드프레스 속도에서 설명할 계획입니다.

[워드프레스] 회사명, 전화 번호 및 주소를 수정하는 방법

워드프레스 웹사이트의 관리자로 로그인 한 후
** 일반적으로 http://홈페이지주소/wp-login.php 입니다.

테마 타입A-도어닉스
(1) 홈페이지 푸터 주소 수저:
관리자 좌측 메뉴에서 [테마디자인]-[위젯]-[Footer Column 1]-[사용자 정의 HTML]에서 수정
(2) 회사소개 페이지의 주소 수정:
관리자 좌측 메뉴에서 [페이지]-[모든페이지]-[Company]에서 맨 하단에 오시는길의 내용 수정
* 수정한 후 반드시 저장 또는 업데이트을 클릭하여 변경을 완료해야 합니다. (어래쪽 또는 오른쪽애 버튼있슴)
테마 타입B
테마 타입C
테마 타입D
테마 타입E
테마 타입F

[워드프레스] 홈페이지에서 Cloudflare를 이용한 무료 SSL 사용하기

안녕하세요 ?
국내 유일의 무료 워드프레스 쇼핑몰 교육 모임인 “우커머스 교실”에서 Cloudflare(CF)를 이용한 무료 SSL을 워드프레스 웹사이트에 설치하는 방법을 공개합니다. CF는 세계 최대의 무료 네임서버를 제공하는 회사로써 자체적인 DDOS 공격 방어 시스템을 갖추고 있으며 웹보안 시스템과 아울러 CDN을 제공하고 있습니다. 즉 속도가 문제가 되지 않는 웹사이트에서는 무료 네임서버를 사용하고 속도를 빠르게 하려면 자, 그러면 먼저 CF에 계정을 만들고 진행하는 방법부터 시작하겠습니다. 일반적으로 CF사용 방법은 아래의 링크 페이지를 참조하시면 되겠습니다.
http://donghoon.me/98
이 후 제일 먼저 하셔야 하는 것은 CF의 네임서버를 이용하여 웹사이트를 해당 도메인으로 연결하는 이후에 아래와 같이 진행하여 주시기 바랍니다.
CF 사용 사이트에서 항상 확인해야 하는 것은 [Cache]메뉴의 [Developement Mode]메뉴입니다. 실제로 CF 는 내부적으로 항상 이미지 캐쉬를 사용하고 있으므로 개발시에는 Developement Mode를 [On]으로 바꾸어 주어야 웹사이트의 수정사항이 방문자에게 즉시 반영될 수 있습니다. 그것을 한꺼번에 강제하는 방법으로 [Purge Cache]로 하시면 참조하시면 됩니다. CF사용 중 가장 중요한 팁입니다.

Cloudflare 웹사이트 설정
Cloudfare는 flexible SSL 라는 무료SSL 기능을 제공합니다. 이것은 SSL 인증서가 웹서버에 실제로 설치되는 것은 아니지만 웹 서버 사용자와 Cloudflare사용자간의 접속을 안전을 보장함으로 실제 SSL 설치되는 것과 유사한 형태의 보안을 제공하는 것입니다. 상세한 설명은 아래와 같습니다.
클라우드플레어를 통하여 SSL을 동작하도록 구성하기 위하여 클라우드 플레어에 로그인하여 상단 아이콘 메뉴에서 [Crypto]를 클릭합니다. 그러면 SSL관련 메뉴가 보여지면서 왼쪽의 셀렉트 박스에 Off, Flexible, Full, Full Strict 라는 메뉴가 들어가 있습니다. Flexible을 선택하십시요.
선택 설명
Off 방문자와 Cloudflare 사이에 보증된 안전한 연결을 하지 않습니다. 이것은 사용자는 단지 HTTP로만 연결을 시도할 수 있는 것을 의미합니다. 만약 HTTPS로 연결시도를 하게되면 HTTP 301 Redirect 에러를 발생시킵니다.
Flexible 방문자와 Cloudflare 서버 사이에만 안전한 연결이 설정되고 CF(cloudflare)사이에는 안전 연결이 설정되지 않습니다. 즉, 웹서버에서 SSL인증서가 필요하지 않지만 방문자에게는 HTTPS가 설정된 것으로 보입니다.
Full 방문자와 CF, 그리고 CF와 웹서버 사이에 모두 안전한 연결이 보장됩니다. 이 설정이상은 무료로 서비스 되지는 않습니다.
Full HTTPS Full 기능에서 CF와 웹서버 간의 Authentification 기능이 추가됩니다. 이것은 대형 사이트에서만 사용되는 기능이므로 해당 사항이 없습니다.

WordPress CloudFlare Flexible SSL 플러그인 설치
다음 사항은 반드시 순서를 지켜서 진행해야 하며 순서가 바뀌거나 하면 사이트가 동작이 안되는 경우가 발생하므로 주의하여 주시기 바랍니다.
스텝 설명
1 맨먼저 워드프레스 관리자 모드에서 [설정]->[일반]->[웹주소]에서 https:// 의 주소로 수정, 저장합니다.
2 CloudFlare Flexible SSL WordPress plugin 을 설치하고 활성화합니다.
3 사이트를 http:// 대신 https:// 로 확인해봅니다.
4 이제는 모든 사용자에게 https:// 강제하기 위해서 CF로 로그인한 후 상단의 [Page Rules]메뉴로 들어가 [Create Page Rule]한 후 아래와 같이 현재 웹사이트 주소를 입력하고 저장합니다.
https:// 링크 문제가 발생할시의 수정 방법
https:// 의 문제가 발생할 경우
만약 도메인 주소가 http:// 에서 https:// 변경되어야 하므로 워드프레스는 Database내에 모든 절대 주소 링크를 가지고 있으므로 DATABASE SEARCH AND REPLACE 같은 사이트에서 플러그인을 다운로드 하여 주소 링크 일괄 수정 작업을 해주어야 합니다.
관련 사이트 : 관련 플러그인
한글 메뉴얼 사이트 : http://www.thewordcracker.com/intermediate/search-replace-db-%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-db%EC%97%90%EC%84%9C-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%9D%BC%EA%B4%84-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0/

[PHP유지보수]AWS-Aurora DB 를 이용하여 사이트 속도를 5배 빠르게 전환하기

안녕하세요 ?
국내 유일의 무료 워드프레스 쇼핑몰 교육 모임인 “우커머스 교실”에서 아마존 웹서비스 AWS에 제공하는 AURORA-DB과 연계한 웹 호스팅 서비스를 지원하게 되었습니다. Amazon Auroa-DB는 MySQL과 호환되는 관계형 데이터베이스 엔진으로 Oracle 등과 같은 정도의 상용 데이터 베이스의 성능과 가용성을 제공하는 동시에 오픈소스 데이터베이스가 가지는 효율성과 비용 절감 효과를 얻을 수 있는 획기적인 제품입니다. 즉 오라클의 10의 1 가격 이하로 MySQL 보다 최고 5배 정도 뛰어난 Access속도를 자랑하며 백업과 미러링까지 겸할 수 있는 기능 을 제공하고 있습니다. Aurora는 사용 무료이나 AWS에서 관계형 데이터 베이스 서버로만 제공된다는 점이 제한 사항입니다. 이것은 해당 웹호스팅이 AWS기반이여야만 한다는 전제입니다. 다보리에서는 모든 웹호스팅 기반이 AWS기반으로 구성되어 있으므로 AURORA DB를 아주 용이하게 확장하여 사용할 수 있으며 기존의 모든 고객의 웹사이트의 DB를 AURORA 기반으로 옮기고 있습니다. 그것은 한 웹페이지의 구성시 약 80~150개의 SQL 쿼리문을 실행해서 데이터를 가져와야할 워드프레스 웹사이트, 그리고 좀 더 무거워진 우커머스 기반에서는 웹사이트 속도 증대를 위해서 필수 불가결한 선택입니다.


AWS-RDS 설정에서 Aurora DB로 선택하여 설치시의 착안점
Amazon Relational Database Service(Amazon RDS)는 클라우드에서 관계형 데이터베이스를 더욱 쉽게 설정, 운영 및 확장할 수 있도록 지원하는 웹 서비스입니다. 이 서비스는 산업 표준 관계형 데이터베이스를 위한 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리합니다.
RDS를 추가로 설치하는 것은 이 블로그의 설명 범위를 벋어나므로 아마존 웹서비스에서 제공하는 메뉴얼이나 구글 검색으로 통하여 알아보시기 바랍니다. 일단 RDS 설치되면 Cluster Endpoint 라는 것이 제공됩니다. 이것은 데이터베이스와 웹서버를 동일하게 사용하는 경우의 localhost 라는 것에 대응하는 개념으로서 DB Server 와 Web Server 가 동일한 물리적 서버에서 제공되지 않으므로 DB 서버의 주소를 지정하여 주는 것을 말합니다. 예를 들면 wp-config.php 의 DB_HOST 항목의 value를 Cluster Endpoint 로 바꾸어 주므로써 DB 연결의 종점을 변동시키는 것입니다.

[root@xxx:1 parks]# vi wp-config.php
/** MySQL hostname */
define('DB_HOST', 'xxxx-aurora-new-cluster.cluster-xxxxxx.ap-northeast-3.rds.amazonaws.com');

즉, 워드프레스 웹사이트의 wp-config.php 에서 ‘DB_HOST’ 항목만 연결시켜주면 됩니다.
!주의 : 실제로는 FTP로 연결해서 변경된 wp-config.php를 업로드하거나 에디터로 직접 수정하시면 됩니다.

localhost 의 MySQL DB를 미리 백업하기
만약 localhost 의 MySQL 과 AWS-RDS의 Aurora-DB에 동일한 이름의 db명이 존재하면 DB 복원 관련된 모든 shell 프로그램은 Aurora-DB에 있는 것을 우선하게 됩니다. 즉 localhost에 해당 DB가 있더라고 백업이나 복원이 되지 않습니다. 따라서 Aurora-RDS 에 DB를 생성하기 전에 미리 localhost의 DB를 백업받아야 그것을 이용하여 Aurora-RDS에 DB 설치가 가능합니다.
phpMyAdmin 을 사용하여 Aurora DB 생성하고 관리하기
이제까지 My SQL DB 생성과 삭제를 Kloxo-MR 패널에서 하셨다면 Kloxo-MR 패널에서는 Aurora DB를 직접 연결해서 관리할 수 없으므로 부득히 Kloxo-MR에 연결되어 있는 phpMyAdmin으로 들어가서 직접 사용자와 DB를 생성, 변경 수정을 해주셔야 합니다. 따라서 가장 간단한 phpMyadmin 사용법을 알려드려야 합니다.
1. Kloxo-MR panel 에서 phpMyadmin으로 로그인
사용자 아이디와 패스워드는 이미 전달된 정보를 이용하시면 됩니다.
2. 오른쪽 상단의 [현재서버] 의 콤보박스를 클릭하여 하단의 aurora endpoint 로 DB 전환
 이때 [일반설정]의 서버 연결 콜레이션(언어)를 눈여겨 보십시요. 일반적으로 [utf8mb4_unicode_ci]로 되어 있습니다.
이것을 새로운 DB 생성시 적용되는 기본값으로 지정하시면 됩니다.
[외관설정]도 DB 생성시 동일하게 적용하시면 됩니다.
3. 사용자와 DB 동시 생성
[로그인 정보] 상단 메뉴의 [사용자] – New[사용자 추가]를 하면
사용자명: [사용자 ID]_db (예: mytest_db)
호스트 : 현재 호스트
암호생성 과 재입력: 기존의 암호를 사용하십시요.
* 만약 암호를 바꿀 계획이라면 *
[암호생성]버튼을 누르면 자동으로 생성되어 [암호]와 [재입력] 자리에 들어갑니다.
이때 암호는 저장해두었다가 반드 wp-config.php 수정시 해당 [DB_PASSWORD] 항목과 일치시키셔야 합니다.
[유저전용 데이터 베이터] 동명의 데이터베이스를 생성하고 모든 권한을 부여 : checked
Grant all privileges on wildcard name : checked
[전체적인 권한] : check 하지말고 그냥 둡니다.
* 최종적으로 맨 하단의 [실행] 버튼을 클릭하면 사용자와 DB가 동시에 생성됩니다.
4. 사용자와 DB 동시 삭제
[좌측상단-new] 클릭
상단 메뉴의 [사용자] – 사용자 리스트에서 해당 사용자를 클릭
[선택한 사용자를 삭제] 사용자명과 같은 이름의 데이터베이스를 삭제합니다: checked
최종적으로 맨 하단의 [실행] 버튼을 클릭하면 사용자와 DB가 동시에 삭제됩니다.
DB 삭제시는 사용자와 DB 내용이 삭제되므로 백업여부를 반드시 확인하고 실행하여 주시기 바랍니다. 한 번 삭제된 DB는 백업된 내용으로만 복구가 가능합니다.
이후는 기존의 MySQL 복원과 동일합니다.

[워드프레스]AWS-S3를 이용한 워드프레스 랜섬웨어 프리 자동 백업 시스템 구축

안녕하세요 ?
국내 유일의 무료 워드프레스 쇼핑몰 “우커머스 교실”에서 사용하고 있는, 아마존 웹 서비스 AWS 의 S3의 백업 기능을 이용하여 랜섬웨어 프리형태의 워드프레스 백업 시스템 구현의 실 구축 사례를 살펴보도록 하겠습니다.
지난 6월 국내 중견 웹호스팅사인 (주)인터넷나야나에서 랜섬웨어에 공격당하여 전체가 서버가 다운되고 암호화된 화일을 복원하기위해 해커집단에게 거액의 몸값을 지불한 일이 있었습니다. 상세 내용을 살펴보면 랜섬웨어에 현재 러닝중인 전체 서버 전체가 감염되기도하였지만 해당 서버의 백업을 담당하고 있는 서버도 같이 2차 감염되어 백업된 스냅샷을 이용한 웹사이트를 불완전한 복원조차 할 수 없는 상황에 이르런 것입니다. 즉, 랜섬웨어 감염 이전에 백업해두었던 백업 서버의 화일까지도 2차 감염이 되어서 서비스 중인 서버 DB를 다른 서버에서 복원조차 할 수 없는 상태에 이르게 된 것입니다. 결국 17억원이란 거액의 몸값을 지불한 후 백업 화일의 암호화를 풀수 있었던 결과는 상황의 심각성을 잘 말해주고 있습니다. 그래서 다보리에서는 랜섬웨어에 의한 백업 서버의 2차 감염이 불가능하도록 하기 위한 방법으로 S3를 이용한 백업 서버 시스템을 구축해보았습니다.

goofys를 이용해 AWS - S3를 이용한 백업 스토리지 구축
S3 는 AWS 제품 시리즈중 가장 유용한 서비스중의 하나인데 가장 빈번하게 쓰이는 형태가 백업 시스템과 CDN 서비스를 위하여 구축되는 경우입니다. 오늘은 S3를 이용한 백업 파일 시스템으로 활용하는 것이 주목적입니다. 이 해결책으로 쓰이는 백업 패키지중의 하나가 FUSE 기반의 s3fs 입니다. 하지만 이 3 sfs의 가장 큰 이슈가 “너무 느리다”라는 단점이 있습니다. 그래서 이것보다는 성능이 좋다는 goofys 패키지를 이용하여 백업 화일 시스템을 구축하였습니다. goofys 또한 오픈소스는 아니며 aws에서 정식으로 지원하는 패키지는 아닙니다만 사용해본 결과 s3fs 보다는 훨씬 속도가 빨라서 실행 속도에 큰 불만은 없었습니다. goofys 설치와 운용은 이 블로그의 목적에 너무 벗어나므로 해당 설명을 원하시는 분은 개별적으로 연락하시기 바랍니다.
일별/월별 백업 시스템 스크립트 개발
화일시스템을 구축한 이후 일별로 백업하면서 백업 공간으로 절약하기 위해 최근 일주일 단위의 백업화일만 저장 할 수 있도록 백업 시스템을 정하였습니다. 그리고 혹시라도 사용자의 관리 소홀로 인하여 발생할 수 있는 웹사이트 – 소규모의 기업 웹사이트는 사용자 가 1주일 동안 이상 여부를 점검하지 않는 경우도 많으므로 – 의 복원의 범위를 늘리기 위하여 각 월별 백업을 12개월치를 보관할 수 있도록 하였습니다.
정리해보면 다보리의 웹사이트 백업 시스템은 매일 새벽 2시경에 자동 백업을 하며 이것을 최근 일주일 7일치의 백업을 보관하고 있습니다. 그리고 추가적인 문제를 해결하기 위하여 매월초 백업을 받아서 12개월 간의 보조 백업을 하고 있습니다. 이것은 사용자의 의지와 사용 방법과 무관하게 야간에 자동으로 백업을 받게 되므로 문제가 최소화되고 있습니다.

이제 문제는 어떻게 백업이 받아진 화일 시스템을 랜섬웨어로 부터 방어하느냐 입니다.
다보리에서는 각 개별 S3를 각각분리해서 저장하고 백업과 복원 당시에만 화일 시스템을 복원하는 것으로 이 문제를 해결하였습니다. 즉 랜섬웨어 자체가 화일 시스템으로 마운트 되지 않을 경우에는 어떤 경우라고 백업 화일 시스템을 감염시킬 수 없다는 것을 전제로 하여 백업 시스템을 설계하였습니다.
백업 시스템의 복원 방법
[root@xxx:1 parks]# seedaily [사용자 ID] <<현재 월별 백업 계정의 백업 현황 보기>>
-rw-r--r-- 1 root root 275409 Jul 10 17:28 /xxx/yyy/mytest-170710.sql.gz
-rw-r--r-- 1 root root  35442 Jul 10 17:28 /xxx/yyy/mytest-170710.tar.gz
-rw-r--r-- 1 root root 275408 Jul 11 02:02 /xxx/yyy/mytest-170711.sql.gz
-rw-r--r-- 1 root root  35442 Jul 11 02:02 /xxx/yyy/mytest-170711.tar.gz
-rw-r--r-- 1 root root 275408 Jul 12 02:02 /xxx/yyy/mytest-170712.sql.gz
-rw-r--r-- 1 root root  35442 Jul 12 02:02 /xxx/yyy/mytest-170712.tar.gz
[root@xxx:1 parks]# restoredaily  [사용자 ID]  yymmdd   <<백업된 화일을 가져옴>>
Backup files are restored at  /home/mytest/backups
[root@xxx:1 mytest]# cdz mytest
[root@xxx:1 mytest]# cd backups
[root@xxx:1 backups]# l
total 1884
drwxr-xr-x 2 root   root      4096 Jul 12 18:29 .
drwxr-x--x 3 mytest apache    4096 Jul 12 18:29 ..
-rw-r--r-- 1 mytest apache 1864693 Jul 12 18:29 mytest-170711.sql
-rw-r--r-- 1 mytest apache   51200 Jul 12 18:29 mytest-170711.tar
[root@xxx:1 backups]#

이후는 아래와 같은 웹사이트 복원 절차로 진행하시면 됩니다.

[워드프레스] 웹호스팅에서 Shell 명령어로 데이터와 DB 백업과 복원하기


문의하기견적의뢰지금 연락 주십시요!