US 404 Error

Request Status Visitors Hits
GET HTTP/1.1 404 2 3
GET /ccvv HTTP/1.1 404 1 1
GET /download/ ~ 404 5 5
GET /favicon.ico HTTP/1.1 404 20 31
GET /manager/html HTTP/1.1 404 1 2
GET /robots.txt HTTP/1.0 & 1.1 404 40 91
GET /wls-wsat/CoordinatorPortType HTTP/1.1 404 1 1
GET /wordpress\xea\xb0\x80 HTTP/1.1 404 1 1
GET /wordpress\xec\x9d\x98 HTTP/1.1 404 1 1
GET /wp/ HTTP/1.1 404 1 1
GET /wp/eng/ ~ 404 53 197
GET /wp/kr/ ~ 404 71 615
HEAD /inc/02.jpg HTTP/1.1 404 1 1
HEAD /myadmin/scripts/setup.php HTTP/1.0 404 1 3
HEAD /phpMyAdmin/scripts/setup.php HTTP/1.0 404 2 4
HEAD /wp/p=5603&amp HTTP/1.0 404 1 1
POST /wp/xmlrpc.php HTTP/1.1 404 1 4
POST /xmlrpc.php HTTP/1.1 404 1 4

호스팅 받던 서버를 회사에 구축하고 회선을 따서 사용하고 있다.

여러 상황을 점검하고 있는데 우선 404 에러 났을 때 로그가 필요해서 후임에게 부탁했고,
정운씨가 깔끔하게 로그를 잘 뽑아주었다.

워드프레스 옮기면서 구멍난 페이지도 본 페이지로 가게 잘 해두었다.

본 페이지는 frameset이라 무한 루프 돌지만 않으면 잘 되니...

<script type="text/javascript">

  var adfly_id = 4986892;

  var adfly_advert = 'int';

  var frequency_cap = 5;

  var frequency_delay = 5;

  var init_delay = 5;

</script>

<script type="text/javascript">

  var adfly_id = 4986892;

  var adfly_advert = 'int';

  var frequency_cap = 5;

  var frequency_delay = 5;

  var init_delay = 5;

</script>

<script languagu="javascript">

 document.location.href="http://morpheus3d.co.kr/";

 

</script>

웹 페이지 로딩속도는 VPN으로 확인을 해도 

호스팅 받는 것보다 확실히 빠르다.


 

일주일이 지나 그냥 웹으로 업로드 하기로 결정했다.

구글 백업&싱크는 여전히 드랍박스에 비해 제대로 동작하지 않는다.

파일 개수가 일정 개수를 넘으면 오류가 나는 것 같다. 일전에 지난 1년간이라고 말했는데 정확히 말하면 구글은 2년동안 에러 수정을 못하고 있다고 봐야 겠다.

그에 반해 웹 업로드는 더욱 빨라졌다. 웹 기업인데 괜스레 윈도우 앱에 기대를 걸진 말아야지 하고, 드랍박스는 데탑앱으로 싱크하고 구글에는 크롬으로 올리니 작업이 팍팍 진행된다.

시간이 없는 사람이라면 내가 그동안 많은 삽질을 했으니

드랍박스에서 구글 드라이브로 마이그레이션 하기

로 검색하는 분이라면 드랍박스로 싱크 우선 건다. 그리고 크롬으로 연 구글 드라이브에 드래그&드랍으로 넣는다. 이후 지우면 드랍박스에서도 날아가기 때문에 매우 간편하다.

난 둘 다 싱크해서 폴더만 옮기면 자동 싱크가 될거라 생각했다. 일전에 테스트 했을 때 구글드라이브는 3테라 넘어갈 때 문제가 발생했었는데 지금은 500기가 넘어가도 문제가 발생한다.

대신 웹 업로딩은 매우 빠르므로(현 시점에서는) 마이그레이션은 위와 같은 방법으로 해야 시간 낭비가 적을 것 같다.

런쳐 스크린은 정말 순식간에 사라진다.

AppDelegate의 didFinishLaunchingWithOptions 에

[NSThread sleepForTimeInterval:4];

를 추가해서 런쳐 스크린을 질질 끌 수도 있겠지만,

 

iOS8~11까지 기다려도 여전히... 천천히 나올 때도 있고, 빨리 나올 때도 있고, 이미지가 클 때는 아예 안 나올 때도 있다. 버전업이 되면 괜찮아 질 줄 알았지만 iOS8~11이 될 때까지 애플이 생각하는 런쳐 스크린이 그렇다면 그냥 커스텀으로 구현하는게 맞겠다.


스토리 보드로 구현을 해도 되겠지만 이미 스토리 보드는 짜여져 있고 건들고 싶지 않은 때

메인에 붙일 서브 뷰를 추가하는 것이 가장 깔끔하다.

 

코드로 구현해야 할 때는 이렇게...

<?xml version="1.0" encoding="UTF-8"?>

http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<string>LaunchScreen</string>

</plist>


우선 info.list에서 기존의 런쳐 스크린을 지운다.
.xib, .mm, .h 만든다.

 


------

#ifndef LaunchView_h

#define LaunchView_h

#import <UIKit/UIKit.h>

@interface LaunchView : UIView
{
}

- (void)viewLoad;

@end

#endif

 

#import "LaunchView.h"

@implementation LaunchView

- (id)init
{
self = [super init];
if (self)
{
NSArray *nibObject = [[NSBundle mainBundle] loadNibNamed:@"LaunchView" owner:self options:nil];

self = [nibObject objectAtIndex:0];
[self viewLoad];
}
return self;
}
- (void)viewLoad
{
}
@end


.xib 에 CustomClass에 연결시켜 준다.
메인 스토리보드가 참조하는 헤더에 뷰를 추가한다.
#import "LaunchView.h"

@property (weak, nonatomic) LaunchView *viewLaunch;


- (void)viewDidLoad {

되었을 때 init 해준다.

LaunchView *viewLaunch = [[LaunchView alloc] init];

_viewLaunch = viewLaunch;

_viewLaunch.frame = _viewBanner.frame = _viewConsul.frame =
CGRectMake(0, 0, _viewFullScreen.frame.size.width, _viewFullScreen.frame.size.height);

크기 지정하고 메인에 뷰에 붙여준다.

[_viewFullScreen addSubview:_viewLaunch];

 

 

 

타임 스케쥴러에 붙여줘서 일정 시간이 지나면 뷰를 떼버리면 된다.


[_viewLaunch removeFromSuperview];

떼버리기 싫으면 뷰를 히든으로 바꾸면 된다. 아래는 관련 코드.

 


typedef enum { 

TIMER_LAUNCH=0,

 

...


- (void) timerScheduled:(NSTimer*)theTimer

{

if (eTimerState == TIMER_LAUNCH) {
_viewLaunch.hidden = NO;

CFTimeInterval cTime = CFAbsoluteTimeGetCurrent();
if (cTime - sTime > 4.5f) {
_viewLaunch.hidden = YES;
eTimerState = TIMER_INIT;
}
} else if ...


- (void)resetSelectButton 
{
_viewLaunch.hidden = YES;
- (void) timerScheduled:(NSTimer*)theTimer;

timer = [NSTimer scheduledTimerWithTimeInterval:TIME_INTERVAL target:self selector:@selector(timerScheduled:) userInfo:nil repeats:YES];

 

 

'Blog History' 카테고리의 다른 글

438  (0) 2020.06.07
437  (0) 2020.06.07
435  (0) 2020.06.07
434  (0) 2020.06.07
433  (0) 2020.06.07

+ Recent posts