국내에서 구할 수 없는 제품이나 더 저렴한 제품을 찾기 위해 해외직구를 많이 한다.


아이허브는 한글화가 잘 되있고 구매 방법도 어렵지 않아 많은 사람들이 이용하고 있으며


주로 영양제, 건강보조식품 등을 판매한다.


아이허브 사이트 바로가기




아이허브를 이용하기 위해서는 우선 로그인을 해야한다.



아이허브 아이디가 없으면 회원가입을 해야하며 구글, 페이스북과 같은 소셜미디어 계정으로 로그인이 가능하다.


필자는 따로 아이허브 아이디를 만들지 않고 구글 아이디를 사용한다.



수령 국가, 사용 언어, 사용 통화는 자유롭게 변경할 수 있다.


수령 국가 선택 : 대한민국

사용 언어 선택 : 한국어

사용 통화 : USD 또는 KRW


사용 통화를 KRW로 선택하면 가격이 원화로 표시되는 장점이 있지만 결제시 추가수수료가 발생할 수 있다.


반면 USD로 선택하면 가격이 달러로 표현되고 결제 또한 달러로 되어 수수료가 발생하지 않는다는 장점이 있다.


필자는 USD로 결제를 하려하지만 깜빡하고 KRW로 결제하여 항상 수수료를 내고 있다.


수수료는 1000원정도 한다.




간단하게 예시를 보여주기 위해 비타민c를 검색했다. 그러나 영어로 표기된 제품들이 많아서 vitamin C 와 같이 영어로 검색하는 것이 더 좋다.


( 좌 : USD , 우 : KRW )


원하는 제품들 찾으면 장바구니에 담아준다.



장바구니로 이동하면 현재 담아둔 제품들을 확인할 수 있다.


예상 배송료를 계산 할 수 있고 프로모션 코드 또는 리워드 코드를 입력하는 곳에


ABH3406 을 입력하면 5% 할인을 받을 수 있다.



배송 정보와 결제 정보가 정확하게 입력됬는지 확인하고 제품까지 확인한 후 주문을 해주면 된다.


아이허브에서 주문을 하면 해외에서 배송되는 것이기 때문에 국내 쇼핑몰에 비해선 배송속도가 느리지만 아마존, 이베이와 비교했을 때 비교적 빨리 배송된다.


할인 코드 : ABH3406



Android Studio (안드로이드 스튜디오) 에서 레이아웃을 짜려고 보니 아래 사진과 같이 TextView가 있음에도 나타나지 않는 현상이 발생했다.


이런 경우 디자인이 안보이기 때문에 작업을 수행할 수 없다.


버전 : Android Studio 3.1.3




어디서 에러가 났는지 확인해보니


Render problem


Failed to load AppCompat ActionBar with unknown error.





[ 해결 방법 ]


app > bulid.gradle


수정 전

compileSdkVersion 28

targetSdkVersion 28

implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'


수정 후

compileSdkVersion 27

targetSdkVersion 27

implementation 'com.android.support:appcompat-v7:27.0.2'


소스를 보면 알겠지만 Sdk 버전을 낮춰주는 것이다.






소스를 수정한 뒤, File > Invalidate Caches / Restart 에서 Invalidate and Restart 를 선택해주면


아래와 같이 정상적으로 작동하는 것을 알 수 있다.




여러 가지 시도를 해본 결과 포스팅에서 설명한 방법으로 해결했다.


혹시 더 정확한 방법을 아신다면 댓글 바랍니다.


XpressEngine (eXpress+press+Engine, 구 제로보드 XE)

: LGPL 기반 오픈 프로젝트로, 제로보드 4나 zb5와는 별개로 완전히 새로 개발한 웹 프레임워크이다.


제로보드의 다음 버전이라고 생각하면 될 것 같고 우리나라의 대표적인 CMS 툴 중 하나이다.

 XE 외에 CMS툴은 그누보드와 워드프레스가 있다.


이번에 포스팅할 내용은 XE의 설치방법이며 FTP 서버를 활용하겠다.


https://www.xpressengine.com/


먼저 XE 홈페이지에 들어가서 다운로드 메뉴를 클릭한다.



그리고 XE Core를 다운로드해준다. XE Core는 XE사이트의 기본 틀이다.




설치가 완료되면 압축을 풀면 되고 이렇게 여러 파일들이 XE 폴더에 있는 것을 볼 수 있다.





그리고 자신의 FTP 서버에 파일들을 올려준 뒤 다운받은 링크로 이동하면 아래와 같은 설치 화면이 나타난다.






