분류 전체보기 86

Swift 4 - 폰트 체크하기, 폰트 적용하기

Swift 4 - 폰트 체크하기, 폰트 적용하기체크 리스트폰트를 넣는다. ( Target MemberShip 꼭 체크)info.plist에 넣는다. ( 파일명 .ttf 까지 넣어야 한다.)Fonts provided by application - item 0 - fontName.ttfBuild Phases - Copy Bundle Resources에 있는지 확인실제로 폰트를 적용할 때는 폰트 이름을 넣어야 한다. ( 파일이름 X ) let fontName = "blackTime" UIFont(name: fontNmae, size: fontSize)폰트 이름 체크 하기. // 폰트 체크 하기 UIFont.familyNames.sorted().forEach{ familyName in print("*** \(f..

Mobile App/iOS 2019.03.09

하루에 1개씩 코딩테스트하고 있습니다.

해당 코딩테스트 사이트는 Codility입니다. ( CountDiv 테스트 케이스는 통과 했지만 제출해서 틀린부분을 보면, [] 빈 배열 [0,0,0...] 중복된 숫자 등을 고려를 안해서 결과가 안좋게 나왔습니다. ) 퇴사후... 쉬고 있다보니 코딩테스트와 기초공부를 하고 있습니다. ( 취업하면 자주는 못할 듯...)이 사이트의 좋은 점은 Time Compexity를 신경을 써야 한다야 하는 겁니다. 그리고 정확성을 요구 합니다.프로그래머스는 제출하고 오류 발견시 다시 제출이 가능 합니다. 하지만 Codility는 1번 제출하면 끝 입니다.제출 하기 전에 고민을 해야한다는 겁니다. 그래도 계속 재시험 볼 수 있어서 크게 상관은 없지만, 실제 코딩 테스트라고 생각하면 1번의 제출이 정확해야 합니다.덕분에..

잡담 2019.03.05

webfront.dev, webbackend.dev 도메인을 샀습니다.

webfront.dev, webbackend.dev 도메인을 샀다28일 3시부터 도메인 가격이 매우 내려가서 사게 되었다.Chrome에서는 계속 Redirect가 안되어서 뭐가 문제지…? 하고 있었다.찾아보니 Chrome에서 .dev 도메인은 SSL을 기본적을 가지고 있어야 한다.일단은 IE, safari에서는 되니… SSL을 사는 거는 나중에 고려해 봐야 겠다. I bought domain. it is 'webfornt.dev' and 'webbackend.dev'The domain price went down from 3 p.m. on the 28th.Chrome has a problem. that is not being redirected.I kept looking for the cause. In ..

잡담 2019.03.02

오랜만에 운영체제 책을 펴 보았습니다.

오랜만에 운영체제 책을 펴 보았습니다. 작년까지만 해도 집에 있는 전공 책들을 팔려고 중고나라에 까지 올렸지만 잘 팔리지는 않았다. ( 다행이라고 생각 중 )기억속에 어렴풋이 있긴 하지만 오랜만에 책을 봐서 그런지 모르는게 너무 많다.It's been a long time since I opened an operating system book.. Until last year, I even put my major books in "Second-hand Country" to sell, but it didn't be sell well. ( I think it's a good thing. )There is a vague in my memory, there is so many things I don't know ..

잡담 2019.03.01

javascript this에 대해서 제대로 알아봅시다.

ThisThis는 많은 사람들이 헷갈려 합니다. 그러면 어떻게 구별을 해야하는가? This는 호출한 놈이 누군지 보면 됩니다.var someone = { name: 'bugtype', showMessage: function() { console.log(this) } }위와 같은 객체를 만들고 아래와 같이 한번 실행을 해봅시다.// case 1 var object = someone object.showMessage();호출한놈 : object결과 : {name: "bugtype", showMessage: ƒ}// case 2 var object2 = someone.showMessage console.log(object2)호출한놈 : window ( console.log )결과 : ƒ () { console..

goaccess 사용방법

설치법brew 설치brew install goaccess 사용법access.log 파일을 열면 된다.goaccess access.log 위 사진처럼 parsing에 맞는 것을 선택하면 된다. html 파일로 내보내기goaccess access.log -a -o report.html parsing 코드를 직접 작성해서 html으로 내보내기goaccess -f access.log --log-format='%^ %v %^[%d:%t %^] "%m %U %H" %R %^ %s %b "%u" "%h"' --date-format=%d/%b/%Y --time-format=%T -o report.html %v - 주의access.log는 parsing code 와 일치해야 한다.%h, %d %r 는 필수로 포함해야 한..

Web/Tech 2019.02.27

N사 만화뷰어 분석

설명 N사 만화뷰어는 사진을 찍지 못하게 막아두었다.어떤 원리로 막는지 궁금해서 여러가지 시도를 했다.어디까지나 호기심으로 한 것으로 코드는 공개하지 않습니다. 분석 ( 티스토리 에디터 화면에서는 문단 번호가 보이는데... 글에서는 이상하게 안보이네요. . ) print screenshot을 찍으면 clipboard에 저장되는데 저장되는 순간 clipboard에서 지운다. print key 감지 한다 다른 스크린샷 활용시 opengl 감지시 해당 영역을 사진을 찍을 수 없다고 표시 결제는 웹(js, html)으로 처리한다 만화 이미지는 openGL로 그린다. 뷰어가 켜질 경우, 2개의 자식 Thread가 생성 된다. Main, Thread1, Thread2 themida 패킹으로 되어있다. 패킹프로그램으..

보안관련 2019.02.27

카카오 오픈채팅방

def solution(records): users = {} cmd = {"Enter": "님이 들어왔습니다.", "Leave": "님이 나갔습니다."} for record in records: strSplit = record.split() if strSplit[0] == 'Enter': users[strSplit[1]] = strSplit[2] elif strSplit[0] == 'Change': users[strSplit[1]] = strSplit[2] output = [] for record in records: strSplit = record.split() if strSplit[0] != "Change": output.append('{}{}'.format(users[strSplit[1]], cmd..