Cannot find module 'msw/node' 에러 해결

 

NEXT.js 14버전 환경에서 jest를 사용한 테스트 환경 구축중에 

api요청등의 문제를 모킹서버로 해결하기 위해 

msw설치후 테스트를 돌렸는데 

 

msw/node 를 찾지 못한다는 에러가 발생을 하였다.

분명 패키지제이슨엔 설치가 되어 있는데도 오류가 발생하고 있어 

chatGpt에 물어봐도 다시 설치하라는 말만 하고 있어 다른 방법을 찾아 보던중

 

https://github.com/mswjs/msw/issues/1786

 

"Cannot find module 'msw/node'" in Jest JSDOM environment · Issue #1786 · mswjs/msw

Prerequisites I confirm my issue is not in the opened issues I confirm the Frequently Asked Questions didn't contain the answer to my issue Environment check I'm using the latest msw version I'm us...

github.com

이곳의 글을 확인 하였고 코멘트에서 해결방법을 찾았다.

 

jest.config.ts 파일의 설정중에 

testEnvironmentOptions: {
    customExportConditions: [""],
  },

이부분을 추가 하면 된다. 

에러가 난 이유를 설명한걸 해석해 보자면

 

JSDOM이 내보내기 조건을 강제하기 때문입니다 browser.

즉, JSDOM은 "타사 패키지가 browser필드를 내보내는 경우 해당 필드를 사용하십시오"라고 말합니다.

그것이 기본값이고 다소 위험한 기본값입니다. 왜? JSDOM은 여전히 ​​Node.js에서 실행되기 때문입니다 .

게다가 JSDOM은 설계상 100% 브라우저 호환성을 가질 수 없으므로 browser내보내기 조건을 강제하면

MSW와 같이 다양한 환경에 대해 다양한 코드를 제공하는 패키지로 작업할 때 테스트가 필요 이상으로 실패하게 됩니다.

이렇게(위와 같은 설정을) 하면 JSDOM이 올바른 동작인 node(또는 ) 내보내기 조건을 사용하게 됩니다 .default

이번 변경 이후 다른 수입 관련 문제가 발생하는 경우 관련이 없으므로 별도로 처리해야 합니다.

모든 사람이 따를 수 있도록 이 권장 사항을 마이그레이션 가이드에도 추가합니다.

 

라고 한다. 

org.springframework.web.reactive.function.client.WebClientRequestException: readAddress(..) failed: Connection reset by peer; 오류 해결

 

현재 프론트엔드로 개발하고 있는데 간헐적으로 서버를 통해 외부 API를 요청할때 오류가 발생하는것을 확인 했다.

여기저기 찾아보니 

WebClinet를 사용해서 외부에 요청을 보낼때 대상서버의 연결이 닫혔을때 나타나는 오류 라고 한다. 

일단 의심이 가는 시나리오는

우리쪽 A서버에서 외부 B서버로 API 요청을 보내고 커넥션을 맺을때 B서버가 중간에 재실행 혹은

별도의 문제로 서버다운이 발생하는 경우라고 생각하여 해당 업체에 문의해본 결과

서버가 내려간적은 없다고 한다. 

 

두번째 시나리오는 B서버가 로드밸런서를 사용해 A서버에서 최초 요청시 B-1에 커넥션을 맺고 통신을 하다

다시 요청시에는 B-2 서버로 요청을 하는 경우

세번째는 로드밸런서 자체의 타임아웃이 A서버보다 빠른 경우

 

확인을 위해 해당 업체에 문의한결과 로드밸런서를 사용중이며 타임아웃이 10분이라고 한다.

 

오류 재현을 위해 테스트해보니 최초 요청 이후 10분후 재요청을 했을 경우에만 동일한 오류가 나는것을 확인하고

세번째 문제가 이유라고 판단 하였고 

다른분들이 작성한 깃이나 블로그의 도움을 받아 수정 할수 있도록 백엔드 팀에 전달하였다.

