IntroPython 3.6 부터 제공하는 os.scandir 기능 system call 과 win32의 기능을 토대로 만들었기 때문에 속도가 어마어마 하게 빠르다. (os.walk 보다 2배~20배 빠르다.) 필자도 빨라봐야 얼마나 빠르겠어 하고 사용해봤는데 결과는... 놀랍다.. 기존에 os.walk 혹은 os.walk기반의 listdir을 사용하여 기능을 구현한 부분이 있으면 빠르게 마이그레이션을 하는것을 추천한다.Snippet txt_files = [entry for entry in os.scandir(dir) if entry.name.endswith('txt')] #with extension dirs = [entry for entry in os.scandir(dir) if entry.is_dir..
IntroKotlin으로 작업 중 문득 Sequence와 Iterator에 대한 구체적인 차이점에 대해 의문이 생겨서 포스팅.Sequence와 Iterator둘다 kotlin에서 제공하는 interface이며 많은 extension이 구현되어있다.다만 sequence의 경우 kotlin-stdlib에 포함되어있는 최상위 interface이며 iterator의 경우 kotlin.collections에 포함되어 구현되어져 있다. 다만, 대부분의 extension이 함께 사용되어지며 표면상으로는 큰 차이점을 확인 할 수 없다.Sequence vs Iterator앞서 언급했듯이 interface상에서의 차이는 크게 찾아볼수 없다.Kotlin Doc을 찾아본 결과 두 기능의 가장 큰 차이는 intermediate..
FileTreeWalkKotlin의 Sequence interface를 구현한 class이며 file traversal에 관련된 기능들을 제공한다. kotlin에서 제공하는 iterator, sequence관련 extension과 함께 사용하면 다양한 원하는기능들을 매우 쉽게 구현할수 있다. 기본적으로 File에대한 extension으로 walk(default : top-down), walkTopDown, walkBottomUp의 형태로 사용가능하다 당연히 DFS(깊이 우선 탐색)의 형태로 구현되어있다. Kotlin extension인 filter를 사용해서 구현한 간단한 예제 2가지를 구현해 보았으며 이외에도 손쉽게 원하는 기능을 구현할 수 있을 것이다. Example - root 폴더 내의 모든 디렉..
Introduction2015년도 부터 Kotlin 공부해야지 생각만하다가 시간이 없어(핑계...) 미루고 미루다 이제서야 시작 해보려한다.이미 Google 진영에서 Android에 대한 공식언어로 못밖았고 현존하는 Kotlin에 한계점들에 대한 개선이 이뤄지는데로 (Android Studio가 그랬듯이..) 점진적으로 Java 점유율을 차지 할 것으로 보여진다. 개인적으로 새로운 언어를 공부 할 때 해당언어의 기본문법에 대한 공부이후 책 한권 읽은 후 미니 프로젝트 구현 의 수순으로 하는것에 익숙해져있기에 이번에도 동일하게 진행하며 해당 내용을 정리할 예정이다.What is Kotlin?2011년 친애하는 Jetbrain 형아들이 짠 하고 공개한 언어이며 많은 내부 문법들이 스칼라를 닮아있는것으로 보아..
Explain입력된 int을 bit로 변환하여 출력해주는 코드.int 이외에도 다양한 type에 적용가능.1byte = 8bit 인점을 감안하여 반복문을 생성한뒤반복자(i)를 기준으로 mask생성 후 출력.Code #include #include typedef int TYPE; void display_bit(TYPE x); int main(void) { TYPE input; scanf("%d", &input); display_bit(input); } void display_bit(TYPE x) { int i; for (i = sizeof(x) * 8; i-- > 0;) { if (x & 1
ButterKnife?Jake Wharton 님께서 개발하신 Android용 라이브러리이며 annotation processing을 통해 boilerplate code를 자동으로 생성하여 뷰와 필드 혹은 메소드를 바인딩 해주는 방식으로 동작한다.예제를 살펴보면 현재 구축해둔 혹은 구축할 예정인 프로젝트의 소스가 크게 간결해 질수 있다는것을 파악할수 있다. 기능@BindView 를 이용해서 findViewById의 호출을 없애는것.원하는 view를 묶어서 명령을 처리하는것.@OnClick을 활용하여 지저분한 listener의 선언을 없애는것.Resources 들에 대한 필드 선언과 할당을 합치는것.기능1. Eliminate findViewById. //------------------------------..
Bit 연산자?bit 연산이란 데이터의 최소단위(bit, 0,1)의 연산을 위해 사용되는 부호들을 의미한다. 비트 연산자의 피연산자는 정수 계열 형식(int, long , uint 등)이여야 한다.개인적으로 실무에서 구현당시 직접 사용할 일은 거의 없으나 펌웨어, 각종 라이브러리 에서 사용되어지기 때문에 원리는 꼭 이해를 하고 있어야한다.연산자의 종류& ( AND 연산자 ) [AND] : 피연산자 서로의 비트를 비교하여 양쪽 모두 1인 경우에만 해당비트는 1로 설정된다.0000 1111 & 0000 1010 = 0000 1010 | ( 포괄적 OR 연산자 ) [OR] : 피연산자 서로의 비트중 한쪽이 1인경우 해당비트는 1로 설정된다.0000 1111 | 0000 1010 = 0000 1111^( 베타적..
BITMASK란?변수 혹은 수식에서 원하는 열의 비트만 변경하기위한 상수를 비트 마스크 라고 한다.주로 프로그램의 각종 flag구현에 사용된다. 여기서 말하는 flag란 특정 함수호출시 약속된 규칙을 넘기기위해서 사용되어지는 용도 라고 이해하면되며 Win32 Api, 각종 dll 등을 접해봤으면 쉽게 이해 할 수 있다.Example.사칙 연산의 프로그램이며 mode(+, - , *, /)를 flag로 셋팅 할 수있다. char PLUS = 1; //0001 char MIN = 2; // 0010 char MULTI = 4; // 0100 char DIV = 8; // 1000 void arithmetic(char flag) { int num1, num2; printf("두 수를 입력해 주세요."); sc..
Conditional Operator? (= 조건(삼항) 연산자란?) 조건에 따라 두 식 중 하나를 반환하는 연산자.exp1 ? exp2 : exp3 의 형식으로 구성되며 exp1(boolean)이 true 면 좌항(exp2), false 이면 우항(exp3)가 호출되는 형식이다.개인적으로는 실제 개발 업무시 특정 변수에 값을 넣을 때만 사용한다.함수 호출 용도로 사용하는것도 가능하나 코드의 가독성이 떨어진다고 생각하기 때문에 함수 호출시에는 if, else 문으로 구현한다. Example 1. Call Method두 수를 입력받은 뒤 큰 수를 작은 수로 나눈 몫과 나머지를 출력하는 프로그램 void division(int big, int small) { printf("몫: %d, 나머지: %d\n", ..
- Total
- Today
- Yesterday
- Bit
- 수식
- 비트
- Math
- highlightjs
- C
- 비트연산자
- mathjax
- 삼항연산자
- algorithm
- robocopy
- Matrix
- syntax highlighting
- python
- 비트마스크
- 행렬
- Kotlin
- Highlighter
- 도메인
- 알고리즘
- DNS
- Android
- mysql
- 안드로이드
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |