문제

알FTP와 같은 FTP로 파일 업로드를 할 때 

553 Could not create file 과 같은 오류가 뜨면서 파일을 업로드 할 수 없을 때가 있습니다. 

이것은 업로드 할 공간에대한 permission denied 문제 입니다. 


해결 방법

관리자 계정으로 ftp 서버에 접속해서 아래와 같은 명령어를 칩니다.

예를 들어 

파일을 업로드 할 사용자 계정이 ftpusername 이고 파일을 업로드할 디렉토리가 /var/www/html 일 때

chown -R ftpusername /var/www/html



출처: http://minooz.tistory.com/155 [우주 Blog]

{@

$args->module_srl = 모듈번호;

$output = executeQuery('document.getDocumentCount', $args);

}

{$output->data->count} 

출처 : https://www.xpressengine.com/tip/22827295




제 경우 XE 는 1.2 인가까지 쓰면서 이미지 슬라이더 등도 만들고 나름 노력했으나;

제로보드 4 가 여전히 더 편해서 다시는 안쓰기로 했었습니다.


그러다가 워드프레스로 옮겨탈까 하던 중에 제로보드 XE 가 버젼이 많이 업되어서 좋겠구나 하고 왔지요.


예약 게시판 하나 만들다가 뚜껑이 열려서 마구 헤맨 결과를 여기 적어 드립니다.


팁들로 하나씩 시리즈로 작성할게요.


참고로, 고수님들에게는 쓰레기 팁이고, 노가다로 그냥 자신의 스킨을 개조해서 쓰실 분들께는

간단하게 제작할 수 있는 팁입니다.


그러니, 고수분들은 가볍게 뒤로가기를 눌러주세요...



완전 초보분들도 따라하기 쉽게 쓸게요.




사용자 정의를 활용하여 폼 형식으로 개발하는 무식한 방법(1)


사용자 변수를 만든 XE가 초보 입장에서는 잘못이다.


우선 사용자 정의 변수를 만든 XE 가 이 뛰어난 기능을 엉망으로 쓰게 해둔 것에서 하나씩 보도록 하죠.



(XE 설치폴더)/modules/board/skins/해당스킨/write_form.html 파일에서 보게 되면,


<table cond="count($extra_keys)" class="et_vars exForm bd_tb">
  <caption><strong><em>*</em></strong> <small>: {$lang->is_required}</small></caption>
  <tr loop="$extra_keys=>$key,$val">
   <th scope="row"><em cond="$val->is_required=='Y'">*</em> {$val->name}</th>
     <td>
     {$val->getFormHTML()}
     </td>
  </tr>
</table>


이런 부분이 있을 것입니다.


이 부분에 간단히 코드를 추가합니다.


<table cond="count($extra_keys)" class="et_vars exForm bd_tb">
  <caption><strong><em>*</em></strong> <small>: {$lang->is_required}</small></caption>
  <tr loop="$extra_keys=>$key,$val">
   <th scope="row"><em cond="$val->is_required=='Y'">*</em> {$val->name}</th>
     <td>{$val->getFormHTML()}<br><br>
    module_srl : {$val->module_srl}, <br>
    idx : {$val->idx}, <br>
    name : {$val->name}, <br>
    type : {$val->type}, <br>
    default : {$val->default}, <br>
    desc : {$val->desc}, <br>
    is_required : {$val->is_required}, <br>
    search : {$val->search}, <br>
    value : {$val->value}, <br>
    eid : {$val->eid}, <br>
    total : {print_r($val)}
   </td>
  </tr>
</table>


이렇게 해주면 name 값을 처리하는 것이나 val 을 통해서 어떤 값들이 넘겨지게 되는 지를 확인 가능합니다.


그런데 여기에서 문제가 있죠.




<tr loop="$extra_keys=>$key,$val">
 

코드 상의 문제...라고 볼 수도 있습니다.


고수님들께서 보시기엔 아무 문제 없이 쉽게 해결하겠지만,