문제 해결을 위해 참고한 블로그및 사이트들이다.

참고 사이트

https://velog.io/@youngerjesus/Connection-Reset-by-Peer-%EB%AC%B8%EC%A0%9C-%ED%95%B4%EA%B2%B0

 

Connection Reset by Peer 문제 해결

Client 가 요청을 보냈는데 서버쪽에서 연결이 닫혔다고 다시 연결하라는 RST (Reset) 패킷을 보내는 경우에 이 에러가 발생한다.Connection prematurely closed BEFORE response 이렇게 쓰기도 한다. Client-Server 연

velog.io

https://jskim1991.medium.com/spring-boot-how-to-solve-webclient-connection-reset-by-peer-error-b1fa38e4106a

 

[Spring Boot] How to solve WebClient Connection reset by peer error

I had a requirement to fetch user data from an external system. It was implemented using WebClient as part of declarative http client…

jskim1991.medium.com

https://github.com/reactor/reactor-netty/issues/1774

 

Connection reset by peer exception · Issue #1774 · reactor/reactor-netty

We have a micro service based spring boot architecture where we are using spring webclient (which internally uses reactor netty) for internal communication between services. The issue that we faced...

github.com

 

 

해결방법

일단 해결 방법은 B서버 로드밸런서의 타임아웃시간에 도달하기 전에 우리쪽에서 먼저 연결을 해제하고

다시 커넥트를 거는것으로 해결 하였고 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
@Configuration
public class HttpProxyConfiguration {
 
    @Value("${tracker.url}")
    private String trackerUrl;
 
    @Bean
    TrackerClient trackerClient(WebClient.Builder builder) {
        ConnectionProvider provider = ConnectionProvider.builder("fixed")
                .maxConnections(500)
                .maxIdleTime(Duration.ofSeconds(20))
                .maxLifeTime(Duration.ofSeconds(60))
                .pendingAcquireTimeout(Duration.ofSeconds(60))
                .evictInBackground(Duration.ofSeconds(120)).build();
 
        HttpClient httpClient = HttpClient.create(provider);
        httpClient.warmup().block();
 
        var reactorClientHttpConnector = new ReactorClientHttpConnector(httpClient);
 
        var wc = builder.baseUrl(trackerUrl)
                .clientConnector(reactorClientHttpConnector)
                .build();
 
        var wca = WebClientAdapter.forClient(wc);
        return HttpServiceProxyFactory.builder()
                .clientAdapter(wca)
                .build()
                .createClient(TrackerClient.class);
    }
}
cs

 

이 코드를 참조하여 문제를 수정한것을 확인 할 수 있었고

위 코드의 각 부분의 설명을 보자면

  1. @Value("${tracker.url}"): 이 어노테이션은 tracker.url이라는 이름의 프로퍼티 값을 trackerUrl 변수에 주입(inject)합니다. 이 프로퍼티 값은 외부 트래커 서비스의 기본 URL을 포함하며, 애플리케이션 구성 파일(예: application.properties 또는 application.yml)에서 정의됩니다.
  2. TrackerClient trackerClient(WebClient.Builder builder) 메서드: 이 메서드는 TrackerClient 인터페이스의 구현체를 생성하고 구성합니다. 이 인터페이스는 외부 트래커 서비스와의 통신을 위한 메서드를 정의합니다.
  3. ConnectionProvider 설정: ConnectionProvider는 WebClient의 네트워크 연결을 관리하는 데 사용됩니다. 여기서는 최대 연결 수, 최대 유휴 시간, 연결의 최대 수명, 대기 중인 연결 획득 타임아웃 등을 설정합니다. 이 설정은 서비스와의 통신 중 발생할 수 있는 다양한 시나리오를 관리하기 위한 것입니다.
  4. HttpClient 생성 및 설정: HttpClient.create(provider)를 사용하여 ConnectionProvider를 사용하는 HttpClient 인스턴스를 생성합니다. httpClient.warmup().block() 호출은 HttpClient를 "온기"시키며, 네트워크 연결을 미리 설정하여 첫 번째 요청의 지연 시간을 줄이는 데 도움이 됩니다.
  5. WebClient 구성 및 생성: WebClient.Builder 인스턴스에 기본 URL, 클라이언트 커넥터 등을 설정하여 WebClient 인스턴스를 생성합니다. 이 WebClient 인스턴스는 TrackerClient의 HTTP 요청을 실행하는 데 사용됩니다.
  6. HttpServiceProxyFactory를 사용한 TrackerClient 생성: 마지막으로, HttpServiceProxyFactory와 WebClientAdapter를 사용하여 WebClient를 기반으로 하는 TrackerClient 인스턴스를 생성합니다. 이를 통해 외부 트래커 서비스와의 통신을 위한 프록시 클라이언트를 얻게 됩니다.

 

