본문 바로가기
[iOS Study] 연락처 프로그래밍 가이드 in iOS - BaseObjects [iOS Study] 연락처 프로그래밍 가이드 in iOS - BaseObjects https://developer.apple.com/library/ios/documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/BasicObjects.html#//apple_ref/doc/uid/TP40007744-CH3-SW1 -Address Book database 를 확실히 이용하기 위해서는 4가지 요소를 잘 알아두어야 한다. 1. Address books2. Records3. Single-value properties4. Multi-value properties Address Books -ABAddressBookRef in.. 2017. 6. 19.
[Java Concurrency] 성능, 확장성 #2 [Java Concurrency] 성능, 확장성 #2 11.4. 락 경쟁 줄이기- 작업을 순차적으로 처리하면 확장성(scalability)을 놓치고, 작업을 병렬로 처리하면 컨텍스트 스위칭에서 성능에 악영향을 줄 수 있다. 따라서 락을 놓고 경쟁하는 상황이 벌어지면 순차적으로 처리함과 동시에 컨텍스트 스위칭도 많이 일어나므로 확장성과 성능을 동시에 떨어뜨리는 원인이 된다. 즉 락 경쟁을 줄이면 줄일수록 확장성과 성능을 함께 높일 수 있다. - 병렬 앱에서 확장성에 가장 큰 위협이 되는 존재는 바로 특정 자원을 독점적으로 사용하도록 제한하는 락이다. - 락을 두고 발생하는 경쟁 상황에는 크게 두 가지를 생각해 볼 수 있다. 락을 얼마나 빈번하게 확보하려고 하는지, 한 번 확보하고 나면 해제할 때까지 얼마나.. 2017. 5. 4.
[Effective Java] 잘 판단해서 최적화하자 [Effective Java] 잘 판단해서 최적화하자 - 최적화에 대한 명언이 있다. 더 많은 컴퓨팅 죄악이 다른 어떤 한 가지 이유(무지로 인한 어리석음을 포함해서)보다는 효율성(달성이 안 되는)의 이름으로 저질러진다. 사소한 효율성은 잊어야 한다. 97%의 시간에 대해 논하자. 성급한 최적화는 모든 죄악의 근원이다. 최적화에 관한 두 가지 규칙을 따르자. 규칙 1. 하지 말자. 규칙 2. (전문가에 한해서). 아직 하지 말자. 정말 최적화되지 않은 솔루션이 있을 때까지는. - 성급한 최적화는 얻는 것보다 잃는 것이 더 많기 쉽다. 최적화를 하면서 빠르지도 않고 제대로 동작하지도 않으며, 문제를 쉽게 해결하기도 어려운 소프트웨어를 만들기도 쉽다. - 성능 때문에 훌륭한 아키텍쳐 원리를 포기하지 말자. .. 2017. 2. 16.
[Django] 파이썬 웹 프로그래밍 - Django 의 핵심 기능 #1 [Django] 파이썬 웹 프로그래밍 - Django 의 핵심 기능 #1 -책을 읽으며 Remind 하는 내용, 핵심 내용, 모르던 내용을 정리한 것입니다. 예문 및 자세한 설명은 책을 구매하여 보세요~ * 4.1.1. 데이터 입력 및 수정 * 4.1.2. 필드 순서 변경하기 -테이블 데이터 변경이 아닌 테이블을 보여주는 UI 양식 변경은 admin.py 파일을 변경하면 된다.아래와 같이 순서에 대해 정의하는 admin.ModelAdmin 을 상속하는 녀석을 만들고, register 할 때 이 class 를 함께 전달하면 된다. class QuestionAdmin(admin.ModelAdmin): fields = [‘pub_date’, ‘qestion_text’].. 2016. 12. 13.
[Django] 파이썬 웹 프로그래밍 - Django 웹 프레임워크 #2 [Django] 파이썬 웹 프로그래밍 - Django 웹 프레임워크 #1 -프로젝트란 개발 대상이 되는 전체 프로그램을 의미하며,프로젝트를 몇 개의 기능 그룹으로 나누었을 때, 프로젝트의 하위 서브 프로그램을 앱이라 말한다.즉 서브 프로그램인 앱을 개발하고, 이들을 모아 프로젝트 개발을 완성하게 되는 것이다. 이런 개념으로 프로젝트 디렉토리와 앱 디렉토리를 구분하고,코딩하는 파일도 프로젝트 파일인지 앱 파일인지 구분해서 적절한 위치에 저장해야 한다. -중요한 점은 하나의 앱이 여러 개의 프로젝트에 포함될 수 있기 때문에,앱을 한 번만 개발하고 이를 다른 프로젝트에 재사용하여 개발의 생산성을 높일 수 있다.앱 단위로 이들을 모아 프로젝트로 만들고,프로젝트를 모아서 더 .. 2016. 12. 12.
[Django] 파이썬 웹 프로그래밍 - 웹 프로그래밍의 이해 [Django] 파이썬 웹 프로그래밍 - 웹 프로그래밍의 이해 -책을 읽으며 Remind 하는 내용, 핵심 내용, 모르던 내용을 정리한 것입니다. 예문 및 자세한 설명은 책을 구매하여 보세요~ * 1.2.1. 웹 브라우저를 사용하여 요청 * 1.2.2. 리눅스 curl 명령을 사용하여 요청 -curl 명령은 HTTP/HTTPS/FTP 등 여러 가지의 프로토콜을 사용하여 데이터를 송 수신할 수 있는 명령이다. * 1.2.3. Telnet 을 사용하여 요청 -telnet 명령은 터미널 창에서 입력하는 내용을 그대로 웹 서버에 전송한다.telnet 명령모드에서 나가려면 아래 두 라인을 입력해야 한다. ^] ( Ctrl + ] )quit .. 2016. 12. 6.
[android] 연락처 수정, 삭제에 대한 추가정보 [android] 연락처 수정, 삭제에 대한 추가정보 연락처 업데이트 =provider 를 통해 insert 를 제공하는 테이블은 raw_contacts 와 data 만. =Contacts 테이블은 view table 이다. = Contacts 테이블은 Auto aggregation 을 통해 자동으로 정리된다. = raw_contacts 의 내용이 contacts 에 aggregation 되는 조건은.. 이름이 같을 때 이름이 동일한 단어로 구성되어있지만 순서가 다를 때 전화번호나 이메일 혹은 닉네임을 공유할 때 연락처 삭제 = raw_contacts 를 삭제하면 종속된 data 는 자동으로 삭제가 된다. contacts 를 지우면 종속된 raw_contacts 를 자동으로 삭제한다. = Contacts.. 2015. 11. 16.
Java SQLite Tutorial 1. JDBC jar 다운받기 https://bitbucket.org/xerial/sqlite-jdbc/downloads 2. Classpath 에 jar 연결하기. 3. DB and table creation Connection conn = null; Statement stmt = null; try { Class.forName( "org.sqlite.JDBC" ); conn = DriverManager.getConnection( "jdbc:sqlite:test.db" ); stmt = conn.createStatement(); String sql = "CREATE TABLE test " + "(_id INT PRIMARY KEY NOT NULL," + " name TEXT NOT NULL, " + " .. 2014. 9. 16.
[android] Concurrent Database Access [android] Concurrent Database Access https://github.com/dmytrodanylyk/dmytrodanylyk/blob/gh-pages/articles/Concurrent%20Database%20Access.md 새로운 SQLiteOpenHelper 를 만들면, 이것은 새로운 database connection 을 만드는 것이다.다른 connection 에서 동시에 한 db 에 write 를 시도하면, 한쪽은 lock 문제로 fail 한다. 여러 Thread 에서 동시에 db 작업을 할 경우에는 반드시 한 connection 을 사용하도록 유도해야 한다. 이 때 주의할 것은 각각의 thread 에서 db.close() 를 호출할 경우 한 connection 의 ge.. 2014. 8. 17.
반응형