이렇게 되어 있어서 사용자 변수를 키값과 밸류값으로 그냥 뿌리는 형식으로 처리하면서,


 {$val->getFormHTML()}


이 함수에 넣고 그냥 폼으로 출력되게 하는 아주 간단한 구현을 해놓은 것입니다.


레이아웃이나, 메뉴 등에서만해도 끌올 등이 되는 등 아주 편한데,

이 값으로 해놓다보니, 우리 초보들은 사용자 정의를 입맛에 맞게 쓸 수가 없습니다.


간단히 설명해드리자면 idx 값에 숫자가 증가하면서 그게 인덱스가 되는 무식한 방법이죠.

그냥 사용자 정의 변수 1~n 번까지 루프 돌아서 뿌려버려~

이게 전부인 거죠.


일단 초보 단계에서 이걸 해결하는 방법은 위의 코드를 아예 주석으로 처리하고,

처리하기 전에 html 을 소스 보기로 보면서 무식하게 부분별로 형식을 지정해주는 거죠.


그런데 이렇게 한다고 해도 문제가 발생합니다.

우선, 수정을 눌렀을 때에 값 전달이 표기가 안됩니다.

그 다음으로는 입력시의 모양과 출력시의 모양이 달라집니다 -_-;


뭐, 출력시의 모양이 더 중요한 곳인 지, 입력시의 모양이 더 중요한 곳인 지는 각자의 판단에 달려있겠죠.


그래서 우선 위에 설명한 것처럼 idx 로 사용자 정의 변수를 쓰는 방식을 개조해야 합니다.



(XE설치경로)/modules/board/board.view.php 파일에서,


/**
* use context::set to setup extra variables
**/
  $oDocumentModel = getModel('document');
  $extra_keys = $oDocumentModel->getExtraKeys($this->module_info->module_srl);
  Context::set('extra_keys'$extra_keys);



이 부분을 찾아서 그 바로 아래에,

/**
* add extra variables to order(sorting) target
**/

if (is_array($extra_keys))

{
  

// extra_keys_map : extra_keys가 있을 때, 맵을 추가로 구성

   $extra_keys_map = array();

foreach($extra_keys as $val)

{

$extra_keys_map[$val->eid] = $val; // 맵에 값 할당 by diaimm

    $this->order_target[] = $val->eid;
}
      Context::set('extra_keys_map', $extra_keys_map); //맵을 view 로 전달해주는 거죠

}



이런 식으로 코드를 추가해둡니다.



아, 이런 이제서야 발견했습니다;; 확장 컴포넌트에 코드 입력이 있네요;

아놔 -_-;


// apply xml_js_filter on header
        $oDocumentController = getController('document');
        $oDocumentController->addXmlJsFilter($this->module_info->module_srl);


이 부분을 찾아서,


// if the document exists, then setup extra variabels on context
        if($oDocument->isExists() && !$savedDoc) {
            $extra_keys = $oDocument->getExtraVars();
            Context::set('extra_keys', $extra_keys);
 
            // 아래 코드에서 extra_keys 값이 있을 때 추가로 맵을 구성
            if (is_array($extra_keys))
            {
                $extra_keys_map = array();
                foreach($extra_keys as $val)
                {
                    $extra_keys_map[$val->eid] = $val;
                }
 
                Context::set('extra_keys_map', $extra_keys_map);
            }
            //여기까지
        }


그 밑에 이런 식으로 추가해주는 거죠.


이렇게 해주는 이유는 앞에서 말씀드린 것처럼 기본적으로 XE 에서는 사용자 정의 변수 자체를

아주 가볍게 보고 별 쓰잘데기 없지만 원하는 사람도 있으니까... 라는 정도로 코딩을 해둔 때문입니다.

(아, 이건 그냥 초보가 느끼는 심정 그대로 썼습니다 -0-)


그냥 보면 사용자 변수 이렇게 쓰이니까, 개발자 분들은 쉽게 사용하세요 정도로 안내해준 것인 듯 한데,

