전체 글 22

고도몰5 에서 상품별로 배송비를 별도 책정하는 방법

현재 사용자가 상품을 직접 등록하는 오픈마켓 서비스를 고도몰5 Pro 로 개발중입니다. 사용자 직접 중고물품을 등록하다 보니, 상품별로 배송비가 달라질수 밖에 없습니다. 고정배송비로 동일하게 적용하는게 어렵습니다. 고도몰5 은 잘(?) 설계된 DB구조를 가지고 있기 때문에 특정 값 하나라도 임으로 입력하게 되면(야매기술x) 다른 기능에서 오류가 발생될수 있습니다. 최대한 고도몰5 이 원래 설계한 방식을 적용하는게 좋습니다. 여러가지 방법을 고민해봤지만, 상품별로 배송비를 별도로 책정하기 위해 다음과 같이 처리할 예정입니다. - 사용자의 배송비는 100원 단위로 입력 - 사용자가 입력하는 배송비는 다양하지만, 보통 한번 입력한 값 범위에서 변경되는 경우는 많지 않음 - 사용자가 직접 입력함으로 기본(def..

PHP/고도몰 2023.04.06

고도몰5 사용자 상품 등록 기능 개발시 주의점

현재 고도몰5Pro 를 커스텀하여 구매자 - 판매자 형태의 쇼핑몰을 개발중입니다. 고도몰은 기본적으로 공급사(무료사용)기능이 있어, 이를 수정하면 됩니다. 문제는 공급사 관련기능이 관리자 페이지에 있는것입니다. 가장 먼저 개발하는것은 일반 사용자가 공급사 기능을 사용할수 있도록 공급사로 전환시키는 작업입니다. 이 기능은 사용자 순번과, 공급사의 순번 정보, 공급사 관리자 테이블 등에 필드를 추가하고 기능을 추가함으로써 구현이 가능합니다. 최근 셀러(공급사)가 상품 등록을 처리하던중에 , 사용자가 상품 주문시 셀러(공급사) 등록한 상품의 재고가 차감되지 않는 상태로 남아있는 버그가 발견되었습니다. 문제 해결을 위해 코드를 수백번(ㅠ.ㅠ) 실행 시켜본 결과 다음과 같은 문제임을 확인하였습니다. 옵션 정보가 ..

PHP/고도몰 2023.03.14

AI vs 인간 - 일부 기업, ChatGPT로 직원 대체 시작

ChatGPT를 사용하는 기업들은 인공지능 도구를 이용하여 비용을 절약하고, Fortune 보도에 따르면 48%의 기업이 50,000달러 이상, 11%의 기업이 100,000달러 이상을 절약했다. 마이크로소프트 소유의 ChatGPT는 일부 기업에서 인공지능 챗봇을 적용해 직원이 해왔던 일을 수행하도록 하면서 인간을 대체하기 시작했다. 이를 통해 수천 달러를 절약하고 있다. ChatGPT를 사용하는 기업들은 인공지능 도구를 이용하여 비용을 절약했으며, Fortune 보도에 따르면 48%의 기업이 50,000달러 이상, 11%의 기업이 100,000달러 이상을 절약했다. 구직자 어드바이스 플랫폼인 Resumebuilder.com은 ChatGPT를 사용하거나 사용할 계획이 있는 1,000명의 비즈니스 리더들을..

고도몰5 Pro DBTableField 자동 생성

고도몰5 기능을 확장하다보면, 테이블을 추가해야 하는 경우가 생기는데, \Component\Database\DBTableField.php 파일에 테이블 스키마를 구성해야 한다. 테이블 컬럼 형태에 맞춰서 $arrField 를 구성해야 하는데 이게 은근 귀찮은 작업이고, 실수하면 사이드 이펙트를 일으키고, 해당 오류를 찾기가 어렵다. 고도몰의 phpmyadmin 이 information_schema 를 참조할수 있도록 하고 있고, 테이블 스키마 정의는 infomation_schema db에 기록되어 있다. 이를 이용하여, 쿼리로 테이블에 대한 $arrField 생성하도록 해보았다. set GROUP_CONCAT_MAX_LEN = 10000000; select concat('$arrField = [', gr..

PHP/고도몰 2023.01.14

고도몰5 에서 쿼리 로그 디버깅

고도몰5 특유의 폐쇄성으로 내부 코드를 모두 확인할수 없습니다. 고도몰5 소스를 분석하다보면, 은 CI3.0 + Templete_ 를 커스텀하여 개발한것으로 추정됩니다.(가비아 퍼스트몰도 동일) 분명 CI3.0 엔 디버깅을 위한 로깅 기능이 있는데, 고도몰5 개발시에 이를 활용할수 있다면, 많은 잇점이 있겠지마, 고도몰5 에선 애초에 이 기능이 모두 막혀 있거나, 소스상에 노출되어 있지 않아 사용이 불가능합니다. 그중 제일 짜증나는게 쿼리 로그입니다. 고도몰5는 커머스 솔루션의 특성상 테이블이 많고, 컬럼수도 많고, 테이블구조와 의존관계가 복잡합니다. (테이블과 테이블 컬럼에 주석을 달아둔건 정말 칭찬합니다. 빠짐없이 들어간거 개발팀에 감사드립니다.) 실행된 쿼리로그만 추적할수 있어도 기능 개선과 추적이..

PHP/고도몰 2023.01.11

cpanel 에서 let's encryption 인증서 적용

pem 키를 crt 와 key 파일로 변환후 입력하면 동작함. cpanel dns 를 지정하지 않고, 웹서비스용 A 레코드만 지정하여 호스팅을 생성한 경우에 AutoSSL 을 사용할수 없음. 이 경우, dns 지정없이 계정을 생성해야 하는데, dns를 지정하지 않았음으로 AutoSSL로 생성된 인증서는 유효한 인증서로 인식이 안되어, 브라우저에 경고 표시가 뜹니다. 이를 해결하기 위해 외부 인증서를 구매하여 입력하거나, 무료인증서(Let's Encrypt)를 사용해야함. 외부 인증서 정보를 직접 입력.(key는 비밀번호를 제거하고 생성해야함. 웹서버 자동실행이 안될수 있음. 인증서 구매업체에 요청하면, 비밀번호를 제거한 key를 생성해준다.) Let's Encrypt 의 경우 pem 파일이 생성되었다면,..

서버/CPanel 2023.01.06

고도몰5Pro 카카오톡 공유(kakao) 오류 ErrorCode(4002)

고도몰 메인의 위젯은 사용자 추적관리를 위한 mtn 이라는 파라메타를 url 에 추가함 (예시. http://godomaill.com.com/goods/goods_view.php?goodsNo=100&mtn=12월정기^세일) mtn 파라메타가 위젯에 대한 제목이라서 특수문자가 들어갈수 있음. 카카오톡 공유시 mtn 파라메타의 특수문자로 인해 카카오톡 공유 오류 발생 ErrorCode(4002) 이 오류는 도메인 불일치 오류로 카카오 개발자 센터에서 설정한 값이 틀린경우 보통 발생함. 도메인 불일치 뿐만 아니라 공유 url에 특수문자가 들어가는 경우에도 발생할수 있는것임. (설명좀 적어두지..-_-) ps) OrderViewController 를 오버라이딩해서 mtn 파라메타를 정규식으로 제거해서 해결함...

PHP/고도몰 2022.08.02

phpstorm 에서 aws rds 접속시 오류

PHPStrom 에서 aws rds 를 ssh tunnel 로 연결할려니 아래와 같은 오류가 발생하였습니다. 기존에 항상 이 방식으로 접속을 했던 터라, 이런 접속 오류는 당황스럽네요. jdbc 드라이버도 바꿔보고, mysql, mariadb 여러가지로 접속 시도를 해보았지만, 아래와 같이 오류가 계속 발생. Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. No appropriate protocol (protocol is disabled or cipher suites are ..

개발툴/PHPStrom 2022.06.10