본문 바로가기

Programming

(135)
[Android] Parcelable 에 대한 쉬운 이해 안녕하세요 명동 콜링입니다. 오늘은 Android에서 Model Class를 다룰 때 사용하는 Serializable 의 한 분류인 Parcelable에 대해 써보려고 합니다. 일단 Serializable이란 무엇인가, 영어의 뜻을 풀이하자면 '직렬화' 라고 얘기할 수 있는데 막연히 '직렬화' 라고 얘기하기엔 무슨 뜻인지 이해 하기 어렵습니다. 그래서 Android 시스템에서 동작하는 방식으로 이야기 하자면, A Activity에서 B Activity로 데이터를 전달할 때, 데이터를 묶어서 전달한다 라고 쉽게 풀이할 수 있습니다. 이해를 하는데 도움이 되도록 많이 함축된 문장이지만 이 안에는 "하나의 Class화 된 여러 데이터들이 순서대로 Byte형식으로 변환되어 A -> B로 전달된다." 는 식의 어..
[Objective-C] 카테고리 클래스 추가하기 카테고리는 기존에 정의된 어떤 클래스에 쉽게 확장을 할수 있도록 해줍니다. 직접 만든 클래스나, Objective-c에서 제공되는 UILabel, UIButton, UIView 등 UI 클래스들에 대해서 모두 확장이 가능합니다. Objective-c 일반적인 클래스는 정의부(.h)와 구현부(.m)로 이루어 집니다. 구현부에 사용된 함수들이 범용적으로 사용 되거나, 내용이 많아 질경우, 유지보수가 어렵게 됩니다. Objective-C에서는 이번부분을 카테고리 클래스를 생성할수 있게 해줌으로써 개발자들에게 유지보수를 용의하게 해줍니다. 사용법은 간단합니다. AClass.h AClass.m 클래스 생성 후 네트워크 관련 함수, 문자열 관련 함수를 AClass.m 구현부에 작성합니다. 그다음에 AClass+Ne..
[Swift] if..return을 알기 쉽게 대체한 guard 조건문 안녕하세요 명동콜링입니다. 이번에는 Swift에서 다른 언어와는 다르게 아주 간편하게 if... return 형태를 식별할 수 있는 guard 조건문에 대해 간단하게 알아 보려 합니다. 먼저 if... return의 형태가 어떤 것이냐 하면 다음과 같은 형태가 되겠습니다. 다음 예시는 간단하게 Playground에서 String값을 식별하여 return 처리를 한 예를 들었습니다. 이처럼 if 안에 있는 조건에 해당되는 데이터들은 더이상 메소드의 내용을 진행하지 못하고 팅겨주는 역할을 하는 흔히 개발자들이 필터링 할 때 사용하는 조건문 형태가 되겠습니다. 이 if ... return 형태의 조건문을 Swift에서는 guard 조건문이라는 것으로 따로 구분을 지어서 만들게 되었습니다. 그렇게 어렵지 않은데..
[ios] 기본 공유하기 기능 사용하기 사진 및 링크를 앱에서 다른 앱으로 공유 하기를 해야할때, iOS에서 제공하는 UIActivityViewController 사용하면, 간편하게 구현할 수 있습니다. UIActivityViewController 에서 제공하는 공유 대상의 서비스 범위는 SNS 또는 이메일, 클립보드 복사하기 와 iOS 소셜 프레임워크로 추가된 페이스북, 트워터 등이 있습니다. 페이스북에 글을 등록하려면, 예전엔 페이스북 API를 이용하여, 등록해야했기 때문에, 페이스북 개발자 생성 및 API Key발급도 해야했지만, UIActivityViewController 를 사용하면 페이스북 API를 이용하지 않고도 글을 등록할수 있습니다. 단, 아이폰에 페이스북 로그인이 되어있어야합니다. ------------------------..
[MySQL] DB Time Zone 변경 간혹 MySQL DB 작업 완료 후 DB 시간이 UTC 로 표시되는 현상이 발생하는 경우가 있습니다. 이런 경우 KST 로 표시 되도록 변경하는 방법을 확인해 보도록 하겠습니다. 우선 DB 접속에 접속 합니다. DB 의 Time Zone 설정이 되어 있는지 아래와 같이 확인 합니다. Time Zone 설정이 되어 있지 않다면 아래와 같이 표시됩니다 . mysql> select count(*) from mysql.time_zone; Time Zone 설정을 위해 리눅스 환경으로 돌아와 아래와 같이 입력합니다. $ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql 다시 DB 로 접속 합니다. DB Time Zone 정보를 확인해 보면 아래와 ..
[ios] XML 파서 이용하기 공공 데이터 API 중에는 XML로 제공되는 데이터들이 많습니다. ios에서 기본으로 제공하고, 사용법은 간단합니다. 1. URL 객체를 생성하고, url를 입력합니다. test URL는 동물보호관리시스템 유기동물 조회 서비스를 이용하겠습니다. https://www.data.go.kr/dataset/15001096/openapi.do NSURL *url = [[NSURL alloc] initWithString:@"http://openapi.animal.go.kr/openapi/service/rest/abandonmentPublicSrvc/abandonmentPublic?ServiceKey={{ServiceKey}}&bgnde=20140601&endde=20171210&upkind=417000&kind=0..
Android WebView 디버깅을 위한 개발자 도구, Web Inspector 안녕하세요. 명동콜링입니다. 이번 포스팅에 대한 주제는 일반 Web 환경이 아닌 Android WebView 환경에서 디버깅을 할 수 있게 해주는 Web Inspector에 대해 알아보려고 합니다. 이 Web Inspector를 통해 Web 환경과는 다른 Mobile 기반에서는 내가 개발한 웹 페이지가 어떤 모습을 하며 어떻게 동작하게 되는 지 알 수 있도록 해주기 때문에, 하이브리드 앱 개발 할 때에 강력한 툴이라고 생각이 됩니다. 그럼 이 강력한 툴을 어떻게 사용하느냐 하면, 먼저 준비해야 할 프로그램이 있습니다. 바로 ADB(Android Debug Bridge) 라는 프로그램인데, 이 프로그램은 Android를 컴파일 할 때 친숙한 디버깅 툴로 디바이스의 연결, 디버그를 도맡아서 하는 프로그램입니..
파이썬을 이용하여 웹 크롤러 만들기 #2 - BeautifulSoup4을 활용하여 크롤링하기 안녕하세요. 남산돈가스입니다. 지난 포스팅에 이어 오늘은 두번째 순서인 BeautifulSoup4를 활용하여 웹 크롤링을 해보도록 하겠습니다. 우선, BeautifulSoup 이라는 것이 어떤 건지 간단히 말씀드리자면, html코드를 python이라는 언어가 이해할 수 있는 객체 구조로 변환해주는 대표적인 html Parsing 라이브러리입니다. 웹크롤링을 한다면 필수적인 라이브러리로 파이썬 웹크롤링 서적에서도 소개될 만큼 검증 된 라이브러리입니다. 이번 포스팅에선 대표적으로 requests 와 BeautifulSoup4 라이브러리를 이용해서 크롤링을 해보려고 합니다. 먼저 위에서 말씀드린 라이브러리들을 install 해보겠습니다. 터미널에 pip install beautifulsoup4 를 입력하여 b..