이렇게 정리될수 있으며 ConnectionProvider의 옵션은

  • builder("fixed"): 연결 풀의 이름을 "fixed"로 설정합니다. 이 이름은 로깅이나 디버깅 시 해당 연결 풀을 식별하는 데 사용될 수 있습니다.
  • maxConnections(500): 연결 풀이 동시에 유지할 수 있는 최대 연결 수를 500개로 설정합니다. 이는 애플리케이션이 동시에 열 수 있는 최대 연결 수를 의미하며, 이 한도를 초과하는 연결 요청은 대기 상태가 될 수 있습니다.
  • maxIdleTime(Duration.ofSeconds(20)): 연결이 유휴 상태(즉, 데이터를 전송하지 않는 상태)로 있을 수 있는 최대 시간을 20초로 설정합니다. 유휴 시간이 이 값을 초과하면 연결이 자동으로 종료됩니다.
  • maxLifeTime(Duration.ofSeconds(60)): 연결이 생성된 후 유지될 수 있는 최대 시간을 60초로 설정합니다. 이 시간이 지나면, 연결은 사용 여부에 관계없이 종료됩니다.
  • pendingAcquireTimeout(Duration.ofSeconds(60)): 연결을 획득하기 위해 대기하는 최대 시간을 60초로 설정합니다. 연결 풀에서 사용 가능한 연결을 얻기 위해 이 시간을 초과하여 대기하는 요청은 실패하게 됩니다.
  • evictInBackground(Duration.ofSeconds(120)): 비활성 연결을 정리하는 배경 작업의 실행 간격을 120초로 설정합니다. 이 설정은 연결 풀에서 오래되거나 더 이상 필요하지 않은 연결을 주기적으로 제거하는 데 사용됩니다.

위와 같다.

기존코드는 위의 옵션에 대한 별도의 설정이 없었기에 해당 오류가 발생하였었다.

write /var/lib/docker/tmp/GetImageBlob3644316352: no space left on device 오류 해결

 

현상

요청사항 수정후 개발서버 브런치에 머지까지 끝냈는데 

해당 화면에 수정된 내용이 반영이 되지 않는 현상이 있었다.

젠킨스에 접속해 로그를 확인해봤다.

동일 스텝에서 성공적으로 돌아갔을때와 실패했을때를 비교해보니 

실패한 경우의 로그에서 no space left on device 라는 로그가 있었고 

확인해보니 디스크 공간 부족이 이유 였다. 

이 메시지는 젠킨스 빌드 도중에 Docker 이미지를 작성하거나 가져오려고 할 때 발생하는 오류라고 한다.

이 오류의 핵심은 "no space left on device"로, 이는 Docker가 실행 중인 서버의 디스크 공간이 부족하여

더 이상 데이터를 저장할 수 없을때 나타나는 이유라고 한다. 

해결방법

1. 디스크 공간 확인:

먼저 서버에서 사용 가능한 디스크 공간을 확인하세요. df -h 명령어를 사용하면 현재 디스크 사용량과 사용 가능한 공간을 볼 수 있습니다.