초보들에게는 때에 따라서 매우 필요한 기능이 제대로 활용하기 어려우니까 쪼끔 분노게이지 상승하는 거죠.


어쨌든, view 에서 index 를 쓰게 만들어서 idx 를 이용해서 변수를 순차로 매기는 것에서 순서를 무시하고도

값을 전달하고 받는 것에 문제가 없게끔 하는 첫 작업인 거죠.


그렇게 해주면 idx 가 아닌 사용자 정의 변수 이름 그대로 쓸 수 있습니다.


예를 들어서 사용자 변수 명을 testInput 라고 만들었다고 칩니다.


  <table cond="count($extra_keys)" border="1" cellspacing="0" summary="Extra Form" class="extraVarsList" width=100%>
   <caption><em>*</em> : {$lang->is_required}</caption>
   <tr>
    <th scope="row"><em>*</em> 테스트 입력</th>
    <td> <input type="text" name="extra_vars1" value="" class="text" />
      <p>여기가 설명 부분이 되겠죠</p>
    </td>
   </tr>


게시판에 글 쓰기를 하고 앞에서 말씀드린 부분을 주석처리하기 전에 보게 되면,

이런 식으로 소스코드를 볼 수 있을 것입니다.


따라서 주석 처리를 해주고 write_form.html 자체에 저 코드를 추가하면, 아무런 이상없이 쓰게 된다는 거죠.


저기서 보게 될 중요한 점은 어디에서 testInput 는 존재하지 않습니다.

즉, 변수명은 받기만하고 쓰잘데기없는 값처럼 둔갑하는 거죠.

extra_vars1 이라고 해서 여기 숫자만 중요합니다.


뭥미?


그렇다는 것은 사용자 변수를 20개 만들었는데...


아차! 하나 빼먹음... 하는 순간...

입력 순서를 원하는대로 받으려면,


끌 올도 못하는데 새로고침 무지 하면서 올리기 버튼 눌러야 합니다.

(맨 위로 올림도 없고 그냥 무식하게 계속 올려야 합니다)

아니 이미 존재하는 모듈상에 코드가 존재하잖아요, 끌어 올리기...

모듈로 따로 개발하고 코딩한 이유가 그런 거 섞어쓰기 편하려던 목적 같은데...

객체지향... 내가 메뉴에서 마우스로 끌어 올리고 내리고 하는 코드 몰라도 그렇게 되게끔...


더 열받는 것은 잘못 누르면 다시 내려가요 ㅠㅠ


게다가 여러가지 테스트를 해보면 전화번호나 기타 값을 해보면 html 코드에 보면 id=extra_var3-1055

이런 식으로 각 기본값들에 대해서 엄청난 숫자 번호까지 매기는데, 이 값도 전혀 쓸모 없습니다.

순차적으로 이것도 그냥 인덱스죠.


그러니 무식한 코딩을 쓴 후에는 변수값 하나 추가하는 순간 멘붕인거죠.


그래서 앞에 과정을 해둔 것입니다.


위의 코드를 수정해보면,


<input type="text" name="extra_vars1" placeholder="{$extra_keys_map['testInput']->name}" style="width:155px;" value="{$extra_keys_map['testInput']->value}" class="text" />


이렇게 바꿔주는 거죠.



이제 우리가 활용하게 되는 것은,

extra_vars숫자 (사용자 정의 에서 나오는 앞의 숫자값입니다) 와 사용자 변수명이 되었습니다.


간단히 설명드리겠습니다.

placeholder 값은 당연히 입력 칸에 살짝 흐리게,

비 로그인 상태에서 글쓰기 할 때에, 비밀번호 -> 이렇게 써서 입력 받잖아요? 그런 태그 속성입니다.

사용자 정의 이름 입력할 때에 Ex) extra_vars_1 이라는 것도 마찬가지로 구현되어 있죠.

