일단 대충 이야기를 설명하자면 (대충 설명할 수가 없을 것 같다.)

PC와 모바일 부에 대한 체크를 했고, 전반적으로 코드 체크를 했을 때 정상적인 코드를 찾을 수가 없었다.

 

그러니까 Spring 쪽에서 작동하는 REST 가 v1이 있고 v2가 있는 상태에서 v1 에다가 던지는 코드들도 발견하기도 했고, 심지어 그 코드와 동기화가 이루어지던 사실도 확인했다.

 

그래서 일부 동기화가 안되던 Cart 혹은 Deposit Module 등에 대하여 End-Point 재수정 작업을 해주었다.

 

 

2023-10-20

그럼에도 불구하고 문제가 발생했다. 조금 더 살펴보다가 우연치 않게 네이버 간편 로그인과 카카오톡 간편 로그인에 관련된 부분을 고도몰 소스에서 찾아보던 도중에 skin 관련된 부분에서 html 작업과 Js 작업을 한 부분을 찾아내었고

 

이 부분에서도 정상적으로 작동할 수 없는 여러 코드들이 발견되어 충격과 공포다

 

결과적으로 좀 말하자면 Load Balancer 에 대해서 SSL insecure Ruleset 이 설정되어 있는 상태에서 SSL Required 를 안걸어버리기 때문에 예전부터 지속적으로 80 Port를 통해서 날리고 있는 코드를 발견했다.

 

잘 생각해보면 Moyamo Shop 은 SSL 을 기반으로 하는 상태이고, 이 상태에서 로드밸런서의 80포트에 날려버리게 되면 데이터 프로토콜 통신과정에 있어서 Insecure 문제 때문에 ajax 가 정상적으로 작동할 수가 없다.

 

때문에 이 부분에 대한 부분을 수정해서 PC에서 SNS 계정 로그인을 했을 때에, 기존에 모야모 샵(Android Applciation Side) 에서 사용하던 정보와 일치할 수 있도록 길을 터줬다

 

문제는 더 충격과 공포인건 모바일 디자인 관련된 스킨에서는 이러한 부분에 대한 작성 자체가 없었고, Document Ready 인 상태에서 id 와 password credential 을 가지고 있는 경우에만 자동 로그인을 사용하고 있었는데...

 

그렇다면 결과적으로 볼 때에 Phone base 와 Email base 에서 자동 로그인이 되고 있던 사실도 내가 생각한대로 맞아 떨어졌다.

 

그래서 정상적으로 동기화를 시켜주기 위해서 SNS Syncronization Section 에 대한 작업을 추가해줬다.

(REST End-Point 랑 엮어버림)

 

 

+

사실 여기서 가장 의아한 부분은 input 단에서 access_token 을 webView 에서 박아줫을때 자동으로 납치하냐 납치 안하냐를 Yagnesh 한테 물어봣는데 일단 Android Section 에서는 retrofit API 통해서 spring 쪽으로 보내서 보내는걸 일단 봣다고 Postman 으로 확인사살까지 시켜줫다. (사실 알고있던 내용임)

 

그럼 얘가 넘어왔을때 GET Method 로 납치를 하냐 마냐 결과적으로 login 부에서 납치하냐 마냐 이게 굉장히 중요한데 일단 그걸 조지러가야겟다.

지속적으로 고도몰에서 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  (0) 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
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.

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

47
18

What does static mean?

I know public means that it can be accessed from outside the class, and private only from inside the class…

 

 

42
 

Static means that it can be accessed without instantiating a class. This is good for constants.

Static methods need to have no effect on the state of the object. They can have local variables in addition to the parameters.'

 

 

 

 

40

public: Public declared items can be accessed everywhere.

protected: Protected limits access to inherited and parent classes (and to the class that defines the item).

private: Private limits visibility only to the class that defines the item.

static: A static variable exists only in a local function scope, but it does not lose its value when program execution leaves this scope.

final: Final keywords prevents child classes from overriding a method by prefixing the definition with final. If the class itself is being defined final then it cannot be extended.


Beside of PHP:

transient: A transient variable is a variable that may not be serialized.

volatile: A variable that might be concurrently modified by multiple threads should be declared volatile. Variables declared to be volatile won't be optimized by the compiler because their value can change at anytime.

 

 

 

0

Example:

public class Methods_Test1 
{   
    public static void Display(String Name)
    {
        System.out.println("Hello There " + Name);
        System.out.println("I am from Display method");
    }


    public static void main(String[] args) 
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("Enter name");
        String name = sc.next();
        Obj.Display(name);

    }

The public static void Display(String name) method accessible as static method within its own class which can be accessed without creating object of the class where as the same method behaves as public for the outside classes which can be accessed by creating object.

 

 

 

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

[고도몰 Pro+] SFTP 접속이 안됨과 동시에 문제 해결하기  (0) 2023.05.25
FTP 설정 방법 - 고도몰  (0) 2023.05.18
PHP 실행 지연(delay) 시키기  (0) 2021.11.23
mb_substr  (0) 2021.09.13
PHP Superglobal - $_REQUEST  (0) 2021.08.18

+ Recent posts