본문 바로가기

Total220

Python 기초 스터디 자료 “처음 시작하는 파이썬” 교재로 진행된 스터디 파이썬 기본에 대한 내용만 다뤘으며, Django 스터디가 예정되어 있어 웹 모듈 이후 부분은 다루지 않았다. 가장 기초적인 내용만 다뤘으며, 아마도 Python 을 한 번도 접해보지 않았다면 도움이 될 자료들인 것 같다. 책 내용은 파이썬 2.7 기반으로 작성 되었지만, 실습은 3.5 버전으로 진행하였다. 파이썬의 경우 2.X 와 3.X 버전에는 다소 차이가 있다. 버전 간에 호환이 되지 않는 경우가 있으니 잘 확인해야 한다. 샘플 코드는 github 에 올려두었다. https://github.com/tomining/python_tutorial 2016. 3. 27.
Spring-Batch commit-interval 설정 spring-batch commit-interval 이 정상적으로 수행되지 않아 삽질했던 경험이 있다. (혹시 유사한 삽질을 경험하고 있으신 분에게 도움이 되시길...) 담당 시스템에서 spring-batch 를 사용하고 있다. chunk 단위로 reader-writer 구조를 갖고 있는데, writer 에서 약 150만건의 데이터를 insert 하는 로직이다. 여기서만 2시간 이상 시간이 소요되었다. (때론 3시간이 넘게 걸리는 경우도 있었다.) 왜 이렇게 오래 걸릴까를 생각하다가 한건씩 처리되고 있는 것은 아닐까? 라는 의문이 들었다. 그래서 재현을 진행해 보았다. =“testReader" writer 2016. 3. 19.
Load Balancing : L3, L4 그리고 L7 일반적으로 웹 서비스는 아래 그림처럼 동작 한다. 만약 서버가 여러 대라면 어떻게 될까? 사용자 입장에서는 어느 서버에 요청을 보내야 할 지 알 수 없다. 그래서 보통 L4 Switch 라는 것을 중간에 두고 Load Balancing 작업을 하게 된다. 이 때 VIP(Virtual IP) 인 가상IP 를 사용하게 되고, 이는 사용자가 여러 대의 장비를 하나의 장비처럼 사용할 수 있도록 그룹핑을 해 준다고 생각할 수 있다. 즉, 사용자는 VIP 로 요청을 하게 된다고 할 수 있다. (보통 Domain 으로 호출하지만, DNS 에서 VIP 를 반환해 주도록 설정한다) 그렇다면 하나의 VIP 에 여러 대의 서버가 묶여있는 구조인데. 어떤 방식으로 사용자의 Request 를 분산해 주는 것일까? Load Ba.. 2016. 3. 19.
MySQL에서 신규 User에게 신규 Database 권한 부여하기 MySQL 에서 신규 Database 를 만들어서 새로운 사용자에게 권한을 부여해 보자. 아래와 같은 순서로 작업을 진행하면 된다. Database 생성 사용자 생성 권한 부여 flush —DB 생성 create database if not exists DB명 — 계정 생성 create user ‘사용자명’@‘localhost’ identified by ‘비밀번호' create user ‘사용자명’@‘접속IP’ identified by ‘비밀번호’ create user ‘사용자명’@‘%’ identified by ‘비밀번호' — 권한 부여 grant all privileges on *.* to ‘사용자명’@‘%’ with grant option — 권한을 부여하면서 비밀번호도 변경 가능 grant sel.. 2016. 3. 13.