실제로는 밑줄 없습니다. 밑줄빼기도 아니고... 이건 뭐;;;


아무튼,


{$extra_keys_map['testInput']->name} 이게 사용자 변수의 입력항목 이름이 되는 거죠.


그리고 이 부분이 중요합니다.


style="width:155px;"


이게 입력 칸의 너비 조절이 되는 거죠.

size 로는 안됩니다. 원래 형식이 들어 있는 Extravar.class.php 에서 고친다고 해도 저렇게 고쳐줘야 작동합니다.


이제 이렇게 해준 상태에서,


가장 중요한 부분이죠.

이것 때문에 이 긴 글을 읽고 있는데 말입니다;



value="{$extra_keys_map['testInput']->value}"


이렇게 해주면 값 전달이 되어서 수정시에도 제대로 되겠죠.


그리고 지금은 맵을 두가지로 쓰기 때문에 루프 돌 때에도 사용자 변수명으로 if 써서 foreach 등에 끼어들기가 쉽습니다.

변수명 자체를 활용할 수 있으니까요.


오늘은 여기까지 설명하구요,


다음에는 사용자 정의 변수 형식에 우리 입맛대로 쑤셔 넣는 방법을 배우겠습니다.


그걸 해줘야, 시간이든, 해외 국제 전화번호든...

우리 넣고 싶은 값을 다 넣을 수 있죠.


코딩같은 코딩은 이번만 조금 다루고, 다음부터는 일단 무조건 노가다입니다.


1. Integers(Int) / 정수타입 


let age = 25



2. Floating Point Number / 실수


Float은 소숫점 6자리까지

Double은 소숫점 15자리 

애플은 굳이 Float이 필요하지 않으면 Double을 권유함



3. Boolean /  참 거짓 확인을 위한 타입


let isTrue = true //Bool
Binary 값으로, Swift는 0/1로 인식함.
(True = 1, False = 0)


'공부 > iOS' 카테고리의 다른 글

Swift Numbers& Booleans 정수, 실수  (0) 2018.11.08
Swift Naming Convention  (0) 2018.11.08
Swift 변수 Variables / 상수 let 차이  (0) 2018.11.08
iOS ) UIImage VS CGImage VS CIImage  (0) 2018.11.03

Swift 시 통상 사용하는 규칙들

 


1. 띄어쓰기 허용X


let programminglanguage = "Objective-c"

2. 낙타표기법 사용


let favoriteProgrammingLanguage = "Swift"



3. 숫자로 시작할 수 없다


4. 스페이스, 탭과 같은 공백문자도 허용 X


5. 수학기호 사용 X

'공부 > iOS' 카테고리의 다른 글

Swift Numbers& Booleans 정수, 실수  (0) 2018.11.08
Swift Naming Convention  (0) 2018.11.08
Swift 변수 Variables / 상수 let 차이  (0) 2018.11.08
iOS ) UIImage VS CGImage VS CIImage  (0) 2018.11.03

변수(Mutable Type)

var str = "hello, playGround"


str = "Hello, World"


변수 선언 


var number = 7

 = > 가능



상수(Immutable Type)

let language = "Swift"


language = "Objective-c" 

 -> Cannot assign to value : "laungage' is a 'let' constant

에러

'공부 > iOS' 카테고리의 다른 글

Swift Numbers& Booleans 정수, 실수  (0) 2018.11.08
Swift Naming Convention  (0) 2018.11.08
Swift 변수 Variables / 상수 let 차이  (0) 2018.11.08
iOS ) UIImage VS CGImage VS CIImage  (0) 2018.11.03

UIImage VS CGImage VS CIImage



● UIImage 

UIImage라는 이름에 걸맞게, UIImage는 UIKit안에 있는 클래스입니다.

정의도 간단;;;


"An object that manages image data in your app."

"앱의 이미지 데이터를 관리하는 객체입니다."