필자는 FTP 정보 입력이 이미 되있어서인지 생략됬는데 해당 페이지가 보이면 정보를 입력해주면 되며


아래의 화면에서는 자신이 사용하면 DB를 선택하면 되는데 필자는 mysql을 사용했다.



DB에 대한 정보 입력을 하면 되는데 이때 호스팅을 한 사이트에서 정보를 확인해가며 입력한다.


DB 호스트네임은 모르겠다면 localhost를 사용하면 될 것이다.


DB Port와 테이블 접두사는 그대로 사용되도 된다.



이메일 주소, 비밀번호 등은 이번에 새로 만든다는 느낌으로 만들어주면 된다.



설치가 정상적으로 완료되면 아래와 같이 화면이 나타날 것이다.




그누보드를 설치 할 때 아래의 과정을 거쳐야한다.




그리고 가끔 이런 문구를 만날 수 있다.



Warning: mysqli_connect(): (HY000/1045): Access denied for user '(아이디)'@'localhost' (using password: YES) in (경로)/lib/common.lib.php on line 1435

Connect Error: Access denied for user '(아이디)'@'localhost' (using password: YES) 


mysqli_connect(): (28000/1045) 이든 mysqli_connect(): (HY000/1045) 이든 대부분의 경우 DB의 아이디와 비밀번호가 틀렸을 때 이 페이지를 볼 수 있다.


직접 서버를 만들었다면 DB 아이디를 다시 한번 확인해줘야 하며 웹호스팅의 경우에는 호스팅한 업체(사이트)에서 다시 한번 확인해야한다.


(닷홈)


이처럼 호스팅 업체에서 사이트의 DB정보를 볼 수 있다.


간혹 웹호스팅을 신청하고 생성할 때 DB 설치를 하지 않는 곳도 있는데 이런 경우에는 DB를 새로 만들어 줘야한다.


(호스팅어)


+ 가비아(Gabia)를 사용할 경우 조금 다르다.



이처럼 host 와 DB 앞에 db를 추가해줘야 한다. 


ex)

Host : db.abc.com

User : aaa

Password : pass123

DB : dbaaa



앞서 관계형 dbms의 종류에 대해 포스팅한 적이 있다.


 관계형 DBMS의 대표적인 4가지 프로그램

http://wishml.tistory.com/33?category=713871 



이번에 다룰 프로그램은 오픈소스의 장점을 가진 MySQL 이다.



MySQL 다운로드 하기



먼저 아래 링크로 이동한다.


https://dev.mysql.com/downloads/windows/installer/




특별한 사항이 없으면 계속 NEXT 버튼을 눌러주면 된다.







아래 사진의 화면에서는 필요한 프로그램을 다운 받으면 되는데 굳이 할 필요가 없다면 넘어가도 좋다.





여기서부터 중요하다.


관리자 계정의 패스워드를 설정해야 하며


추가로 Add User를 선택하여


root계정 외에 사용자 아이디를 추가할 수 있다.


실제 애플리케이션에서 root 계정으로 접속하기보단 추가로 만든 사용자 아이디에 적절한 권한을 부여하여 접속할 것을 추천한다.


(귀찮으면 root 를 사용해도 된다 ㅎ)



마지막으로 설정한 비밀번호를 입력하면 실행될 것이다.




+


사실 처음에 설치를 할 때는 몇몇 오류가 발생했다. 


MySQL Server 의 설치를 실패하는 것이었는데


프로그램을 삭제도 해보고 레지스트리 정리도 해보았으나 결국 안되었고 이것저것 만지다보니 해결했다.


아래는 문제의 오류 사진이다.


이처럼 설치도 안되고 무시하고 넘어가니 설치 과정에서 계속 오류가 발생한다.


이 상태로 접속하면 연결(connect)이 되지 않고 스키마도 생성이 안된다.


설치가 안되는 이유를 찾아보니 윈도우의 bit 문제라는 말이 있었는데


이제부턴 필자가 해결한 방법을 알아보자.



MySQL server failed 오류 해결 방법



앞서 다운받은 installer 를 다시 실행시키면 아래와 같을 것이다.


추가로 프로그램들을 다운받을 수 있는 것인데 add를 선택한다.



그리고 설치하지 못한 MySQL Servers로 들어가서 자신에게 맞는 것을 선택하여 설치한다.


자신의 windows운영체제가 32bit는 X86, 64bit는 x64 이며 필자는 이미 다운 받아서 x64비트가 없는 모습이다.






