본문 바로가기
[Kotlin Tutorial] DSL construction - Chap 11. [Kotlin Tutorial] DSL construction - Chap 11. 참조 : Kotlin in action 11.1. From APIs to DSLs -DSL 을 작성하기 전에 생각해봐야 할 것이 있다. 우리의 (Kotlin?) 궁극적 목표는 가독성과 유지보수성을 최대로 늘리는 것.그것은 곧 좋은 API 를 설계하는 것으로 이어진다. 그렇다면 API 가 clean 하다는 것은 무슨 의미일까?1. 사용자가 읽기 좋은 것. 그것은 name 과 concept 을 잘 잡는 것이다.2. 의미없는 syntax 는 빼고, 최소한의 코드로 code 가 읽기 좋은 것. -Kotlin 에서는 clean API 를 위해서 extension function, infix calls, lambda syntax sh.. 2017. 9. 14.
[iOS Study] 코어 데이터 [iOS Study] 코어 데이터 출처 : 아론 힐리가스의 iOS 프로그래밍 -데이터를 로컬에 저장하는 방법은 “아카이빙” 또는 “코어 데이터” 를 사용한다. -아카이빙의 가장 큰 결점은 전부 다냐 아무것도 아니냐는 특성에 있다.아카이브 안의 내용에 접근하려면 전체 파일을 언아카이브해야 한다.변경사항을 저장하려면 전체 파일을 다시 쓰기 해야 한다.반면 코어 데이터(Core Data)는 저장된 객체의 일부만 가져올 수 있다.그리고 어떤 객체를 변경한다면 파일의 해당 부분만 갱신할 수 있다.이러한 점진적 가져오기, 업데이트, 삭제, 삽입은 파일시스템과 메모리 사이를 오가는 많은 모델 객체를 가지는 경우 앱의 급격한 성능 향상을 가져올 수 있다. -코어 데이터는 객체-관계형 매핑 ( object-relatio.. 2016. 3. 25.
[iOS Study] 저장, 읽기, 앱 상태 [iOS Study] 저장, 읽기, 앱 상태 출처 : 아론 힐리가스의 iOS 프로그래밍 -여기서는 iOS 에서 파일 시스템을 통해 읽고 쓰는 데 필요한 개념과 기법을 배운다. -아카이빙은 iOS 에서 모델 객체를 저장하는 가장 흔한 방법 중 하나이다.객체의 아카이빙은 그 객체의 프로퍼티들을 모두 기록하고 파일시스템에 그 내용을 저장하는 것을 포함한다.언아카이빙(unarchiving)은 아카이브한 데이터로부터 객체를 다시 만든다. -인스턴스들을 아카이브하고 언아카이브해야 할 클래스들은 NSCoding 프로토콜을 반드시 따라야 하며, 두 필수 메소드 encodeWithCoder: 와 initWithCoder: 를 구현해야 한다. -encodeWithCoder: 메시지를 받으면, 전달된 인자인 NSCoder .. 2016. 3. 7.
[android] rooting 없이 db 내용 보기. ( open source library ) [android] rooting 없이 db 내용 보기. ( open source library ) 기본적으로 app 의 database 는 data/data/[PackageName]/databases 에 들어있다. 그런데 data/data 폴더는 rooting 을 하지 않으면 권한이 없어서 접근을 할 수 없어, 현재 db 안에 들어있는 내용을 보는 것은 좀 어렵다. 그런데 요런 참한 놈이 나왔네. https://github.com/infinum/android_dbinspector 요 녀석을 사용하면 루팅 없이 db 내용을 쉽게 볼 수 있다. 물론 이 녀석이 data/data 폴더를 접근하여 db 파일을 꺼낼 수 있도록 해주는 건 아니고,프로그래밍으로 db viewer 의 역할을 하는 activity 를 .. 2014. 4. 17.
MYSQL TUtorial #1 웹 데이터베이스 만들기 MYSQL TUtorial #1 웹 데이터베이스 만들기 MYSQL 시작 MySQL 사용을 위해서는 다음의 과정을 완료해야 한다. 1. 웹 서버에 MySQL 설치를 마쳐야 한다. 파일 설치 MySQL 실행한 사용자 설정 경로(path) 설정 필요하면 mysql_install_db 를 실행 루트 비밀번호 설정 필요없는 사용자와 테스트 DB 등을 삭제 MySQL 서버 돌리고 자동적으로 실행되도록 설정 사용자 설정 : GRANT 명령어 Global, Database, Table, Column 4단계로 권한 조정이 필요하다. GRANT privileges [columns] ON itemTO user_name [IDENTIFIED BY 'password'][REQUIRE ssl_options][WITH [GRANT.. 2014. 1. 21.
[PHP] File Manipulation Tutorial PHP, File Manipulation Tutorial =====파일 열기 $fp = fopen( "$DOCUMENT_ROOT/../orders/orders.txt", "w" ); - $_SERVER['DOCUMENT_ROOT'] 는 웹 문서 트리의 루트를 가르킨다. - 경로를 나타낼 때, / 를 쓰는 것이 좋다. \ 는 윈도우즈에서는 사용할 수 있지만, Linux 에서는 \\ 로 인식시켜야 하기 때문. - file mode 는 다음과 같다.rr+ : 읽고 쓰기 위함.ww+ : 읽고 쓰기 위함.x : 경고 쓰기, 만일 파일이 있을 경우 파일을 열지 않고, fopen() 이 false 를 반환하고 PHP 는 경고x+ : 파일을 읽고 쓰기 위함.a : 추가 모드, 파일을 추가 쓰기 위해 연다.a+ : 파일.. 2013. 12. 30.
[Java] JDBC, Database 연결하여 사용하기 자바, JDBC, Database 연결하여 사용하기 JDBC 를 이용하여 Database 를 연결하여 사용하는 방법을 알아본다. Statement Database Query 는 Statement 객체를 이용하는데, 이 객체는 DBConnection 을 통해서 얻을 수 있다. Statement stmt = con.createStatement(); Statement 에는 다음의 2개의 대표함수가 있다. int executeUpdate( String sql ); // db 조작에 관한 어떤 명령을 수행한다. ResultSet executeQuery( String sql ) // db query 에 사용된다. ResultSet ResultSet 은 안드로이드의 Cursor 와 같은 녀석이라고 보면 된다.Resu.. 2013. 10. 11.
[Java] JDBC, Database Stored Procedure 와 CallableStatement 자바, JDBC, Database Stored Procedure 와 CallableStatement StoredProcedure StoredProcedure 는 데이터베이스 내에 일종의 "함수" 를 선언하여 반복적으로 어떤 작업을 수행하는 것을 말한다. 이것은 수행자체가 서버쪽에서 되는 것이기 때문에 수행속도도 더 빠르고, 네트워크에 사용되는 트래픽도 줄어든다. CREATE OR REPLACE PROCEDURE insert_user( name VARCHAR2 )ISBEGININSERT INTO user VALUES( name )END 이렇게 기술한 파일을 .sql 파일로 저장하여 sql console 을 수행할 폴더에 넣어주고,console 에서 이 파일의 파일명을 호출하면 stored procedure.. 2013. 9. 24.
[Java] JDBC, Database Clob 이 뭐야? 자바, JDBC, Database Clob 이 뭐야? CLOB 이란 오라클의 필드 타입으로 4GB 의 Text 데이타를 저장할 수 있다. ( 대용량 ) 4GB, CLOB, DATABASE, Java, jdbc, oracle clob, text data, 대용량 text, 오라클, 자바, 필드 타입 2013. 9. 2.
반응형