이미지 객체를 사용하여 모든 종류의 이미지 데이터를 표현 할 수 있으며, UIImage 클래스는 기본 플랫폼에서 지원하는 모든 이미지 형식의 데이터를 관리 할 수 있습니다. 
이미지객체는 변경 불가능(immutable)하므로, 당신은 항상 이미 존재하는 디스크에있는 이미지파일이나 프로그래밍으로 생성된 이미지 데이터에서 새로운 이미지객체를 만들어야 합니다.
이미지 객체가 모든 플랫폼 고유의 이미지 형식을 지원하지만 앱의 대부분의 이미지에 PNG 또는 JPEG 파일을 사용하는 것이 좋습니다. 객체는 두 형식 모두를 읽고 표시 할 수 있도록 최적화되어 있으며 이러한 형식은 다른 대부분의 이미지 형식보다 우수한 성능을 제공합니다. PNG 형식은 무손실이기 때문에 앱 인터페이스에서 사용하는 이미지에 특히 좋습니다.




● CGImage 

<CGColor와 UIColor의 차이>글을 읽고오신분이라면...CG라는 것을 보고......바로 알아챘을 수도 ㅎㅎ..
네, CGImage의 CG는 Core Graphics의 약자입니다!!!
Core Graphics 프레임워크 안에 있는 녀석이죠.
정의는;;UIImage보다 더 간단함 

"A bitmap image or image mask."
"비트맵 이미지 또는 이미지 마스크."

허허..이걸 알려면 Quartz 2D Programming Guide를 읽어야 하네요..
간단하게 말하면, CGImage는 비트맵만 나타낼 수 있다고 합니다. blend modes나 masking과 같은 작업에는 CGImageRefs가 필요해요. 
실제 비트 맵 데이터에 접근하고 변경해야하는 경우 CGImage를 사용할 수 있습니다. 또한 NSBitmapImageReps로 변환 될 수 있습니다. CGImage에서 새로운 UIImage를 생성하려면, 이런식으로 하면 돼요. 

var aNewUIImage = UIImage(CGImage: imageRef)
//where imageRef is a CGImage




CGImage의 프로퍼티들을 보면, 



아주 비트비트스럽죠





 CIImage 

CIImage의 CI는 뭘까...

못들어본 사람도 있을거에요! 바로 "Core Image"라는 프레임워크의 약자이며, CIImage는 바로 이 Core Image프레임워크 안에 있는 클래스에요.

정의는 

"A representation of an image to be processed or produced by Core Image filters."

"코어 이미지 필터(Core Image filters)에 의해 처리되거나 생성 될 이미지의 표현."

그리고 아주아주 흥미로운 정보가 있어요.


"A CIImage is a immutable object that represents an image. It is not an image."

CIImage는 이미지를 나타내는 불변(immutable)객체 입니다. 그것(CIImage)은 이미지가 아닙니다. 


이미지가 아니래요!!! 이미지가 아니면 뭐냐? 

"관련된 이미지 데이터만 있으며, 이미지를 생성하는데 필요한 모든 정보가 있습니다"

오...신기..더 알아봅시다.


일반적으로 CIImage 객체는 CIFilter, CIContext, CIColor 및 CIVector와 같은 다른 Core Image 클래스와 함께 사용됩니다. CIImage 객체에는 연관된 이미지 데이터가 있지만 이미지가 아닙니다. CIImage 객체를 이미지 "레시피(recipe)"로 생각할 수 있습니다.


CIImage 객체는 이미지를 생성하는 데 필요한 모든 정보를 가지고 있지만 Core Image  실제로 그렇게 할 때까지(실제로 이미지를 생성할 때 까지) 이미지를 렌더링하지 않습니다. 

이 "게으른 평가(lazy evaluation)"방법은 Core Image가 가능한 한 효율적으로 작동하도록합니다.


CIContext 및 CIImage 객체는 변경 불가능합니다. 즉, 각 객체를 스레드간에 안전하게 공유 할 수 있습니다. 여러 스레드가 동일한 GPU 또는 CPU CIContext 객체를 사용하여 CIImage 객체를 렌더링 할 수 있습니다. 