여기서 다시 오류가 발생한다면 아래의 파일을 다운 받고 다시 해보도록 한다.




vcredist_x64.exe


(이미 다운 받아서 '복구/ 제거/ 닫기' 가 보인다.)


이것은 오랜 검색 끝에 어떤 사이트에서 발견한 것인데, 필자는 이것을 먼저 설치하고 위의 과정대로 했다.


이제 다시 설치해보면 이 글의 과정처럼 설치가 잘 될 것이다.

'Web development > JSP' 카테고리의 다른 글

Apache Tomcat 설치 및 환경설정  (0) 2017.12.05
Eclipse 다운로드 및 설정  (0) 2017.12.05
jdk 설치 및 환경변수 설정 방법  (0) 2017.12.03

그누보드를 사용하면서 alert 경고창으로 이런 문구를 본 적이 있을 것이다.



'정상적으로 로그인하여 접근하시기 바랍니다.'


이것은 그누보드의 관리자 화면에 접속할 때 몇몇 사람들에게 생기는 현상인데 처음 접한 사람이라면 당황할 수 밖에 없을 것이다.


뿐만 아니라 관리자 화면에 접속하고서도 메뉴 등 버튼을 눌렀을 때 로그아웃 되는 현상이 발생할 수 있다.


이것에는 여러가지 이유가 있을 수 있으나 필자가 해결한 방법은 아래와 같다.


우선 필자는 처음에 데스크톱으로 ftp를 활용하여 서버에 그누보드를 설치했는데 다른 PC와 노트북으로 사이트에 접속하여 adm페이지, 관리자화면에 접속했을 때 오류가 발생하였다.


'정상적으로 로그인하여 접근하시기 바랍니다' 라는 경고창의 소스는 admin.lib.php 파일에서 찾을 수 있는데 이를 통하여 오류의 발생 원인 또한 이 파일에 있다는 것을 알 수 있다. 참고로 admin.lib.php 파일은 gnuboard/adm 폴더에 있다.


문제가 발생하는 원인을 추측해보자면 누군가가 해킹 등 나쁜 목적으로 관리자 페이지에 접근하는 것을 막기 위해 관리자 pc와 정보가 다를 때 접근을 막는 것이 이러한 문제를 일으키는 것 같다.


해결 방법

: 오류의 원인이 되는 소스를 삭제, 변경하거나 주석처리한다.



그누보드4

admin.lib.php (변경 전)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

$admin_key = md5($member[mb_datetime] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);

admin.lib.php  (변경 후)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

// $admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']); 

$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . preg_replace('/; ; NCLIENT50\S*\)/',')',$_SERVER['HTTP_USER_AGENT']));

//출처 5.0.30 버전 보안툴로 인한 문제 해결 (정상적으로 로그인하여 접근하시기 바랍니다.)|작성자 질풍이


 그누보드5

 admin.lib.php (변경 전)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);

if (get_session('ss_mb_key') !== $admin_key) {


    session_destroy();


    include_once(G5_LIB_PATH.'/mailer.lib.php');

    // 메일 알림

    mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n'.G5_URL, 0);


    alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');

}

 admin.lib.php  (변경 후)

 // 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.

/*$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);

if (get_session('ss_mb_key') !== $admin_key) {


    session_destroy();


    include_once(G5_LIB_PATH.'/mailer.lib.php');

    // 메일 알림

    mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n'.G5_URL, 0);


    alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');

}*/


자바는 활용 영역에 따라 일반 데스크톱 환경을 지원하기 위한 Java SE(Standard Edition, J2SE)와 기업형 애플리케이션 개발을 지원하기 위한 Java EE(Enterprise Edition, J2EE)로 나뉜다. 대규모 자바 웹 프로그램을 개발하기 위해서는 두 가지 모두 필요하지만 대부분의 JSP 관련 APT와 실행환경은 톰캣에 포함되어 있기 때문에 연습용으로는 Java SE만 설치해도 될 것 같다.


Java JDK(Java Development Kit)는 자바 실행환경과 컴파일 도구를 포함한 개발자 도구로써, 자바 소스를 클래스 파일로 컴파일하는 컴파일러 및 디버거, JavaDoc 등 개발에 필요한 유틸리티로 구성되어 있다. 그리고 자바를 실행할 때 기반이 되는 자바 가상머신(JVM, Java Vitual Machine)과 기본적으로 제공되는 다양한 클래스 집합인 API, 자바 프로그램을 실행하기 위한 환경인 JRE(Java Runtime Environment)도 포함되어 있다.




