Programming Language
-
[Java] CSV 를 Excel 로 변환하는 Java 코드 예제Programming Language/Java 2023. 2. 8. 16:52
최근 java 를 이용해서 .csv 파일을 Excel 로 변환 해야하는 일이 있었다. 그런데 단순히 csv 파일을 excel 의 하나의 sheet 로 변환하는 예제나 라이브러리는 몇 개 있었는데, 하나의 엑셀에 특정 컬럼들을 특정 시트에 작성하는 형태의 라이브러리 는 잘 나오지 않아서 개발 한 것을 적어둔다. 1. 라이브러리 사용법 - 라이브러리 사용법에 대한 README.md 1.1. settings.xml 설정 github ${github 유저명} ${github 토큰} 1.1. 디펜던시 설정 pe.fwani.convert csv-to-excel 0.0.1-java11-SNAPSHOT github-fwani-releases https://github.com/fwani/fwani-maven-repo/r..
-
[psycopg2] postgresql oid 에 대한 텍스트 가져오는 쿼리Programming Language/Python 2021. 11. 15. 18:05
postgresql 에는 oid (object identifier) 가 있는데 테이블의 타입도 oid 로 관리하고 있다. 만약 python 에서 psycopg2 라이브러리를 사용한다면, 아래처럼 타입을 oid 로 받게 된다. import psycopg2 conn = psycopg2.connect() cur = conn.cursor() cur.execute("select A, B from TEST") cur.description # (Column(name='A', type_code=20), Column(name='B', type_code=25)) 이때, 해당 oid 에 대한 타입명을 알고 싶으면 아래 쿼리를 사용하면 알 수 있다. # psql select 20::regtype::text; text ----..
-
Scala 문법Programming Language/Scala 2021. 6. 24. 18:06
원시 타입 Scala 는 1(Int 리터럴) 과 같은 원시 타입(Primitive Type) 은 Object 로 취급한다. java 원시 타입은 정수, 실수, 문자, Bool 과 같은 literal 의 실제 데이터 값을 저장하는 타입이고, java 참조 타입은 Object 의 메모리 주소를 참조하는 타입이다. scala 에서는 정수를 Object 로 참조하여 참조 타입 으로 취급하지만, 컴파일 이후에는 성능을 위해서 java 의 원시 타입을 사용한다. 1 + 2 와 같은 식에서 + 는 (1) 이라는 원시 타입 Object 의 method 다. 즉, 1 + 2 의 표현은 (1).+(2) 표현과 같다. Scala 는 +-*/ 같은 연산자 method 의 우선순위를 정하고 있다. object Practice ..
-
[python] CLOSE_WAIT 해결 방법 with TimeoutIteratorProgramming Language/Python 2021. 5. 7. 11:20
tcp 연결된 소켓의 상태가 CLOSE_WAIT 상태에서 처리되지 못하고 계속 소켓을 잡고 있는 상황이 발생하여 해당 내용을 정리한다 0. 용어 end, end-point : aplication, user 등 연결에서 한 쪽 끝 프로세스 tcp 상태 1. 개념 정리 CLOSED : 연결이 없음 LISTEN : Passive open, SYN을 기다리는 상태 SYN-SENT : SYN을 보내고 ACK를 기다리는 상태 SYN-RECEIVED(SYN-RCVD) : SYN+ACK을 보내고 ACK를 기다리는 상태 ESTABLISHED : 커넥션이 생성된 상태, 데이터를 전송할 수 있다. FIN-WAIT-1 : 첫 FIN이 보내진 상태, ACK를 기다리고 있다. CLOSE-WAIT : 첫 FIN을 받고 ACK를 보..
-
[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 -..