일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- gitlab
- jupyter
- Python
- docker
- HTML
- c언어
- Algorithm
- c# winform
- Houdini
- C언어 포인터
- 도커
- 플러터
- vim
- C++
- 깃
- c# 윈폼
- Data Structure
- jupyter lab
- git
- github
- 다트 언어
- C# delegate
- Flutter
- 포인터
- c# 추상 클래스
- Unity
- 구조체
- c#
- dart 언어
- 유니티
- Today
- Total
목록파이썬 (2)
nomad-programmer
함수를 만들어서 넘길 때 lambda보다는 partial을 자주 사용한다. 간단한 예) from functools import partial def sum(a, b): print(a + b) f = partial(sum, 55) f(1) # 결과 56 lambda와 partial의 차이점 lambda와 partial은 비슷하지만 차이점이 있다. 람다의 경우 연산이 모두 끝난 후 코드가 생성된다. 반면 partial은 연산 도중 코드가 생성된다. lambda 예) # lambda의 예 funcs = list() for i in range(5): funcs.append(lambda: print(i)) for f in funcs: f() # 결과 4 4 4 4 4 partial 예) # partial의 예 f..
Python, C#, JavaScript 등은 쉽게 소스로 환원 시킬 수 있기 때문에 원 소스 자체의 로직은 변경되지 않지만 사람이 읽기에 아주 어렵게하는 것이 난독화라고 한다. 또한, 소스코드의 무단 도용, 아이디어나 알고리즘의 무단유출을 막기 위함이 주된 목적이라 할 수 있다. JavaScript 같은 경우에는 악성코드나 시그니쳐 등을 회피하기 위해 난독화 기법을 이용한다. 코드 난독화는 크게 보았을 때, 필요 이상으로 복잡한 코드를 만들거나 무의미한 코드를 삽입하여 난독화하는 방법과 데이터를 인코딩하여 가독성을 떨어트리는 방법이 있다. C언어 소스코드를 대상으로 코드 내에서 사용 중인 변수의 이름을 바코드 조합('l', 'i', 'I', '1'의 조합)으로 바꾸어 코드를 난독화 시킨다. 코드 내의 ..