하지만 이는 CIFilter객체 경우에는 아닙니다. CIFilter 객체는 스레드간에 안전하게 공유 할 수 없습니다

앱이 다중 스레드 인 경우 각 스레드는 고유 한 CIFilter 객체를 만들어야합니다. 


Core Image는 자동 조정 방법도 제공합니다. 이 메소드는 이미지에 공통적 인 결함이 있는지 분석하고 해당 결함을 수정하기 위해 일련의 필터를 반환합니다. 필터에는 스킨 톤, 채도, 대비 및 그림자의 값을 변경하고 플래시로 인한 적목 현상 또는 기타 아티팩트를 제거하여 이미지 품질을 향상시키는 값이 미리 설정되어 있습니다. 


OverView에 있는 내용을 번역해본건데..막 스레드니.......뭐니...잘 이해가 안가죠? 그래서 CIImage로 뭘 할 수 있는데;;

CIImage를 가지고, CIFilter등 다른 Core Image 클래스를 사용하면,

이런거


또는 이런거





를 할 수 있게됩니다. 그냥 쉽게 생각해서!!!!!이미지에 필터 씌울 수 있다!!!!라고 생각하시면 편합니다. 아니 음..Core Image에서의 기능 중 하나라고 보시면 됩니다. 이런 작업들을 하려면 CIImage로 해야한다는 것이죠.

CIFilter를 보면..정말 엄청나게 많은 효과?필터?들을 이미지에 입힐 수 있다는 것을 보실 수 있습니다...


음...솔직히 말해서 CGImage는 아직 조금 감이 안온달까

비트맵을 다룰 수 있다는건 알겠는데....어떤식으로 뭘 할 수 있는지...잘...ㅎㅎ..

오늘 글을 정리하자면, 앱 내에서 기본 이미지 타입을 다룰거라면 UIImage(png가 제일 좋다), 비트맵을 다룰거라면 CGImage, 이미지에 필터나 다양한 효과를 적용하고 싶다면 CIImage를 사용하면 된다?..이정도가 되겠네요 :)

오늘도 도움이 되었길 바래요 :) 혹시 틀린부분이 있다면 댓글로 말해주세요 XD


참고 : https://medium.com/@ranleung/uiimage-vs-ciimage-vs-cgimage-3db9d8b83d94

https://developer.apple.com/library/content/documentation/GraphicsImaging/Reference/CoreImageFilterReference/index.html#//apple_ref/doc/filter/ci/CIBoxBlur

https://developer.apple.com/library/content/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_tasks/ci_tasks.html

https://developer.apple.com/library/content/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_images/dq_images.html



출처: https://zeddios.tistory.com/455 [ZeddiOS]

'공부 > iOS' 카테고리의 다른 글

Swift Numbers& Booleans 정수, 실수  (0) 2018.11.08
Swift Naming Convention  (0) 2018.11.08
Swift 변수 Variables / 상수 let 차이  (0) 2018.11.08
iOS ) UIImage VS CGImage VS CIImage  (0) 2018.11.03

https://m.blog.naver.com/metooneis/221205368477


많이 찾아봤지만 되는 방법은 결국 여기서 찾았따

출처 :https://m.blog.naver.com/catstar9898/220804915390


서버를 열고싶은데..
저희집 와이파이 기종이 kt에요ㅠㅠ
저희집은 olleh에요..ㅠㅠ

서버를 열고싶은데 어떻게열어요? 

그런 kt,올레 마크유저들을 위한 강좌 시작합니다!

2017.07.06(월)
올레 포트포워딩이 여러차례 바뀐탓에
수정하였습니다. 올레와이파이 유저분들은
아래로 쭉 스크롤 내리셔서 나오는 영상을 참고하여주세요

MINECRAFT
~kt,olleh 포트포워딩법~


먼저 포트포워딩을 하기위해서는
외부아이피와 내부아이피
이 두가지가 필요합니다!

