본문 바로가기
[SQLite3] 03. SQL 고급 #2 [SQLite3] 03. SQL 고급 #2 이 글은 "빠르게 활용하는 모바일 데이터베이스 SQLite3” 이란 글을 보며 필요한 내용만 정리한 글입니다.자세한 내용은 책을 구매해서 보세요 9. 트리거 -DB TRIGGER 란 특정 테이블이나 뷰에 INSERT, DELETE, UPDATE 와 같은 데이터 조작 이벤트가 발생했을 때 자동으로 지정된 동작을 수행하게 하는 것이다. 트리거 활용 -syntaxCREATE TRIGGER [triggerName] [triggerTiming] [triggerOperation] ON [tableName]BEGIN [sqlOperations]END; triggerTiming 은 아래와 같다.BEFORE : 대상 테이블의 CUD 동작 직전에 트리거에서 지정한 동작이 수행된다.. 2018. 5. 19.
[Effective Objective-C] #21 오브젝티브-C 에러 모델을 이해하라 [Effective Objective-C] #21 오브젝티브-C 에러 모델을 이해하라 출처 : Effective Objective-C -기본적으로 ARC ( Automatic Reference Counting) 가 예외(Exception)에 안전하지 않다.사실 이는 범위 끝에서 릴리스되어야 하는 객체가 예외가 발생하면 릴리스되지 않는다는 것을 의미한다.컴파일러 플래그( flag ) 를 켜면 예외 안전( exception-safe ) 모드를 생성할 수 있지만,그렇게 하면 예외가 발생하지 않는 상황에서도 동작하는 추가적인 코드가 만들어진다.이 컴파일러 플래그는 -fobj-arc-exceptions 다. -ARC 를 사용하지 않더라도 예외가 발생했을 때 메모리 누수를 막는 안전한 코드를 작성하는 것은 어렵다... 2017. 9. 1.
[Kotlin Tutorial] Kotlin 의 Type system #2 [Kotlin Tutorial] Kotlin 의 Type system #2 참조 : Kotlin in action 6.2. Primitive and other basic types 6.2.1. Primitive types: Int, Boolean, and more -Kotlin 은 primitive type 과 wrapper type 을 구분하지 않는다. -그렇다면 Int 가 object 라면 Kotlin 은 모든 primitive type 을 실제로 object 로 만드는가?당연히 그렇게 안 했다.compiler 가 대부분의 Int type 을 Java 의 primitive type 으로 변형시킨다.generic, collection 등은 원래 Java 의 Integer 형태만 담을 수 있으므로 이 경.. 2017. 8. 22.
[Java Concurrency] 단일 연산 변수와 넌블로킹 동기화 [Java Concurrency] 단일 연산 변수와 넌블로킹 동기화 - 병렬 알고리즘과 관련한 최근의 연구 결과를 보면 대부분이 넌블로킹 알고리즘, 즉 여러 스레드가 동작하는 환경에서 데이터의 안정성을 보장하는 방법으로 락을 사용하는 대신 저수준의 하드웨어에서 제공하는 비교 후 교환(compare-and-swap) 등의 명령을 사용하는 알고리즘을 다루고 있다. - 넌블로킹 알고리즘은 운영체제나 JVM 에서 프로세스나 스레드를 스케줄링 하거나 가비지 컬렉션 작업, 그리고 락이나 기타 병렬 자료 구조를 구현하는 부분에서 굉장히 많이 사용하고 있다. - 넌블로킹 알고리즘은 락을 기반으로 하는 방법보다 설계와 구현 모두 훨씬 복잡하며, 대신 확장성과 활동성을 엄청나게 높여준다. - 넌블로킹 알고리즘은 훨씬 세밀.. 2017. 5. 9.
[Effective Java] equals 메소드를 오버라이드 할 때는 hashCode 메소드도 항상 같이 오버라이드 하자. equals 메소드를 오버라이드 할 때는 hashCode 메소드도 항상 같이 오버라이드 하자. - equals 메소드를 오버라이드 하는 모든 클래스에서는 반드시 hashCode 메소드도 오버라이드 해야 한다. 그렇게 하지 않으면 Object.hashCode 메소드의 보편적 계약을 위반하게 되어, HashMap 과 HashSet 및 HashTable 을 포함하는 모든 hash 기반 컬렉션들에서 제대로 작동 안 할 수 있다. - HashCode 의 메소드 명세 계약 사항은 아래와 같다. 1. equals 메소드에서 비교하는 객체의 값이 변경되지 않는다면, 여러번 호출해도 일관성 있는 정수를 반환해야 한다. ( 단 어플리케이션이 재실행 될 때까지 같을 필요는 없다. ) 2. equals 메소드 호출 결과 두 .. 2016. 10. 5.
Long 을 Int 로 casting 할 때 다음을 고려하자. Long 을 Int 로 casting 할 때 다음을 고려하자. -casting 하려는 long 값이 양수, 음수를 모두 사용한다면, 그리고 충분히 큰 값을 사용한다면함부로 int 로 casting 해서는 안된다. - 안전한 down casting 다음과 같이 하면 좋다. public static int safeLongToInt(long l) {if (l Integer.MAX_VALUE) {throw new IllegalArgumentException(l + " cannot be cast to int without changing its value.");}return (int) l;} -값 손실을 고려한다면 IllegalArgumentException 대신 .. 2015. 12. 28.
Objective-C 의 기본 ( Basic Objective-C ) Object-C 의 기본 ( Basic Objective-C ) 출처 : http://www.tutorialspoint.com/objective_c/ > - OOP 언어로 Smalltalk-style 을 C 언어 에 가미한 언어이다. Apple 의 OSX 와 iOS 에서 공식적으로 사용되는 언어이다. > - Object-C 는 OOP 의 4가지 조건 ( Encapsulation, Data hiding, Inheritance, Polymorphism ) 을 모두 만족시키는 언어이다. - Foundation Framework 는 아래 명시된 기능들을 비롯해 많은 기능을 제공한다. * NSArray, NSDictionary, NSSet 과 같은 data type 을 제공 * file, string 등 많은 u.. 2015. 6. 16.
Android 놓치기 쉬운 안드로이드 성능 향상 팁 Android 놓치기 쉬운 안드로이드 성능 향상 팁 출처 : http://developer.android.com/training/articles/perf-tips.html 아래 두가지 규칙이 모든 성능 향상의 기본 법칙이다. 1. 필요 없는 일은 하지 말아라. 2. 피할 수 있다면 memory 를 잡는 일을 하지 말아라. 참고로 micro-optimization 을 한다고 해도 모든 단말에서 똑같은 성능향상이 있는 것이 아니다.VM 의 종류, Processor 의 종류에 따라서도 조금씩 다르고, JIT 의 유무에 따라서도 다르다. 아래 항목들은 대부분의 환경에서 최적화시킬 수 있는 micro-optimization 기술을 소개한다. 쓸 데 없이 객체를 생성하지 말자. GC 를 유발하며, GC 는 conc.. 2014. 4. 3.
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.
반응형