2. 불필요한 Docker 이미지 및 컨테이너 정리:

Docker 이미지와 컨테이너는 시간이 지남에 따라 상당한 양의 디스크 공간을 차지할 수 있습니다. 불필요한 이미지, 컨테이너, 볼륨, 네트워크를 정리하여 공간을 확보할 수 있습니다. 다음 명령어를 사용할 수 있습니다:
불필요한 컨테이너 정리: docker container prune
사용하지 않는 이미지 정리: docker image prune -a
사용하지 않는 볼륨 정리: docker volume prune
사용하지 않는 네트워크 정리: docker network prune
위의 모든 것을 한 번에 정리: docker system prune -a


3.디스크 확장: 

서버의 디스크 공간이 지속적으로 부족한 경우, 디스크를 확장하는 것을 고려해야 할 수 있습니다. 이는 서버의 구성과 사용 중인 클라우드 서비스 제공업체에 따라 달라질 수 있습니다.
로그 파일과 임시 파일 확인: 디스크 공간을 많이 사용하는 다른 원인으로는 크기가 큰 로그 파일이나 임시 파일이 있을 수 있습니다. 이러한 파일들을 정기적으로 확인하고 필요하지 않은 경우 삭제하여 공간을 확보하세요.
저장 정책 검토: Docker 및 Jenkins와 같은 도구들의 저장 정책을 검토하고 조정하여, 필요 이상으로 많은 데이터가 저장되지 않도록 할 수 있습니다.

 

 

라고 GPT가 알려주고 있다. 

 

aws ec2 환경에서 gitaction이랑 docker을 사용해 

svelteKit 으로 된 프로젝트를 도커로 빌드해서 ecr에 푸시하고 ec2에 npm run dev 로  CI/CD로

띄우는것까지는 작업을 하고

이제 nginx를 붙여볼까 하면서 도커파일좀 건드려 보고 있는데

검색해서 나온 것들은 

엔진스에 스벨트 빌드해서 나온 아티팩트를 서빙하려고

COPY --from=build /app/public /usr/share/nginx/html

이렇게 해뒀는데 

 

COPY failed: stat /app/public: file does not exist
Error: Process completed with exit code 1.

이런 에러가 나온다

도커 빌드 할때 저 위치를 찾을수 없다고 나오는데 한참을 헤매다가 

빌드파일은 .svelte-kit에 있다는걸 알아냈다

그러나

COPY --from=build /app/.svelte-kit /usr/share/nginx/html

으로 수정을 하더라도 도커 빌드는 되지만 nginx에서는 게이트웨이 오류가 난다.

스벨트가 따로 index.html 파일을 생성하지 않기 때문이다.

 

아마 nginx를 사용하려면 컨테이너 2개 띄워서

nginx->svlete로 프록시해주는 구조로 가야 할것 같다.

 

괜히 한큐에 끝내보려고 아둥바둥 시간 많이 썻다.

 

 

 

svelteKit으로 만든 프로젝트를 개발환경 docker compose 에서 올려보려고 하는데

페이지가 작동되지 않는다는 메세지만 나타난다?

포트설정도 제대로 했고 도커에서 정상적으로 올라간것도 확인 했는데

뭐가 문제인지를 몰라 한참을 헤맸다

 

아래는 svelteKit 프로젝트에 만든 도커 파일이다.

 

1. DockerFile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Node.js 18 버전을 사용합니다.
FROM node:18
 
# 앱 디렉터리를 만듭니다.
WORKDIR /app
 
# 앱 소스 코드를 복사합니다.
COPY . .
 
# 앱 종속성 설치를 실행합니다.
RUN npm install
 
# 앱을 빌드합니다.
RUN npm run build
 
 
# 앱 실행을 위한 명령어를 지정합니다.
CMD ["npm""run""start"]
cs

 

 

2. docker-compose.yml 파일

1
2
3
4
5
6
7
8
9
version: "3.9"
services:
  app:
    build: .
    ports:
      - "5173:5173"
    environment:
      NODE_ENV: production
 