JDK 설치하는 방법


http://www.oracle.com/technetwork/java/javase/downloads/index.html 에 접속하여 JDK를 선택한다.



그리고 Accept License Agreement를 선택해야한다.



자신의 컴퓨터 운영체제에 맞는 것을 다운받는다. 필자는 Windows 운영체제 이기 때문에 Windows 버전을 다운받겠다.



그리고 설치한다. 설치할땐 계속 'next' 버튼을 눌러주면 되며 이후에 환경 설정에 필요하기 때문에 파일 위치를 기억해두는게 좋다.



다음은 환경변수를 설정할 차례이다.


이때 환경 변수를 사용 하는 이유는 '컴퓨터의 어떤 경로에서라도 Java 프로그램을 접근시키게 만들기 위해서' 이다.


내 컴퓨터 -> 속성 -> 고급 시스템 설정 -> 고급 -> 환경변수




그리고 아래 순서대로 해준다.


1. 새로 만들기

2. 새 시스템 변수 이름 설정 (JAVA_HOME)

3. 디렉터리 찾아보기

4. 앞에서 기억해둔 jdk 폴더 찾고 확인




Path 선택 후 편집


새로 만들기 -> %JAVA_HOME%\bin 입력



마지막으로 확인 버튼을 누르면 jdk 환경변수 설정이 끝난다.




제대로 설정이 됬는지 확인하기 위해서 cmd 명령 프롬프트를 사용해본다.


javac 를 입력했을 때 아래와 같다면 제대로 된 것이다.



혹시나 위와 같이 되지 않는다면 jdk 경로를 다시 한번 확인하거나 path안에 저장한 JAVA_HOME을 맨 위로 올려준다.






html, css, js 파일 등 웹 서버에 파일을 올렸는데 적용이 안된 경험을 한 적이 있는가?


이런 경우에 패치된 내용을 확인할 수도 없고 원인을 모른다면 정말 답답한 상황이 찾아온다.


이러한 현상이 일어나는 이유는 방문한 페이지를 다시 접속할 때 더 빠르게 보여주기 위해서 웹 브라우저에서 웹 캐시(문서, 그림, 파일 등)를 저장하기 때문이다.


이러한 기능 덕분에 우리는 더 빠른 페이지 로딩이 가능하지만 때로는 오래된 정보를 보여주는 경우가 생기기도 한다.


앞서 말한 새로운 파일이 적용이 안된 이유도 이것 때문이다.


그래서 우리는 웹 브라우저에서 캐시를 무시하거나 지우는 방법에 대해 알아야 한다.


OS와 브라우저에 맞는 방법을 찾아 여러 가지 방법들을 해보면 좋을 것 같다.


[캐시 무시하기]


1. 인터넷 익스플로러


Ctrl + F5(새로 고침)


2_1. 구글 크롬(window)


Ctrl + F5(새로 고침)


Shift + F5(새로 고침)


2_2. 구글 크롬(mac)


Cmd + Shift + R


2_3. 리눅스


Ctrl + F5


3_1. 사파리(버전 4 이상)


Shift + 새로 고침


3_2. 사파리(버전 3 이하)


Cmd +  R


4. 오페라


Ctrl + F5(새로 고침)


Shift + F5(새로 고침)


5. 캉커러


F5(새로 고침)


[캐시 지우기 & 설정 끄기]


1. 인터넷 익스플로러


* 캐시 지우기


1. Ctrl + Shift + Del

2. '임시 인터넷 파일 및 웹 사이트' 체크

3. '삭제' 버튼


* 캐시 설정 바꾸기


도구 -> 인터넷 옵션 -> 검색 기록 -> 설정 -> 캐시 및 데이터베이스 ->'웹 사이트 및 데이터베이스 허용' 에서 변경


2. 구글 크롬


* 캐시 지우기


1. Ctrl + Shitf + Del

2. '다음 항목 삭제' 옆 목록에서 '전체' 선택

3. '캐시 삭제' -> '인터넷 사용정보 삭제'


3. 파이어폭스


* 캐시 지우기


1. Ctrl + Shift + Del

2. '삭제할 기간' -> '전체' 선택

3. '캐시' 선택 -> '지금 삭제' 클릭


* 캐시 설정 바꾸기


설정 -> 고급 -> 네트워크 -> '자동 캐시 크기 관리' 체크 후 '제한 용량' 값 '0' 으로 변경

+ Recent posts