개발

자바, 파이썬 중심의 실무 개발 기록과 도구 활용, 회고 및 기타 기술들을 정리합니다.

파이썬

Python, Mysql에서 in 조건문 사용 방법

Photo by Caspar Camille Rubin on Unsplash 환경 Python 3.8 mysql-connector-python 8.0.26 요약 where 조건절에 in 조건문이 있는 경우에는 쿼리를 동적으로 작성해야 한다.  왜냐하면 in 구문에 들어가야 할 %s-markers 갯수가 매번 달라질 수 있기 때문이다.  구현 query_params = …..   sql = ‘select col1, col2  ‘        ‘from table1 ‘        ‘where area in ( %s ) ‘   conn = db_pool.get_connection() curs = conn.cursor()   format_strings = ‘,’.join([‘%s’] * len(query_params))   curs.execute(sql % format_strings, tuple(query_params)) cs 참조 https://stackoverflow.com/questions/17847297/mysql-connector-python-in-operator-stored-as-list

기타 개발

MySQL Import, Export 하는 가장 좋은 방법 (feat. mysqldump)

Photo by Ellipsis Drive on Unsplash 환경 서버: Ubuntu 20.04 LTS, MySQL 8.0.26-0ubuntu0.20.04.2 로컬: Windows 10 pro, MySQL 8.0, MySQL Workbench 8.0.25 Export  MySQL Workbench 8.0 CE에서 Table Data Export Wizard를 이용하여 테이블 데이터를 Export 할 수 있다. 간편하지만 치명적인 단점이 있다. 테이블 데이터가 많은 경우에는 속도가 느리다. 느려도 너무 느리다. 기다리는 시간이 지루해서 mysqldump로

기타 개발

MySQL Import, Export (feat. AWS Lightsail)

환경 로컬: Windows 10 pro, MySQL 8.0, MySQL Workbench 8.0.25 서버: Ubuntu 20.04 LTS, MySQL 8.0.26-0ubuntu0.20.04.2 왜? 로컬 Mysql에서 Export한 데이터 파일(csv)을 서버 MySQL에 Import 하는 과정을 정리했다. Export  MySQL Workbench 8.0 CE에서 Table Data Export Wizard를 이용하여 테이블 데이터를 Export 할 수 있다.  윈도우 환경에서 Export 하는 경우 아래와 같은 특징이 있다.  Line Separator를

기타 개발

AWS Lightsail 사용 후기

요약 AWS Lightsail에서는 CPU 사용량이 많은 프로그램을 돌리지 말자. AWS Lightsail을 신청했다.  1GBRAM, 1 vCPU, 40GB SSD, 전송 2T 월 5달러에 이 정도 사양이면 괜찮은 것 같다. 마침 3개월 무료 행사를 하고 있어서 신청했다. 순식간에 Ubuntu 머신이 생겼고, 여기에 MySQL을 설치했다. 그리고 Python과 Flask로 웹애플리케이션을 만들어서 올렸다. 테스트 용도로는 쓸만했고, 만족스럽다.  vCPU 100% 웹애플리케이션에서 엑세파일을

파이썬

python 개발 팁

Photo by Proxyclick Visitor Management System on Unsplash and, or 조건문에서 여러 조건을 판단해야 하는 경우 &&, || 대신 and, or을 사용한다.  MySQL의 Decimal은 Json으로 변환하지 못한다. Decimal 타입 데이터를 json으로 보내는 경우 아래와 같은 에러가 발생한다.  TypeError: Object of type Decimal is not JSON serializable Float로 형변환을 해서 보내거나, MySQL의 데이터 타입을 Float로 하자. 

파이썬

Flask + DB Connection Pool 설정(feat. MySQL)

Photo by Simone Viani on Unsplash  요약 DB Connection Pool을 관리하는 클래스를 작성한다. (class DbPool)– DB Connection Pool을 생성하는 메서드 – DB Connection을 리턴하는 메서드  Flask app 객체를 만들 때 DbPool 클래스 객체를 생성한다. – 초기화 메서드를 호출해서 DB Connection Pool을 생성한다.  DB 커넥션이 필요하면 DbPool 클래스 객체의 메소드를 통해 커넥션을 가져온다.  왜? 점프 투 플라스크와 인터넷을

기타 개발

chart.js 사용법 정리

chart.js를 이용하여 차트 그리는 방법을 정리했다.  시나리오   1. 사용자가 처음 페이지를 호출하면 빈 차트를 보여준다.    2. ajax로 json 형태의 데이터를 요청/수신하고, 차트만 다시 그린다.  사용자가 처음 페이지를 호출하면 빈 차트를 보여준다.  빈 차트를 생성해서 canvas에 그려준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

기타 개발

chart.js 사용할 때 주의할 점(feat. Flask)

Photo by Uta Scholl on Unsplash Flask와 chart.js를 이용해서 차트를 만드는 방법과 주의할 점을 정리했다.  서버 코드 작성 먼저 요청을 받으면 차트로 표현할 데이터를 조회해서 응답으로 돌려주는 프로그램을 작성한다.  1 2 3 4 5 6 7 8 @bp.route(‘/chart_view/’) def view(): # 데이터 조회 영역 생략 for row in data: labels.append(row[‘yyyymm’]) value1.append(row[‘value1’]) value2.append(row[‘value2’]) return render_template(‘chart/chart.html’, labels=labels,

기타 개발

MySQL, MariaDB, Oracle, PostgreSQL(feat. 관심도)

토이 프로젝트를 시작하면서 DB 선정을 하는데 고민이 생겼다. 그나마 조금 더 익숙한 MySQL을 쓰려고 했는데, 오라클로 넘어가면서 라이센스가 Community와 Enterprise로 바뀌었다고 한다. 오라클, 상용 이런 단어가 들어가니 약간 거부감이 생긴다. 그래서 MariaDB를 쓸까 생각했는데, 막상 사람들이 많이 사용할까 하는 의문이 들었다.  토이프로젝트라 어떤 DBMS를 써도 상관은 없지만, 그래도 사람들이 많이 사용하는 것을 쓰는 것이 좋다고

파이썬

anaconda + Pycharm에서 패키지 설치가 안될 때

 3줄 요약 – 콘솔창에서 가상환경을 활성화 한다.   – conda install 패키지를 시도한다.  – pip install 패키지를 시도한다.  개발 환경 – Anaconda 4.10.1 – Pycharm 2021.1 Anaconda와 Pycharm을 이용해서 파이썬 웹개발을 시작했다. 플라스크가 가볍고 간편하다고 해서 패키지를 설치했고, ORM을 위해서 Flask-Migrate을 설치하려고 했다. 그런데 Pycharm에서 조회가 안된다. 다른 패키지들은 조회만 하면 설치할 수 있었는데, 이건 왜

위로 스크롤