728x90

https://www.youtube.com/watch?v=IiZZAu2Qtp0 

 

해당 Youtube 에서는 기초적인 Elastic Search 의 공사에 대해서 설명하고 있다.

 그러니까 기본적으로 하는 공사들에는 몇 몇가지가 있는데

 

일단 가장 첫 번째로 하는 것은

ELS 를 추상화한 클래스를 상속받아서 ELS에 대하여 Config 를 설정하는 별도의 Class를 만드는 것

(이 부분이 굉장히 중요하다 할 수 있을 것 같다.)

 

만약 데이터베이스를 사용하는 와중에 아래와 같은 가정이 있다고 가정해보면

 

1. AWS Aurora 를 사용하는 상태

2. 더욱 빠른 검색을 위해서 ElasticSearch 를 추가적으로 구현해야 하는 상태라면

 

JPA 에서는 MySQL 에 대한 package 를 별도로 지정해줘야 할 것이고, ELS 를 따르는 package 를 별도로 지정해줘야 할 것이다. 

 

그리고 나서 일반적으로 이루어지는 연계 사항들을 작성하게 되는데

Document Annotation과 함께 Class 내부의 Properties 를 정의하고, indicies 를 정의하여 인덱스화하는 것

 

그리고 나서 Person Class 가 정의되었다면, 그 Class 의 Properties 들을 활용하여 저장하는 Repository 에 대한 정의

그리고 Repository 에서 구현된 Method 를 호출하여 사용하는 Service

그리고 나서 REST 형식을 이용해 Service 에서 정의된 함수들을 호출하여 사용하는 Controller 를 정의한다.

(당연히 REST 니까 여기서는 GET, PUT, Delete Mapping 등이 전부 작용할 수 있다.)

 

728x90

지속적으로 고도몰에서 SFTP 접속이 안되는 현상이 벌어졌다. 이 부분 때문에 굉장히 많은 시간을 허비하며 많은 시도들을 해보았는데 아래와 같다.

 

1. 프로토콜 지정하기

고도몰에서는 프로토콜이 지정되야만 접속가능한 시퀀스를 만들어놨다. 물론 이건 고도몰+ 이상부터 한정된다. 

sftp:// 와 같이 지정하는 부분인데 이 부분이 굉장히 중요하다.

 

2. 포트를 지정해야한다

포트를 다른 글에서는 21번 22번을 쓴다는 경우도 있었으나, 고도몰 Pro+ 에서는 지정된 포트가 따로 있다.

 

이 부분을 참고하려면 관리자 페이지가 아니라 NHN Commerce 페이지로 들어가서 찾아줘야한다

(한참을 찾아 해맸다.)

이렇게 되어있으니까, 이러한 부분을 참조해서 VSCode 에서는 Protocol 을 지정해서 넣어주고

파일질라에서는 Protocol 을 포함한 주소를 넣어준다

 


그럼에도 불구하고 나처럼 안되는 매우 빡치는 케이스가 있는데 여러 문의 결과

고도몰 Pro+ 에서는 클라우드 기반에다가 IP 기반의 ACL 을 처리해주지 않으면 작동하지 않는 것으로 판단된다.

 

 

아래처럼 요로코롬 아이피 상콤하게 등록해서 ACL 컨트롤링을 해줘야 SFTP에 들어갈 수 있는 매우 재미있는 구조를 개설해두셨다.

 

 

그리고나서 휴면회원에 대한걸 처리를 해야하는데... 휴면회원이 무려 47만명 이였다.

특히 휴면 회원중에 예치금과 마일리지를 가지고 있는 경우가 있는데, 이 때에는 전체 삭제가 안된다.

 

그렇다면 무슨 말이다? 이 부분에 대해서 별도로 코딩을 해줘야 한다는 이야기다

 


일단 고도몰에서 지원하는 원본소스에 수정을 가한후 타격을 가할 수 있게 해서 삭제 프로세스에 성공하긴 하였으나, PHP 기반에서 js 랑 통신할 때의 timeout 시간이 어느정도 있기 때문에 47만명을 한번에 삭제할 순 없다.

- 이럴 때에는 데이터베이스에서 SQL 백업을 눌러주고 삭제하는 수 밖에 없다.

 

있었는데

 

이젠 없습니다

 

'WEB > PHP' 카테고리의 다른 글

[고도몰5] Shop Login issue  (31) 2023.10.20
FTP 설정 방법 - 고도몰  (0) 2023.05.18
The difference between "public" and "public static"?  (0) 2021.11.23
PHP 실행 지연(delay) 시키기  (0) 2021.11.23
mb_substr  (0) 2021.09.13
728x90
FTP 설정 방법
고도 쇼핑몰은 쇼핑몰에 외부 FTP 프로그램을 연결하여, 효과적인 쇼핑몰 운영이 가능합니다.

