이전다음 Postgresql Postgresql EXTENSION ex) pg_stat_statements, pg_trgm 더보기 Ubuntu Ubuntu Server Setting 더보기 Postgresql Ubuntu Postgresql Install 더보기 Ubuntu Ubuntu Server Wifi 더보기 Ubuntu Ubuntu Server 펌웨어 업데이트 더보기 ETC 맥OS 파인더 미션컨트롤 뷰 더보기 Redis Redis user 정보를 저장하기 더보기 Kotlin Redis Sentinel 적용 더보기 Redis Redis Sentinel 세팅 더보기 K8S K8S 인증서 갱신 오류 해소 더보기 Main Postgresql Postgresql EXTENSION ex) pg_stat_statements, pg_trgm OSUbuntu 24.04 ServerPostgresql : 16.8pg_stat_statements# pg_stat_statements은 설정파일에서 등록해줘야한다.sudo vi /etc/postgresql/16/main/postgresql.confshared_preload_libraries = 'pg_stat_statements'sudo systemctl restart postgresql# database에 적용CREATE EXTENSION IF NOT EXISTS pg_stat_statements;# 확인SHOW shared_preload_libraries;SELECT * FROM pg_stat_statements;pg_trgmCREATE EXTENSION IF NOT EXISTS pg_trgm;D.. Ubuntu Ubuntu Server Setting OSUbuntu 24.04 ServerUseful더보기# 패키지 최신화sudo apt update# 업데이트 가능 목록 확인sudo apt list --upgradable# 실제 업데이트sudo apt upgrade -y# 의존성을 체크, 일부 패키지를 추가 설치, 불필요한 패키지 제거sudo apt dist-upgrade# 더 이상 필요하지 않은 패키지 삭제sudo apt autoremove && sudo apt clean# ifconfig 사용가능sudo apt install net-tools# 사용자 추가sudo adduser ~# 그룹 추가sudo usermod -aG sudo ~# 비밀번호 변경sudo passwd ~Package더보기# 패키지 최신화sudo apt update# 업데이트 가능 .. Postgresql Ubuntu Postgresql Install OSUbuntu 24.04 ServerPostgresql : 16.8설치sudo apt install postgresql postgresql-contrib -ypostgresql-contrib?contrib(contributed modules) : 추가적인 기능 확장 모듈을 포함하는 패키지, 고급 기능이나 확장이 필요할 경우 유용pg_stat_statements → SQL 실행 통계를 수집하는 확장 기능hstore → JSON-like key-value 저장을 지원하는 기능uuid-ossp → UUID 생성 기능 제공pgcrypto → 암호화 및 해싱 함수 제공fuzzystrmatch → 문자열 유사도 비교 기능sudo systemctl enable postgresqlsudo systemctl statu.. Ubuntu Ubuntu Server Wifi # 제일 간단ifconfig {interfaceName} up/down# 관리 편의성 패키지 설치sudo apt install network-manager# 네트워크 인터페이스의 이름을 확인nmcli d# Wifi 켜기nmcli r wifi on# Wifi 끄기nmcli r wifi off# Wifi 연결nmcli d wifi connect password Ubuntu Ubuntu Server 펌웨어 업데이트 Linux Ubuntu 기반으로 작성하였습니다. OSUbuntu 24.04 Server로그인시 출력되는 메세지 확인 시 펌웨어 관련 문구 발견 가능 # 펌웨어 업데이트 가능 여부 확인# 시스템에 설치된 펌웨어와 업데이트 가능한 펌웨어 장치 목록이 출력fwupdmgr get-devices# 만약 위 명령어를 찾을 수 없다면sudo apt install fwupd# 사용 가능한 펌웨어 업데이트를 확인fwupdmgr refresh# No updatable devices 문구가 나오면 업데이트 대상이 없는 상태fwupdmgr get-updates# 펌웨어 업데이트# 여러 문구가 나올 것이며 업데이트 내용이 출력, y|n으로 선택 가능하며 비밀번호 입력이 요구됨fwupdmgr update# 이는 무조건적으로 가능.. ETC 맥OS 파인더 미션컨트롤 뷰 2023.12.01 - [ETC] - 맥OS 파인더에 휴지통을 추가하기 맥OS 파인더에 휴지통을 추가하기이번에 윈도우 노트북에서 맥 미니로 집 개발 환경을 바꾸면서 여러가지 세팅을 하다가 편리한점이 많았지만 불편한점이 많아 이것저것 알아보며 가장 간단하고 편한 방법을 정리해보려고 합xddsr123.tistory.com이 글에 이어서 편리 기능 정리 추가파인더에서 CMD + T를 누르면 윈도우 11의 파일 탐색기에서 새탭으로 열기와 동일한 기능이 실행된다. 그리고 여기서 CMD + SHIFT + \ 단축키를 누르면 미션컨트롤처럼 탭들을 모두 편히 볼 수 있다. 열었던 탭은 CMD + W 로 닫을 수 있다.탭의 이동은 CMD + SHIFT + [ (왼쪽) CMD + SHIFT + ] (오른쪽)으로 이동 가능.. Redis Redis user 정보를 저장하기 Linux Ubuntu 기반으로 작성하였습니다. OSUbuntu 24.04 Server aclfile 설정을 적용하게 되면 requirepass 설정이 무시됩니다.즉 requirepass password 라고 입력되어있어도 default user의 비밀번호는 nopass로 aclfile에 기입됩니다.sudo vi /etc/redis/redis.conf# 주석 해제 : 가장 앞 #을 지우면 주석 해제aclfile /etc/redis/users.acl# users.acl 파일 생성sudo touch /etc/redis/users.acl# Redis 재시작sudo systemctl restart redis# redis-cli 명령어 실행redis-cli -h ip -p port# 유저 생성 및 저장# 권한 부.. Kotlin Redis Sentinel 적용 2025.03.23 - [server] - Redis Sentinel 세팅 Redis Sentinel 세팅Linux Ubuntu 기반으로 작성하였습니다. OSUbuntu 24.04 ServerComputeMasterSlave-1Slave-2모든 서버에 Redis를 설치sudo apt updatesudo apt install redis-serversudo apt install redis-sentinel 모든 서버 설정sudo vi /etc/redis/redis.confxddsr123.tistory.comjava17 kotlinVersion1.9.25spring boot3.4.0implementation("org.springframework.boot:spring-boot-starter-data-redis").. Redis Redis Sentinel 세팅 Linux Ubuntu 기반으로 작성하였습니다. OSUbuntu 24.04 ServerRedis Server : 7.0.15ComputeMasterSlave-1Slave-2모든 서버에 Redis를 설치sudo apt updatesudo apt install redis-server -ysudo apt install redis-sentinel -y 모든 서버 설정sudo vi /etc/redis/redis.conf# 필요에 의해 다른 값 또는 미입력 가능bind 0.0.0.0 -::1port 6379daemonize yesrequirepass passwordmasterauth passwordmasteruser masteruser# 권장appendonly yesbind 0.0.0.0 → IPv4 전역 허용, .. K8S K8S 인증서 갱신 오류 해소 인증서 차이점 확인openssl x509 -in /etc/kubernetes/pki/apiserver-kubelet-client.crt -text -noout | grep -E "Subject:|DNS:"openssl x509 -in /etc/kubernetes_backup/pki/apiserver-kubelet-client.crt -text -noout | grep -E "Subject:|DNS:" RBAD 추가kube-apiserver-kubelet-client-binding.yamlapiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata: name: kube-apiserver-kubelet-client-bindingsubje.. Ubuntu Linux - Ubuntu 편의성 개인적 의견으로 필수# 파일을 삭제하기 전에 사용자에게 확인# 루트 디렉터리(/)를 삭제 방지rm -i --preserve-root# trach-cli : 휴지통 편의성alias rm='rm -i'alias cp='cp -i'alias mv='mv -i'alias vz='vi ~/.bashrc'alias sz='source ~/.bashrc'alias lal='ls -al'alias ual='cat /etc/passwd'alias usl='cut -f1 -d: /etc/passwd'alias disk='du -sh ./* | sort -rh'alias sc='landscape-sysinfo'K8S 관련# 노드네임별 파드 정리alias kp='kubectl get pods -A -o wide --sort-.. GitLab gitlab-runner 설치 Linux Ubuntu 기반으로 작성하였습니다. Runner 설치# gitlab-runner 파일 다운로드sudo curl -L --output /usr/local/bin/gitlab-runner https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64# 권한 부여sudo chmod +x /usr/local/bin/gitlab-runner# 사용자계정 추가sudo useradd --comment 'GitLab Runner' --create-home gitlab-runner --shell /bin/bash# 설치 및 서비스로 등록하여 실행sudo gitlab-runner install --user=gi.. Toy Project 중간 기록 TO-BEKotlin : 나중에 바꾸기 보다는 하면서 익히기 위해Java17(Amazon Corretto 17 (aarch64) : 익숙한 버전의 사용Spring boot 3.4.0 : 최신 버전 연습Spring Security 6.4.1 + JWT : Security가 6.4.x로 업데이트 되면서 기존과 사용방법이 달라졌다기에 몸소 겪으며 연습Spring Cloud Server + Client : 편리함과 간편함을 추구하고자 추가Gradle 8.11.1 : 자연스러운 버전업JPAMyBatisDatabasePostgreSQL : 재미삼아 써보기 + 사용 가능 기술 확장local, Home 서버 사용OCI 사용Redis : 간단, 간소하고 쉬운 사용과 연습이 필요하기에 사용local, Home 서버 사용R.. Docker Docker Redis 세팅(윈도우) 지인과 서버 관련 얘기 중 도커 레디스 관련 얘기가 나와 서로가 겪은 상황들을 공유하다 필요하다 싶어 간략히 적어 봅니다. 줄바꿈 포함docker run -d \ --name redis \ -p 6379:6379 \ -v C:\redis:/data \ --restart=unless-stopped \ redis:latest \ redis-server --appendonly yes --requirepass 비밀번호 줄바꿈 없이docker run --name redis -v C:\redis:/data -p 6379:6379 --restart=unless-stopped -d redis:latest redis-server --appendonly yes --requirepass 비밀번호 --name re.. MySQL MySQL 외부 접속(2) 개요MySQL 설치와 외부 접속 그리고 Group By MySQL 설치와 외부 접속 그리고 Group By개요토이프로젝트를 진행하면서 회사 점심시간에도 조금씩 해보자하였다. 환경집은 맥미니 회사에서는 개인 맥북을 사용맥미니에 DB 세팅 회사에서 맥북으로 DB 연결홈서버? 홈 DB서버? 진행설xddsr123.tistory.com 이전 작성한 위 글을 보고 지인이 질문을 하였다.생각해 보니 나도 잘 몰랐었던 올챙이 적을 생각하지 못하였기에 이 글을 작성한다. 질문과 답 - 이 글의 목적Q. 글대로 했는데 나는 왜 연결이 안 되냐A. MySQL 설치된 서버에 SSH 연결함? Q. 해야함?A. ?Q. ?A. ..... 방화벽 때문이니까 키고 연결해야 해 Q. 귀찮은데 방법 없어?A. DB tool에서만 접속하면.. MySQL MySQL 설치와 외부 접속 그리고 Group By 개요토이프로젝트를 진행하면서 회사 점심시간에도 조금씩 해보자하였다. 환경집은 맥미니 회사에서는 개인 맥북을 사용맥미니에 DB 세팅 회사에서 맥북으로 DB 연결홈서버? 홈 DB서버? 진행설치맥미니가 꺼질일이 없으니 MySQL 설치-- 작성일 2024-11-04일자 기준 9.0.1 버전 설치 확인 완료brew updatebrew install mysql MySQL 실행# 두 명령어중 마음에 드는 것으로 선택# 필자는 brew 선택brew services start mysqlmysql.server start 정상적인 실행이 완료된 것을 확인 설정 진행mysql_secure_installationWould you like to setup VALIDATE PASSWORD component? -> 비밀번호 복잡스럽.. Toy Project 토이프로젝트 시작 TOPIC - 비공개TeamMe And IBackend - 주 개발 분야 : 1차 배포 후 Kotlin으로 변경 예정Java17(Amazon Corretto 17 (aarch64)Spring boot 3.3.5Spring Security 6.3.4Gradle 8.10.2JPAMyBatisFrontendNext 15.0.2React 18.3.1shadcn : 2024-11-02 기준 latesttailwindcssDatabasePostgreSQL - 카카오뱅크 파견으로 MySQL보다는 PostgreSQL을 연습과 깊이 알아보기 위해 결정local, Home 서버 사용OCI 사용Redis : 사용여부 미확정local, Home 서버 사용Redis Cloud 사용Cloud - 사용여부 미확정Hosting Ve.. Ubuntu Ubuntu amazon corretto 제거 (yum 미사용) dpkg-query -W -f='${binary:Package}\n' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e '^java-common' | xargs sudo apt-get -y removesudo apt-get -y autoremovedpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purgesudo rm -rf /usr/lib/jvm/*sudo apt-get autoremove --purgesudo apt-get autoclean boot JPA 사용 시 암호화 복호화 적용하기 : ColumnTransformer 실무에서 DB 테이블에서 일부 컬럼에 암호화된 정보가 저장되고, 화면에 리턴 해줄때 복호화되어 뿌려줘야하는 로직을 담당하게 되었습니다. 기존 Mybatis를 사용할 때는 MySQL의 Function을 이용하여 아래와 같이 이용하였습니다.INSERT INTO test_table(plain_text, encrypt_text)VALUES ("abc", encrypt_function("abc");SELECT plain_text, decrypt_function(encrypt_text)FROM test_table; JPA에서도 동일한 결과를 기대하였지만 dirty checking이 발생하여 암호화된 데이터를 불러온 후 복호화를 하게 되면 복호화된 데이터가 저장되게 되었고 다음 로직부터 오류가 발생하여 이를 해결하기.. GitHub GitHub Pages + Jekyll(지킬)을 이용하여 페이지 만들기 예를들어 자신의 정보와 참여한 프로젝트를 정리하고자 함에 웹사이트를 제작하는 방법은 여러가지가 있습니다.대표적으로 호스팅 서버를 이용하여 무료로 혹은 비용을 지불하는 것입니다.비용 아까워 무료로 사용하자니 제한사항이 많은데 GitHub Pages는 코드 저장소와 호스팅이 모두 제한된 자원안에서 무료로 사용이 가능하기에 이 글을 작성합니다.가장 먼저 레포지토리를 생성합니다.유의할 점은 레포지토리의 이름을 아래와 같이 자신의 '계정명.github.io'로 해주시는 것입니다. Jekyll은 Ruby라는 언어를 바탕으로하므로 Ruby를 설치하여 줍니다.터미널을 열고 아래의 명령어를 입력하여 줍니다.brew install chruby ruby-install#원하는 버전 선택ruby-install ruby 3.3... GitHub Github Action 으로 AWS Lambda 자동 배포하기(3) Github Action 으로 AWS Lambda 자동 배포하기(2)Github Action 으로 AWS Lambda function 자동 배포하기회사 업무로인해 CTO님이 Node로 작성하신 AWS Lambda 함수를 수정하는 역할을 맡게 되었다.(난 java spring이긴한데....) 이후 수정내역을 CTO님께 보고 드리xddsr123.tistory.com 이전 작성한 Github Action을 조금더 간결하게 동작하도록 수정하였다.다만 완벽하게 모든 프로젝트에 동일하게 적용할 수준이 아니며, 관리 포인트의 감소가 다이나믹하게 이루지지 않았다. 우선 기존의 하나의 yml 파일에서 dev, main 브랜치에 PUSH 이벤트를 감지하고 있었는데 이를 쪼개어 두개의 파일로 나누었다.즉 .github/wo.. AWS AWS Lambda Layer(계층) Github Action 으로 AWS Lambda 자동 배포하기(3)Github Action 으로 AWS Lambda 자동 배포하기(2)Github Action 으로 AWS Lambda function 자동 배포하기회사 업무로인해 CTO님이 Node로 작성하신 AWS Lambda 함수를 수정하는 역할을 맡게 되었다.(난 java spring이긴한xddsr123.tistory.com Layer는 추가 코드 또는 데이터를 포함하는 .zip 파일 아카이브입니다. 계층에는 일반적으로 라이브러리 종속 항목, 사용자 지정 런타임 또는 구성 파일이 포함된다. Lambda를 사용하다보면 외부 라이브러리를 import하거나,여러 Lambda에서 import한 라이브러리들이 동일하게 사용중일 때 Layer를 사용한다면 .. boot Spring boot log 파일을 AWS S3에 자동으로 업로드 시키기 spring boot 2.7.3 버전에서 작성된 코드입니다. logback class, core 1.2.11 버전의 라이브러리입니다. 또한 아래 옵션으로 로그를 보존한다는 가정하에 글을 작성합니다. - Appender : RollingFileAppender - RollingPolicy : SizeAndTimeBasedRollingPolicy AWS S3 라이브러리 : com.amazonaws:aws-java-sdk-s3:1.12.290 아래는 Import 코드 입니다. import ch.qos.logback.core.Context; import ch.qos.logback.core.CoreConstants; import ch.qos.logback.core.FileAppender; import ch.qos... ETC 맥OS 파인더에 휴지통을 추가하기 이번에 윈도우 노트북에서 맥 미니로 집 개발 환경을 바꾸면서 여러가지 세팅을 하다가 편리한점이 많았지만 불편한점이 많아 이것저것 알아보며 가장 간단하고 편한 방법을 정리해보려고 합니다. 다른 블로그들의 내용처럼 Automator를 사용하여 추가하거나 도구 막대 사용자화에서 삭제 버튼을 추가하는 방식이 아닌 다른 방식임을 알려드립니다. 먼저 터미널을 실행시켜 줍니다. 못 찾으시겠다면 Command + SpaceBar로 Spotlight에서 "터미널"이라고 검색해주고 엔터를 누르시면 됩니다. 이후 아래 명령어를 복사하여 붙여넣기 후 실행시켜 주세요.cd && ln -s .Trash Trash 위 명령어를 실행하고 나서 파인더에서 사용자명 폴더(=홈 폴더 = 집모양 아이콘 폴더)로 이동해줍니다. 그러면 아.. ETC 사내 담당 업무 기록 2 2023.08.17 - [ETC] - 사내 담당 업무 기록 1 사내 담당 업무 기록 1 Project Infra 글로벌 프로젝트 Backend Sprong boot - AWS EC2 Frontend Node + Next.js - AWS EC2 Database AWS RDS - Aurora MySQL Serverless Excel Uplaod - Node Image Thumbnail - Node RDS Alarm - Python 내부 기능 Excel Upload UI에서 엑셀 파일 xddsr123.tistory.com RDS Alarm - 수정 사내에서 사용하는 Slack의 API 중 chat.postMessage 또는 WebHook은 초당 1번의 메세지 송신이 가능하며 특정 상황은 예외가 있다고 한다. .. ETC 사내 담당 업무 기록 1 Project Infra 글로벌 프로젝트 Backend Sprong boot - AWS EC2 Frontend Node + Next.js - AWS EC2 Database AWS RDS - Aurora MySQL Serverless Excel Uplaod - Node Image Thumbnail - Node RDS Alarm - Python 내부 기능 Excel Upload UI에서 엑셀 파일 업로드 Backend 자바가 S3에 저장 AWS Lambda에 등록된 S3 Put Object 트리거 발생 람다 코드가 S3에 저장된 파일 내부 데이터 검증 및 변환 검증 실패 또는 내부적으로 다른 검증에 실패한 경우 원인에 대한 내용을 업로드한 파일에 기입하여 사용자에게 다운로드 검증 성공 시 임시 테이블에 저장.. AWS AWS CLI 설정하기 설치 - Linux # 설치 # --64-bit curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # --ARM curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install # 설치확인 aws --version - Mac # 설치 curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target / # 설치확인 aws --versi.. AWS AWS CloudWatch 로컬 터미널에서 확인하기 AWS CLI가 설치되어 있고 region, aws_access_key_id, aws_secret_access_key를 먼저 정의해주시기 바랍니다. AWS CLI AWS CLI 설정하기 설치 Linux # 설치 # --64-bit curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" # --ARM curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install # 설치확 xddsr123.tistory.com GitHub - jorgebastida/awslogs: .. GitHub Github Action 으로 AWS Lambda 자동 배포하기 회사 업무로인해 CTO님이 Node로 작성하신 AWS Lambda 함수를 수정하는 역할을 맡게 되었다.(난 java spring이긴한데....) 이후 수정내역을 CTO님께 보고 드리면서 AWS Lambda 함수를 자동으로 배포하는 작업을 추가로 할당받게 되었다. 처음에는 AWS CodeDeploy를 사용하려고 했지만 도저히 길이 보이지 않아 Github Action을 사용하는 방법을 사용하기로 하였다. 아래는 Github Action Workflow에 대한 yml 파일이다. name: deploy lambda function on: push: branches: - deploy jobs: deploy_source: name: deploy lambda by push runs-on: ubuntu-latest .. MySQL Mysql AES ENCRYPT 먼저 사용하는 형식 확인한다. SELECT @@block_encryption_mode; 형식을 변경하고 싶다면 아래 명령어를 입력한다 SET block_encryption_mode = 'aes-128-ecb'; SET block_encryption_mode = 'aes-256-cbc'; 이외에도 다양한 방식이 존재하며 원하는 방식을 선택하면 된다. (aes-keylen-mode) keylen : 128, 192, 256 mode : OpenSSL : ECB, CBC, CFB1, CFB8, CFB128, OFB yaSSL : ECB, CBC AES 128 ECB - 암호화 SELECT TO_BASE64(AES_ENCRYPT('text', 'enc_key')); - 복호화 SELECT CONVERT(AES_.. boot Junit VM Options @SpringBootTest 어노테이션에 properties 옵션을 추가 @SpringBootTest(properties = { "server.port=8080", "spring.profiles.active=local" }) OR 테스트 전용 어노테이션을 테스트 폴더에 생성 import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.TestConstructor; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; import.. boot Jasypt를 이용한 암호화 - application.ymlspring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/testDb?serverTimezone=Asia/Seoul username: userName password: password - application.propertiesspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driverspring.datasource.url=jdbc:mysql://localhost:3306/testDb?serverTimezone=Asia/Seoulspring.datasource.username=userNam.. 고도몰 고도몰 추가 치환코드 및 함수, 페이지별 기본 치환코드 공통변수 치환코드 { # header } 상단 레이아웃 { # footer } 하단 레이아웃 { # share_header } 팝업 상단 레이아웃 { # share_footer } 팝업 하단 레이아웃 { # header_inc } 상단 디자인 { # side_inc } 측면 디자인 { # footer_inc } 하단 디자인 { # scroll_banner_left } 좌측 스크롤 배너 { # scroll_banner_right } 우측 스크롤 배너 {=gMall.mallNm} 쇼핑몰명 {=gMall.mallNmEng} 쇼핑몰영문명 {=gMall.mallTitle} 상단타이틀 {=gMall.mallFavicon} 파비콘 {=gMall.mallDomain} 쇼핑몰 도메인 {=gMall.mallCategory.. 고도몰 고도몰 스킨에서 사용가능한 함수 STRING addcslashes - C 스타일에서 슬래시가있는 문자열 인용 addslashes explode implode join nl2br - "\n" 을 " " 로 변환 number_format sprintf str_repeat str_replace strip_tags stripcslashes - addcslashes()로 인용 된 문자열의 인용을 해제 stripslashes strtolower strtoupper strtr - 변경할 문자열의 길이만큼 바뀌는 함수 strlen strpos substr DATE, TIME date mktime - 시간, 분, 초, 월, 일, 년의 순서대로 날짜정보를 입력하여 타임스탬프값을 리턴 strtotime time REGEXP preg_match preg_r.. 고도몰 고도몰 치환코드 회사명 {=gMall.companyNm} 사업자등록번호 {=gMall.businessNo} 쇼핑몰 대표 {=gMall.ceoNm} 쇼핑몰 이메일 {=gMall.email} 쇼핑몰 우편번호 {=gMall.zoneCode} 사업장 주소 {=gMall.address} 사업장 상세주소 {=gMall.addressSub} 쇼핑몰 전화 {=gMall.phone} 쇼핑몰 팩스 {=gMall.fax} 개인정보 보호책임자 {=gMall.privateNm} 개인정보 보호책임자 직책 {=gMall.privatePosition} 개인정보 보호책임자 부서 {=gMall.privateDepartment} 개인정보 보호책임자 전화 {=gMall.privatePhone} 개인정보 보호책임자 이메일 {=gMall.privateEmai.. 고도몰 고도몰 함수 실행시간 리턴 $DatetimeUtils = \App::load('\\Framework\\Utility\\DateTimeUtils'); $getRunTime= $DatetimeUtils->intervalCallFunction(funtion () { }); 고도몰 고도몰 Util 함수 ArrayUtils gd_array_remove_empty($data) 값이 없는 배열 제거 array $data 배열값 gd_array_is_empty($data) 빈배열인지 확인 array|mixed $data gd_array_dimension($data, $deep = 0) 배열이 몇 차인지 검사 array $data integer $deep gd_array_change_key_value($data) 배열 값으로 키를 교체 array $data gd_array_reverse_key_value($data) 키와 값을 바꿈 array $data gd_array_first($data) 배열의 빈 값을 제외한 첫번째 값을 반환 array $data gd_array_first..