먼저 외부아이피를 확인해볼까요?

먼저 인터넷에 들어가 초록검색창을 띄워줍니다

여기에다가
내ip확인
이렇게 입력해서 검색해주면

이렇게 외부아이피가 뜹니다!
이 외부아이피를 기억해 놓으세요

그 다음은 내부아이피 확인입니다
많은사람들이 어플을깔아서 확인하려하죠
꼭 어플을 설치하지 않아도 되는데 말이죠..
설정에서 와이파이로 들어가봅시다!
그럼 위 사진처럼 내가 접속한 와이파이가 뜨죠?

내가 접속한 와이파이를 터치하면
위 사진처럼 정보가 뜹니다
맨 아래의 ip주소를 기억하세요
당신의 내부아이피 주소랍니다! 


그럼 외부.내부아이피가 준비되었으니
포트포워딩을 해볼까요?

http://172.30.1.254/login.asp

이 주소가 포트포워딩을 하기위한사이트입니다
주소를 복사하여 인터넷에서 복붙하여 사이트로 들어가볼까요?

하지만 그들은 우리가
쉽게 포포하는걸 허락하지않지

비밀번호 입력 개귀찮앙


kt유저
아이디:ktuser
비밀번호:megaap

olleh유저
아이디:ktuser
비밀번호:homehub



그리고 보안키를 입력하고 로그인하시면

사이트 로그인 성공!
이렇게 메인화면이 뜰거랍니다

왼쪽에 보면 창이 있는데 
장치설정->트래픽관리
이렇게 이동해주세요

그럼 이렇게 생긴 곳으로 이동이 되는데요
여기서 포트포워딩을 할겁니다!

맨 위의 칸에는 아까 인터넷에서 찾은
외부아이피를 입력

소스포트와 외부포트는
전부 19132로 입력해주세요

내부IP주소에는
아까 와이파이에서 확인한
내부아이피를 입력

내부포트는
마찬가지로19132

프로토콜에서는 
kt와 올레는 유동성 아이피입니다
그러니 UDP로 바꿔주세요


유동성이라서 내부아이피가 매일 바뀌기에
자주 포트포워딩을 해야하는 깊은 빡


설명은 아무거나 해도 좋아요:)
그리고 저장하기 눌러주세요


아까 위에서 이런 창이 있었죠?
이제 DMZ설정으로 이동해주세요!

그럼 이렇게 생긴 창이 뜹니다!
여기서 DMZ호스트 IP주소에 
내부아이피를 입력해주세요!
그리고 설정하기를 눌러주시면
포트포워딩이 끝난답니다!

-----------------------
2017.08.07(월) 3차수정

올레 포트포워딩 방법(영상)

포트포워딩 방법이 다시 바뀌었던걸 모르고있었습니다.
정보수집이 부족했던점 죄송합니다..
영상은 친구님이 직접 찍어주셨습니다
댓가는 피시방비용


KT포트포워딩 방법(영상)

이건 좀 더 이해하실수 있도록 찍은 영상
블로거가 멍청해서 약간 헤매는점은 양해부탁드려요



------------------------


서버를 열고자 할때
서버에 들어올 사람들에게
외부아이피를 알려주셔야 합니다!
그리고 서버온의 여부를 알려주고
마인크래프트에 들어가 아무 맵에나 들어가있으면
곧 사람들이 입장한답니다!

처음으로 해본 강좌라 그런지
많이 어색하고 그렇네요0w0
무엇보다 설명을 제대로 했을까..듀근두근

kt와 올레유저분들
이 글 보시고 포포에 도움되길 바랄게요:)
늦은 수정과 정보에 죄송합니다..!!
더욱더 노력해보이겠습니다!


첫번째 강좌는 여기서 끝!


구글의 공식 도움말(한글)이 잘돼있어서 참고용으로 작성




 출처 : https://support.google.com/adsense#topic=3373519



+ Recent posts