* e나무 무료형 쇼핑몰은 외부 FTP 접속이 지원되지 않습니다.
* 모든 고도 쇼핑몰은 쇼핑몰 관리자 내 webFTP를 지원합니다. * 쇼핑몰 메인계정 신청을 위해서는 대표도메인 연결이 필요합니다.
FTP란?
FTP(File Transfer Protocol)은 이용자의 PC와 쇼핑몰 호스팅 서버 간 파일을 송수신하는 프로그램을 말합니다. FTP는 파일 전송 전용 서비스이기 때문에, 많은 양의 파일을 일괄적으로 주고 받을 때 효과적입니다.

쇼핑몰에 필요한 파일이 대량이고, 빈번하게 전송이 필요한 경우 FTP를 이용하면 효율적으로 쇼핑몰을 운영할 수 있습니다.
외부 FTP 프로그램을 이용한 FTP 접속 방법
대표적인 공개 FTP 접속 프로그램인 ‘Filezilla’로 고도 쇼핑몰의 FTP 접속 방법을 알아보겠습니다.
* 외부 FTP 접속이 허용되는 고도 쇼핑몰은 ‘Filezilla’ 외 FTP 프로그램으로도 접속이 가능합니다.

1. ‘Filezilla’ 프로그램을 내려 받아 설치를 완료합니다. [공식 다운로드 페이지 바로가기]

2. 상단 메뉴 부분에 아래와 같이 입력 후, ‘빠른 연결’을 클릭합니다.
(호스트 : www를 제외한 쇼핑몰주소 | 사용자명 : FTP 아이디 | 비밀번호 : FTP 비밀번호 | 포트 : 21)

* FTP 계정정보는 [마이고도 > 쇼핑몰 관리 > 쇼핑몰 목록 > 이용 중 쇼핑몰 ‘서비스관리’ > 기본관리 > FTP 관리]에서 신청 또는 확인할 수 있습니다.

3. 연결이 완료되면 내 PC와 쇼핑몰 호스팅 간 파일 업다운로드가 가능합니다.
(로컬 사이트가 내 PC영역, 리모트 사이트가 내 쇼핑몰 호스팅 영역입니다.)
유의사항
- e나무 무료형 쇼핑몰의 경우 외부 FTP 접속이 지원되지 않습니다.(쇼핑몰 관리자 내 webFTP 사용 가능)
- FTP 접속 정보는 외부에 유출되지 않도록 유의하여 주시기 바랍니다.

© NHN godo: Corp. All rights Reserved.

위 내용은 엔에이치엔고도㈜의 저작물로, 제공되는 자료에 대한 무단 복제 및 배포를 금합니다.

728x90

환경설정 (Maven)

1) h2 DateBase 설치 및 시작
2) Maven 프로젝트 생성
3) pom.xml에 라이브러리 추가
4) presistence.xml 생성

1. h2 DB 설치 & 시작


  • 실행
    : h2.sh 파일을 실행하려면 chmod 755 h2.sh 수행해야 함

  • DB 생성 (최초 1회만 해주면 된다)
    : 경로가 ~/test 이니까 홈에 test.mv.db가 생성된다
    (안되면 url뒤에 키값을 확인해보자)

  • DB 들어가기
    : 최초 생성 이후에는 tcp로 파일에 접근

2. Maven 프로젝트 생성

  • Maven 선택 및 Java 버전 선택

3. pom.xml에 라이브러리 추가

4. persistence.xml 생성

  • persistence.xml란 ?
    : JPA를 사용하기 위해 참조되는 파일로 위치가 참조 정해져 있음
    (반드시 main/java/resource/META-INF/persistence.xml)
  • persistence-unit -> EntityManagerFactory 이름
  • hibernate.dialect 에 사용할 DBDialect를 변경할 수 있음
    ex) MySQLDialect 
  • JPA에 대한 옵션을 추가할 수 있음

JPA 구동방식 & 사용


  • EntityManagerFactory를 가져오기
  • EntityManager 꺼내기
  • Transaction을 시작
  • 쿼리 내용을 수행
  • Transaction 종료
  • EntityManager  EntityManagerFactory닫기

JPQL ?

  • Table이 아닌 객체를 중심으로 하는 객체 지향 쿼리
  • 검색을 할 때도 테이블 이 아닌 Entity 객체를 대상으로 검색
  • SQL 문법과 유사
  • SQL을 추상화해서 특정 DB SQL에 의존하지 않음

+ Recent posts