cs

 

?? 뭐 문제가 없어 보인다. 그리고 저 문제로 검색을 해봐도

nginx관련된 내용만 잔뜩 나온다 난 nginx 안쓰는데!

그러다 한 문서를 발견했다.

 

https://github.com/sveltejs/kit/discussions/5673

 

dockerize sveltekit · sveltejs/kit · Discussion #5673

I have an issue with running sveltekit app through the docker container. I am able to run an app in docker but when I want to make some changes on frontend UI I can see them only for one second. An...

github.com

 

문제는

CMD npm run dev

이부분이었다.

이걸 

CMD npm run dev -- --host 

이런식으로 써줘야 한단다.

난 dev대신 start 스크립트를 따로 만들었으니 

도커파일을 수정하면

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# Node.js 18 버전을 사용합니다.
FROM node:18
 
# 앱 디렉터리를 만듭니다.
WORKDIR /app
 
# 앱 소스 코드를 복사합니다.
COPY . .
 
# 앱 종속성 설치를 실행합니다.
RUN npm install
 
# 앱을 빌드합니다.
RUN npm run build
 
 
# 앱 실행을 위한 명령어를 지정합니다.
CMD ["npm""run""start""--""--host"]
 
 
cs

 

이렇게 수정을 해줘야 하는 것이었다.

한참동안 뭔가 문제인지 몰랐는데 문제점을 찾아서 다행이다.

이 블로그를 찾아오는 다른 사람들도 이와같은 문제였다면 잘 해결했길 바란다.

[세븐나이츠2] 세나2 오류 접속,다운,앱플레이어[호환되는 기기가 아닙니다]

 

세나2 하려고 하는데 호환되는 기기가 아니라고 뜨면서 다운이 안되시는 분들 많으실거에요

기존 앱플레이어가 안드로이드5버전이라서 안될 가능성이 큽니다. 이건 다른 LD플레이어나 블루스택도 

마찬가지일겁니다.

해당 오류 해결 방법에 대해서 설명해 드리겠습니다.

 

1. 안드로이드 7업그레이드

 

 

녹스 멀티플레이어 실행 하셔서 저부분 누르시고 7버전으로 새로운 앱플레이어를 생성해주시면 됩니다.

기존 앱플이 대부분 안드로이드5였기 때문에 호환되는 기기가 아니라는 오류가 떠서 다운받지 못했던거에요

 

2. 기기설정

 

 

설정모드로 들어가셔서 CPU는 4코어로 해주시고 휴대폰 모델은 갤럭시 노트10+로 해주세요

 

그 이후 앱플레이어를 재시작한 후 다시 스토어에 들어가서

 

세븐나이츠2 검색하시고 다운받으시면 잘 구동이 되는걸 볼 수 있습니다.

[JAVA] VO리스트에 add로 값 넣고 싶을때


프로젝트마다 다른 방식이겠지만


나는 주로


1
2
List<dataVO> result  = null;
result =  service.loadData(vo);
cs


이런식으로 가져 오는 방식을 선호한다


그런데


1
2
3
4
5
6
7
8
9
10
11
 
List<dataVO> result = null;
 
List<dataVO> data1 = null;
List<dataVO> data2 = null;
List<dataVO> data3 = null;
List<dataVO> data4 = null;
data1 =  service.loadData(vo1);
data2 =  service.loadData(vo2);
data3 =  service.loadData(vo3);
data4 =  service.loadData(vo4);
cs


각각의 데이터들을 result에 넣고자 하면


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
List<dataVO> result = null;
 
List<dataVO> data1 = null;
List<dataVO> data2 = null;
List<dataVO> data3 = null;
List<dataVO> data4 = null;
data1 =  service.loadData(vo1);
data2 =  service.loadData(vo2);
data3 =  service.loadData(vo3);
data4 =  service.loadData(vo4);
 
result.add(data1.get(0));
result.add(data2.get(0));
result.add(data3.get(0));
result.add(data4.get(0));
cs

