모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    3dArtist님의
    개인페이지입니다
    가입 : 13-07-16
    방문 : 854회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_3844
    작성자 : 3dArtist
    추천 : 1
    조회수 : 629
    IP : 59.10.***.94
    댓글 : 14개
    등록시간 : 2014/06/08 07:25:08
    http://todayhumor.com/?programmer_3844 모바일
    mind blown - from swift
    옵션
    • 본인삭제금지
    오늘 오랜만에 친구를 만나서 수다 좀 떨다가 왔습니다. 당연 하루 정도 날라갔어요. 빨리 해야 되는데. ㅠ.ㅠ <div>그리고, 나름 먹튀를 본 듯 합니다. 대답해 줬더니 글이 없어요. 보류에도 없는 듯 하고. ㅠ.ㅠ </div> <div>질문 글도 아니고, 나누면서 나도 좀 기억해 보자는 의미로 글을 쓰지만, 먹튀를 보니 본인 삭제 금지를 걸고 싶어 졌습니다.</div> <div>틀리면 어떻하지 이거 흑역사 되는 건가? .... ㅠ.ㅠ</div> <div><br></div> <div>일단, 제목 보시면 mind blown, 제 정신이 아닌 거죠. ..... WWDC 비디오, advanced swift를 보는데 진짜로 저런 내용이 나옵니다.</div> <div>이거 보면 멍~~~ 하실 겁니다. 뭐 이런 건데.. 진짜 멍 하더군요. 일단, 신기한 것부터 시작해 봅시다.</div> <div><br></div> <div>1. syntax</div> <div>함수 이름 같은 걸 이용해서 짜기 쉽고, 읽기 쉽게 만들 수 있다는 겁니다. 예를 들면 이런 거죠.</div> <div><br></div> <div>println("You aren't sure how to pull \(<b>an ~ object</b>).")</div> <div><br></div> <div>>PULL MUD</div> <div>You aren't sure how to pull mud.</div> <div>>PULL ORANGE</div> <div>You aren't sure how to pull an orange.</div> <div><br></div> <div>보시면 알겠지만, 시현을 하면서 mud game을 짜고 있더라구요. 그 짧은 시간에 게임 하나를 뚝딱.. </div> <div>암튼, an ~ object 라는 syntax를 만들어 쓸 수 있습니다. an도 함수고 ~ 도 함수고 object는 struct 아니면 class겠죠.</div> <div>읽기는 좋은데, 만들기는 어렵고.. 영어 읽기 쉽게 만든다고 우리가 읽기 쉬울까요? 그래도, 신기하네요.</div> <div><br></div> <div>2. generic programming</div> <div>자 이제 쓸데없이 있지도 않은 상상 속의 동물 "여친"이나 생각하는 brain을 날려 버릴 때가 됐습니다. ㅋㅋㅋ... </div> <div>(그러나, 현실에는 아내가 있죠. 아내는 존재합니다.)</div> <div>진짜 멍~~~ 했거든요. 이거 혹시 흑역사 되는지 모르겠네. ㅠ.ㅠ</div> <div><br></div> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;"><span style="color:#bb2ca2;">func</span> fibonacci(n: <span style="color:#703daa;">Int</span>) -> <span style="color:#703daa;">Double</span> {</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;">    <span style="color:#bb2ca2;">return</span> n < <span style="color:#272ad8;">2</span> ? <span style="color:#703daa;">Double</span>(n) : <span style="color:#31595d;">fibonacci</span>(n - <span style="color:#272ad8;">1</span>) + <span style="color:#31595d;">fibonacci</span>(n - <span style="color:#272ad8;">2</span>)</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;">}</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;"><br></p> <div><span style="font-family:Menlo;font-size:11px;line-height:normal;color:#bb2ca2;">let</span><span style="font-family:Menlo;font-size:11px;line-height:normal;"> phi = </span><span style="color:#31595d;font-family:Menlo;font-size:11px;line-height:normal;">fibonacci</span><span style="font-family:Menlo;font-size:11px;line-height:normal;">(</span><span style="font-family:Menlo;font-size:11px;line-height:normal;color:#272ad8;">45</span><span style="font-family:Menlo;font-size:11px;line-height:normal;">) / </span><span style="color:#31595d;font-family:Menlo;font-size:11px;line-height:normal;">fibonacci</span><span style="font-family:Menlo;font-size:11px;line-height:normal;">(</span><span style="font-family:Menlo;font-size:11px;line-height:normal;color:#272ad8;">44</span><span style="font-family:Menlo;font-size:11px;line-height:normal;">)</span><span style="font-size:9pt;line-height:1.5;"> // 1.61803399... 11 sec</span></div> <div>값은 1.618.. 뭐 이런 거고 11초가 걸린답니다. 준수하네. 11초 정도는 기다릴 수 있습니다....</div> <div>(도대체 뭘로 돌린 거야? 내 맥이 고물인 거야? 11초는 개*.. 스크립트로 돌려서 그런 건가?. 그럴 거야. ㅠ.ㅠ)</div> <div>(너무 오래 걸리네요. <span style="font-family:'Lucida Grande';font-size:11px;line-height:normal;">174911 times</span><span style="font-family:'Lucida Grande';font-size:11px;line-height:normal;"> 에서도 답이 안 나와요. ㅠ.ㅠ)</span></div> <div>만.. 천재적인 애플 직원을 그럴 수 없다는 군요. 그래서..</div> <div><br></div> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;"><span style="color:#bb2ca2;">var</span> fibonacciMemo = <span style="color:#703daa;">Dictionary</span><<span style="color:#703daa;">Int</span>, <span style="color:#703daa;">Double</span>>()</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;"><br></p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;"><span style="color:#bb2ca2;">func</span> fibonacci(n: <span style="color:#703daa;">Int</span>) -> <span style="color:#703daa;">Double</span> {</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;">    <span style="color:#bb2ca2;">if</span> <span style="color:#bb2ca2;">let</span> result = <span style="color:#4f8187;">fibonacciMemo</span>[n] {</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;">        <span style="color:#bb2ca2;">return</span> result</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;">    }</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;">    <span style="color:#bb2ca2;">let</span> result = n < <span style="color:#272ad8;">2</span> ? <span style="color:#703daa;">Double</span>(n) : <span style="color:#31595d;">fibonacci</span>(n - <span style="color:#272ad8;">1</span>) + <span style="color:#31595d;">fibonacci</span>(n - <span style="color:#272ad8;">2</span>)</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;">    <span style="color:#4f8187;">fibonacciMemo</span>[n] = result</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;">    <span style="color:#bb2ca2;">return</span> result</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;">}</p> <p style="margin:0px;font-size:11px;line-height:normal;font-family:Menlo;"><br></p> <div><span style="font-family:Menlo;font-size:11px;line-height:normal;color:#bb2ca2;">let</span><span style="font-family:Menlo;font-size:11px;line-height:normal;"> phi = </span><span style="color:#31595d;font-family:Menlo;font-size:11px;line-height:normal;">fibonacci</span><span style="font-family:Menlo;font-size:11px;line-height:normal;">(</span><span style="font-family:Menlo;font-size:11px;line-height:normal;color:#272ad8;">45</span><span style="font-family:Menlo;font-size:11px;line-height:normal;">) / </span><span style="color:#31595d;font-family:Menlo;font-size:11px;line-height:normal;">fibonacci</span><span style="font-family:Menlo;font-size:11px;line-height:normal;">(</span><span style="font-family:Menlo;font-size:11px;line-height:normal;color:#272ad8;">44</span><span style="font-family:Menlo;font-size:11px;line-height:normal;">)</span><span style="font-size:9pt;line-height:1.5;"> // 0.1 sec 보다.. 빠른 듯.</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;">이런 식으로 짜면, 중간 과정을 저장해 놓기 때문에 반복과정을 없애서 무지 빠르게 계산이 된다는 겁니다. </span></div> <div><span style="font-size:9pt;line-height:1.5;">진짜 그렇습니다. 무지 빠르네요. 근데, 까탈스럽기로 유명한 애플 직원이 이건 좀 아니라는 겁니다.</span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div>let fibonacci <span style="font-size:9pt;line-height:1.5;"> = memoize {</span></div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>fibonacci, n in </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>n < 2 ? Double(n) : fibonacci(n - 1) + fibonacci(n - 2)</div> <div>}</div> <div><br></div> <div>memoize? 드디어 핵심이 나왔습니다. fibonacci 좀.. 멍 하잖아요. 근데, 이건 더 멍~~~~. memoize </div> <div><br></div> <div>func memoize<T: Hashable, U>( body: (T) ->U )  -> (T)->U {</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>var memo = Dictionary<T, U>()</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return { x in</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>if let q = memo[x] { return q }</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>let r = body(x)</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>memo[x] = r</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>return r</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>}</div> <div>}</div> <div>(돌리다 뻑 났습니다. 오... 이거 위험한 코드구나, 역시 외계어는 위험..)</div> <div>(맥도 맛이 갈 수 있네요.. ㅠ.ㅠ 속도가 ㅠ.ㅠ 메모리가 16GB 인데 15.99GB를 쓰고 있네요. 뭐냐?)</div> <div>아무튼, 뻑이 난 관계로 다시 시도하기가 좀 무서워서 돌려 보지는 않고 계속 쓰겠습니다.</div> <div><br></div> <div>그러니까 이게 generic 인데, 함수를 받아서 함수를 내어 놓는 거죠. 흠.. generic인데 함수를 받아서 함수를 내어 놓는다. </div> <div>이거 c++ generic에서도 하긴 하나요? 가물거리네. 뭔가 더 외계어인거 같은데, </div> <div><span style="font-size:9pt;line-height:1.5;">그래서 이게 가능합니다.</span></div> <div><br></div> <div>let parsePropertyList = memoize { (s: String) in s.propertyList() }</div> <div><br></div> <div>참고로 memoization은 속도를 높이는 기술인데, 계산 결과를 저장해 놨다가 같은 계산을 요구하면 저장된 결과를 이용하는 걸 말하는 거랍니다.</div> <div>오... 그렇구나. 암튼, generic 답게 다른 함수도 만들어 내어 놓는군요... 오... 난 이게 더 이상해. ㅠ.ㅠ</div> <div><br></div> <div>아무튼, 그래서 재귀 함수가 나오면 막 쓰면 되는 겁니다. 팩토리얼도 돌려봅시다.</div> <div><br></div> <div>let factorial = memoize { x in x == 0 ? 1 : x * factorial(x - 1) }</div> <div><br></div> <div>근데 이게 문제가 있다는 군요. 이유가 처음이 이상하다는 군요. 그래서, 이렇게 고치면 됩니다.</div> <div><br></div> <div>var factorial: (Int)->Int = { $0 }</div> <div>factorial = memoize { x in x == 0 ? 1 : x * factorial(x - 1) }</div> <div><br></div> <div>문제는 이걸 그냥 넘어갈 애플 직원이 아니죠. (외계인인 듯..)</div> <div><br></div> <div><b>func memoize<T: Hashable, U>( body: ((T)->U, T)->U ) -> (T)->U {</b> // generic, T는 Hashable 프로토콜을 만족해야 한다.</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// body라는 변수는 형이 (함수, 변수)->변수 인 함수.</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>// 리턴 값은 (T)->U 인 함수</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><b>var memo = Dictionary<T, U>()</b><span class="Apple-tab-span" style="white-space:pre;"> </span>// 저장 공간 선언</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><b>var result: ((T)->U)!</b><span class="Apple-tab-span" style="white-space:pre;"> </span>// forced unwrapping</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><b>result = { x in</b><span class="Apple-tab-span" style="white-space:pre;"> </span>// closuer, trailing</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><b>if let q = memo[x] {return q } </b><span class="Apple-tab-span" style="white-space:pre;"> </span>// optional binding, 있으면 저장 값 리턴</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><b>let r = body(result, x)</b><span class="Apple-tab-span" style="white-space:pre;"> </span>// 넘겨 받은 closure, body</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><b>memo[x] = r</b><span class="Apple-tab-span" style="white-space:pre;"> </span>// 결과 저장</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><b>return r</b><span class="Apple-tab-span" style="white-space:pre;"> </span>// 리턴</div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><b>}</b><span class="Apple-tab-span" style="white-space:pre;"> </span>// 이런 closuere를 trailing으로 가지고 있는 함수를 </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span><b>return result</b><span class="Apple-tab-span" style="white-space:pre;"> </span>// 리턴합니다.... ??????</div> <div><b>}</b></div> <div><br></div> <div><b>let factorial = memoize { factorial, x in x == 0 ? 1 : x * factorial(x - 1) } </b>// ??????????????????????</div> <div><br></div> <div>잉?????????????????? 아..... 외계어구나. </div> <div>아무튼 이게 여러분의 머리를 날려 버릴 거라군요. .. </div> <div>왜 날라가는지 모르겠다구요? 이미 날라간 겁니다. ㅠ.ㅠ</div> <div><br></div> <div>이런 게 많답니다. 잘 쓰면 엄청 좋답니다. 메뉴얼에 있다네요.</div> <div>반절쯤 읽었는데.. 없던데.. 뒷 부분인가? 어쩐지 class까지 다 나왔는데 반절밖에 안 나갔더라.. ㅠ.ㅠ</div> <div><br></div> <div>저 위에 쓴 코드를 이해할려면 이런 걸 알아야 합니다.</div> <div>1. type deduction : swift는 type safe 언어임에서 type 생략이 가능합니다. type에 대한 힌트만 있다면.. </div> <div>2. trailing closure : closure는 objective c 에서는 block 다른 언어에서는 lambda 같은 건데, 이걸 뒤로 빼는 거죠. 읽기 쉬우라고.. </div> <div><span class="Apple-tab-span" style="white-space:pre;"> </span>근데, 난 더 읽기 어려어요.. closure인지 함수인지 헷갈리는데.. </div> <div>3. generic : c++ 쓰거나 하면 아시겠죠. java는 대충 공부해서 있는지 없는지 잘 모르겠네요.</div> <div>4. protocol : Hashable 이 protocol 입니다. </div> <div>5. optional : optional과 그냥 type을 호환해서 쓸려면 !로 풀어야 합니다. </div> <div><br></div> <div>그러니까, 이런 걸 다 알면 외계어를 읽을 수가.. 있겠죠. 난 몰라서 멍~~~ 할 뿐인 거야. </div> <div>다섯개 다 아는데도 코드가 뭔 소린지 모르고, 멍~~~ 하다고 생각되는 건 내 착각일 거야. 그럴거야. ㅠ.ㅠ</div> <div><br></div> <div>마지막으로 swift model이라고 설명이 나오는데.. 약간 뜬 구름 잡는 거라, 쓰는데 별로 필요 없는 내용입니다.</div> <div>swift가 추구하는 "이상" 쯤 될 듯 합니다.</div> <div><br></div> <div>결론은.. 멍~~~ 하네요.</div>

    이 게시물을 추천한 분들의 목록입니다.
    [1] 2014/06/08 13:49:03  175.223.***.40  슝슝3  284767
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    31
    건강을 생각해서.. 창작글 3dArtist 15/06/12 03:05 35 0
    30
    설마 돈 다 쓴 건가? [1] 창작글 3dArtist 15/06/02 13:45 347 2
    29
    5차 감염까지 있었다는데요. [6] 3dArtist 15/06/02 02:46 533 11
    28
    콜로세움 글들을 봤는데요. [3] 3dArtist 15/05/15 03:57 246 5/4
    27
    아 모르겠다. [2] 3dArtist 15/05/09 01:34 68 1
    26
    사실 관계를 떠나서 경중을 따져 봅시다. [17] 3dArtist 15/05/09 00:53 231 4/5
    25
    여시와 ㅇㅂ는 동급이 아닙니다. [13] 3dArtist 15/05/08 00:55 236 2/9
    24
    솔직히 습관이런 거 보다 [6] 3dArtist 15/04/06 03:59 98 1
    23
    워드프레스는 정말 괜찮다고 생각합니다. [2] 3dArtist 15/02/21 03:12 49 7
    22
    리팩토링을 조금만 하는 팁 [3] 3dArtist 14/09/06 23:20 42 0
    21
    제5장 포인터, 배열, 구조체 [2] 3dArtist 14/09/01 17:36 48 0
    20
    [mac] swift 사용에 대해서 [4] 3dArtist 14/08/23 06:48 41 0
    19
    [정보] ios metal 관련 샘플 3dArtist 14/08/05 15:23 29 0
    18
    metal, 좋긴 하다 [5] 3dArtist 14/06/12 03:50 44 1
    17
    metal, 흑역사? (긴글) 3dArtist 14/06/11 07:09 35 0
    16
    swift <-> objective-c [4] 3dArtist 14/06/10 07:04 41 3
    15
    the swift programming language 3dArtist 14/06/09 06:37 48 1
    mind blown - from swift [15] 3dArtist 14/06/08 07:25 29 1
    13
    ?, pattern - from swift 3dArtist 14/06/07 07:05 25 4
    12
    matirx[2,2] - from swift [3] 3dArtist 14/06/06 19:54 26 2
    11
    =, ==, === [8] 3dArtist 14/06/06 06:42 46 3
    10
    reversed = sort(names, > ) [3] 3dArtist 14/06/05 20:02 18 2
    9
    지록위마 [81] 3dArtist 14/06/04 15:45 53 7/15
    8
    임진왜란은 임진왜란으로 부릅시다 [15] 3dArtist 14/06/02 01:02 55 6/6
    7
    고조선에 대한 잡설은 잡설이다. 3dArtist 14/04/19 15:31 0 0/8
    6
    상식 없는 얘기를 아주 자연스럽게 하시는 분들이 있습니다. [43] 3dArtist 14/04/12 13:47 91 3/12
    5
    식민지 근대화론이 주류 학설이긴 합니까? [19] 3dArtist 14/03/15 00:31 37 0/5
    4
    식민지 근대화론 반박하면 닥반 먹는군요. [7] 3dArtist 14/03/14 19:04 71 3/5
    3
    디씨 역갤에 십몇년 전 있었던 일 [11] 3dArtist 14/03/13 23:47 77 2/11
    2
    양극단의 의견이 많은 거 같아서 다른 의견 써 봅니다 3dArtist 14/01/25 15:07 20 0
    [1] [2] [3] [4] [5]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