전체 글
-
[Python] PLY (Python Lex-Yacc) 정리 - YaccProgramming Language/Python 2021. 4. 28. 17:22
Lexer 에 대한 내용은 Lex 정리 문서 를 참조 해주세요. 2. parse 언어 문법을 파싱하기 위해서 yacc.py 를 이용한다. YACC(Yet Another Compiler Compiler) 은 LR-parsing / shift-reduce parsing 으로 알려진 분석 기술을 사용한다. LR-parsing 입력 기호들을 읽어가면서 기호들을 reduce 하여 시작 기호로 반환되는 상향식(bottom-up) 구문 분석 기법이다. stack 과 input buffer 를 이용해서 분석이 가능하다 참고링크 : https://en.wikipedia.org/wiki/LR_parser syntax 는 BNF(Backers Naur From) 구문으로 표기한다. 예를 들어, 간단한 산술 계산식을 분석 하..
-
[Python] PLY (Python Lex-Yacc) 정리 - LexProgramming Language/Python 2021. 4. 28. 10:08
YACC 에 대한 내용은 YACC 정리 문서 를 참조 해주세요. 1. Lex lex.py 를 이용한다. 문자열을 tokenize 할 때 사용한다. 1.1. The tokens list (tokens 리스트) tokens 라는 list 객체에 lexer 에서 사용 될 토큰의 이름을 모두 정의해야 한다. tokens = ( 'NUMBER', 'PLUS', 'MINUS', 'TIMES', 'DIVIDE', 'LPAREN', 'RPAREN', ) 1.2. Specification of tokens (토큰의 명세) prefix (t_ ) 를 각 토큰이름 앞에 사용해서 rule 을 정의 한다. rule 은 re 모듈의 정규 표현식으로 정의 한다. re 컴파일러는 re.VERBOSE 옵션을 사용한다. (multili..
-
[SwiftUI] NavigationView 와 NavigationLink 사용법Programming Language/Swift 2021. 4. 27. 09:43
NavigationView 와 NavigationLink 사용법 기본 사용법 NavigationView 로 표기할 내용을 감싼다 NavigationLink 로 새로운 view 를 표시 할 수 있다 struct TestView: View { var body: some View { NavigationView { // ... NavigationLink( destination: Text("새로운 View")) { Text("navition link 의 label") } } } } 위 코드를 ipad 같은 가로로 넓은 화면으로 보면 navigationview 가 왼쪽에 가려져서 바로 보이지 않는다. 이 때는 NavigationView 에 .navigationViewStyle(StackNavigationViewSt..
-
문자열 암호화 / 복호화 with PythonProgramming Language/Python 2021. 2. 1. 18:44
문자열을 네트워크를 통해 주고 받을 때 위험성 문자열을 누군가가 탈취 할 수 있다. 탈취된 문자열을 기반으로 임의의 수정을 하여 시스템에 문제를 야기 할 수 있다. 암호화 / 복호화를 통해 문자열(data)로 인한 위험성을 줄일 수 있다. 1. rsa 키 생성 openssl 명령어를 이용해서 rsa private/public key 생성 generate private key $ openssl genrsa -out private.pem 4096 Generating RSA private key, 4096 bit long modulus (2 primes) ......................++++ ...........................++++ e is 65537 (0x010001) $ ls -..
-
[Spark] The case sensitive option of sparkOpen Source/Spark 2020. 10. 21. 12:56
Used spark version: 2.4.4 The column of spark DataFrame can be selected regardless of case. Because the spark uses case-sensitive option (spark.sql.caseSensitive : default is False). 1. Example of case-sensitive option is False (default) You can select columns ignoring the case of column name. df = spark.createDataFrame([{'ABC': 1, 'abc': 2}]) df.show() ''' output: +---+---+ |ABC|abc| +---+---+ ..
-
[Spark] Altibase 데이터베이스 연동Open Source/Spark 2020. 10. 16. 19:12
Altibase? Main Memory DBMS 데이터와 인덱스를 모두 메모리에 저장하여 빠른 처리 가능 물리 메모리 크기만큼 데이터 저장가능 기존 파일시스템 혼용 가능 2018년 오픈소스 전환 라이센스 서버: GNU AGPLv3 클라이언트: GNU LGPLv3 상업적 이용시 : General Polygon Clipper (GPC) License 구매 필요 설치 - 설치 설명서 링크: github.com/ALTIBASE/Documents/blob/master/Manuals/Altibase_7.1/kor/Installation.md Spark 를 이용한 데이터 로드 Altibase.jar 의 위치를 파악 한다. (Altibase JDBC Driver) Altibase.jar 는 Altibase 설치시 $A..
-
[Spark] 컬럼명 대소문자 구분 (case-sensitive) 옵션Open Source/Spark 2020. 10. 14. 16:24
spark version: 2.4.4 spark 은 기본 설정으로 컬럼명의 대소문자를 구분하지 않고 선택을 할 수 있다. 옵션의 이름은 spark.sql.caseSensitive 로 기본 값은 False 이다. 이 때는 아래의 코드와 같이 컬럼명이 대소문자만 다른 문자열로 되어 있는 경우, 하나의 컬럼만 특정하여 선택이 불가능하다. df = spark.createDataFrame([{'ABC': 1, 'abc': 2}]) df.show() ''' output: +---+---+ |ABC|abc| +---+---+ | 1| 2| +---+---+ ''' df.select('ABC').show() ''' output: Traceback (most recent call last): ... pyspark.sql..
-
Linear Regression (선형 회귀)Study/Deep Learning 2020. 7. 23. 01:31
Machine Learning (기계 학습)Explicit Programming : 일반적인 프로그래밍Machine Learning : 스스로 학습하는 것용어 및 개념Supervised Learning : labeled data를 이용해서 각 feature에 대한 label을 학습하는 것종류Regression : 집넓이에 따른 집값 예측Binary Classification : True or False, 모 아니면 도 를 고르는 것Multi-label Classification : A, B, C, D, F 중 무슨 성적을 받을까?Unsupervised Learning : non-labeled data, 즉 feature를 이용해서 clustering(grouping)을 하는 것Deep Learning (..