이런식으로 넣으려 할텐데

저러면 에러가 난다


result가 null이기 때문이다


이때


result를


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
List<dataVO> result = new ArrayList();
 
List<dataVO> data1 = null;
List<dataVO> data2 = null;
List<dataVO> data3 = null;
List<dataVO> data4 = null;
data1 =  service.loadData(vo1);
data2 =  service.loadData(vo2);
data3 =  service.loadData(vo3);
data4 =  service.loadData(vo4);
 
result.add(data1.get(0));
result.add(data2.get(0));
result.add(data3.get(0));
result.add(data4.get(0));
cs



이렇게


new ArrayList(); 로 선언해주면


에러없이 값이 잘 들어간다.

 

[달빛조각사] 달빛 조각사 서버

 

 

현재 사전 예약을 받고 있는 달빛 조각사의 서버가

 

엘릭서(Elixir)로 만들어 졌다고 한다.

 

출처: 네이버 포스트

 

https://m.post.naver.com/viewer/postView.nhn?volumeNo=19418083&memberNo=11255530

 

송재경 개발 ‘달빛조각사’, NDC에서 첫 정보공개

[BY 게임인사이트] 엑스엘게임즈가 개발 중인 모바일 MMORPG 달빛조각사가 NDC에서 모습을 드러냈다. 201...

m.post.naver.com

.

 

 

판타지 소설 좋아하는 사람들한테 엘릭서는

 

능력치를 영구히 증가시켜주거나 반시체도 살려내는 마법의 물약으로

 

알고 있는 사람이 더 많을텐데 

 

엘릭서(Elixir)는 얼랭(Erlang) 가상머신(VM) 위에서 동작하는

 

함수형, 동시성 프로그래밍 언어이다.

 

 

 

 

 

2019 개발자 컨퍼런스(NDC)에서 공개한 내용이라고 하는데

 

와 엘릭서로 게임서버를 만들줄이야..

 

저거 서버 뻑나거나 서버 개발자 그만둬버리면

 

다음 개발자 뽑기 좀 빡셀 것 같다

 

엘릭서가 유명한 언어긴 하지만 다른 언어들에 비해서

 

능숙히 다룰줄 아는 사람이 적은데 ㄷㄷ

 

문제는 달빛조각사를 개발한

 

엑스엘게임즈의 김민욱 서버개발 담당자 조차 

 

달빛조각사를 개발하면서 처음으로 접한 언어라고 한다;;

 

물론 아주 대단하신 개발자 분이시고 경험도 많으시니 큰 문제는 생기지 않겠지만

 

음... 사실 개발자 입장에서 처음 접한 언어로의 개발은 가능하긴 한데

 

갑자기 생긴 이슈에 대해선 대처 속도가 느릴 수 밖에 없기에

 

오픈하거나 업데이트 이후 발생하는 오류 처리 속도(여기선 정기점검의 연장 가능성)를

 

얼마나 빠르게 제어할 수 있을지가 궁금하다.

 

 

포스팅을 읽어 보니

 

또한 자동 코딩 포맷팅 기능과 더불어 빠른 컴파일 속도, 경량화된 프로세스(ligh-weight process), 마이크로 서비스, 빠른 이터레이션, 메모리 문제로부터의 해방(단, 메모릭 릭은 해결하지 못함), 타이밍 문제로 인한 고생이 덜하다는 것 등이 강점이다.

 

 

라는 문구가 있는데 저기서 - 메모리 릭은 해결하지 못함 -  이부분이... ㄷㄷㄷ

 

저 포스팅은 올해 4월에 포스팅된 글이니 지금은 아마 전부 해결 했겠지 하는 믿음을 가져 본다...;;;

 

 

마지막으로

 

엘릭서는 높은 가용성을 가지고 있고 높은 생산성을 가지고 있는 언어 이기 때문에

 

초기 단계에 있는 게임의 빠른 대규모 업데이트라던지 새로운 컨텐츠의 꾸준한 증가를 기대 해 볼 수 있을 것 같다.

 

 

 

 

 

[테라M] 구글 계정연동 오류 해결방법






구글 계정연동 오류 에러 나는 사람들을 위한 해결 방법입니다.


설정 -> 어플리케이션 관리자 에서


GOOGLE PLAY GAME를 찾습니다


거기에 사용제한이 걸려있는 경우 제한을 풀어주시면 됩니다.

[테라M] 에러코드 65538 계정연동 오류, 푸쉬알림 오류



현재 아이폰에서 발생하는 대표적인 오류 두가지는 


에러코드 65538 계정연동 오류, 푸쉬알림 오류 이 두가지일 것이다


푸쉬알림 오류는 일종의 권환오류중 하나라고 생각되어 진다.


녹스에서도 동일한 오류가 발생하고 아이폰에서 발생한다는 점에서


개인적인 뇌피셜로는 권한관련 오류일듯 한데


이건 금방 고쳐질것 같다. 게임하는데 지장도 없으니 큰 문제도 없는데


문제는


에러코드 65538이다


로그인 오류 : 앱에 로그인하시는데 오류가 발생했습니다. 나중에 다시 시도하세요



라는 문구가 나타나는데


안드로이드에서 계정연동 후


아이폰기기로 다시 계정 연동할때 나타나는 에러다



안드로이드에서 키워놓은거 폰바꿔서 아이폰으로 연동하려는데


그게 안되면


얼마나 빡치겠는가.



개인적인 해결 방법은



안드로이드에서 계정 연동을 먼저 했다 아이폰으로


옮겨야 하는경우




1. 아이폰에 설치된 테라의 캐쉬데이터를 전부 지우고 다시 연동을 시도 한다



2. 1번이 안되면  PC에 녹스 설치후 녹스에 테라M을 설치한 다음 녹스에서 페북 연동을해 캐릭터를 가져온다.

   그리고 그 이후 아이폰에서 페이스북 연동을 이용해 캐릭터 정보를 가져온다.(이때 녹스에서 페북연동을 해지하지 않습니다. 그냥

녹스만 종료하고 연동 ㄱㄱ)




위의 두가지 방법이 전부 안된다면...








첫 번째,

1. 설정>게임센터로 가서 현재 로그인하고 있는 Apple ID를 선택한 뒤 로그아웃합니다. 그리고 다시 로그인하세요.

2. iPhone/iPad를 강제로 재시동합니다(iPhone, iPad 또는 iPod touch 재시동하기 - Apple 지원에서 "강제로 재시동하기"를 참조하세요. 사과로고가 보일 때까지 홈버튼+잠자기버튼을 계속 누르고 있으면 강제 재시동이 됩니다.)

3. 설정>일반>날짜와 시간에서 "자동으로 설정(Set Automatically)"을 켬으로 합니다.

이 방법이 듣지 않는 사용자는 다른 방법을 다시 적용해 보세요.

 

두 번째,

1. iPhone/iPad에서 현재 구동중인 모든 앱을 닫습니다.

2. 에어플레인 모드로 변경합니다.

3. 전원을 껐다가 몇 분 기다린 뒤 다시 iPhone/iPad의 전원을 켭니다.

4. 설정>게임센터에서 현재 로그인되어 있는 Apple ID를 선택한 뒤 로그아웃합니다.

5. 에어플레인 모드를 해제하고, 다시 wifi를 활성화합니다.

6. 설정>게임센터에서 다시 로그인합니다.




OR


간단히는 설정>재설정>모든 설정 재설정


OR


아예 다른 Apple ID로 게임센터를 로그인하는 것만으로 문제가 해결되었다는 사람도 있습니다;


위의 방법까지 안된다면....

저도 방법이 없네요 ㅠ_ㅠ


하지만 게임 에러해결 전문가로 방법은 계속 찾아보도록 하겠습니다.


+ Recent posts