Zero to Hero
Docker 01
Programming 2021. 4. 23. 12:51

가상화 CPU, 메모리 등 내가 가지고 있는 자원을 논리적인 형태로 묶는 행위 가상화 등장 배경 기존 상황 메일 서비스, 백업 서비스의 2개의 서비스를 운영해야 한다고 가정해보자. 그럼 단순히 보면 메일 서비스를 위한 서버 1대, 백업 서비스를 위한 서버 1대, 총 2대의 서버가 필요하다. 그래서 2대의 서버를 운영 중이다. 문제점 비효율적이다. 실제로 한 서비스에 할당된 서버 자원이 좀 지나치게 풍부하다. 서비스 특성상 피크 타임이 다르다. 메일 서버는 일과 시간에, 백업 서버는 밤에 리소스 사용량이 많다. 그래서 메일 서버는 밤에는 놀고, 백업 서버는 낮에 논다. 결국 내가 가진 자원이 굉장히 비효율적으로 사용되고 있는 상황이다. 즉 내 자원에 대한 Utilization이 굉장히 떨어진다. 그럼에도 ..

article thumbnail
M1 맥북에서 Docker + Tomcat 이미지 사용하기
Programming 2021. 4. 17. 21:17

M1 Docker가 정식 Release 되었다. 열심히 삽질해서 Tomcat 이미지에 HTML 파일을 올려서 접속하는 것을 성공했다. GUI 환경도 잘 되어있어서 가능하지만 이미지 검색할 때 회원가입을 해야 하는 귀찮음(?)때문에 전통적인 CLI방식으로 테스트해봤다. Docker Desktop for Apple silicon docs.docker.com 1. Docker 설치 이 부분은 기존의 맥 애플리케이션 설치할 때와 동일하게 진행하면 된다. 설치 후에 Docker의 아키텍처가 Apple인 것을 확인한다. Intel이라고 뜨면 M1용을 설치한 것이 아니니깐 주의. 2. Tomcat 이미지 파일 검색 및 다운로드 // docker hub의 tomcat 관련 이미지를 검색 docker search tom..

article thumbnail
/dev/null 2>&1
Programming 2021. 4. 5. 10:30

What does "/dev/null" mean at the end of shell commands What is the difference between the following commands? ssh myhostname "command1; command2;...commandn;" 2>/dev/null ssh myhostname "command1; command2;...commandn;" what does 2> mean? what... stackoverflow.com /dev/null 리눅스에서 위 파일은 항상 비어있다고 한다. 그러니깐 예약어 같은 느낌이라고 생각하면 될 것 같다. 이 곳으로 전송된 결과는 모두 버려진다는 특징을 가지고 있다. 2 > &1 리눅스 표준 입출력 리다이렉션 쉘에서 키보드..

article thumbnail
Crawling with Selenium & BeautifulSoup
Programming 2021. 4. 5. 00:14

최근 사내에서 자동화 스크립트를 작성할 때 사용했던 Selenium과 BeautifulSoup 관련 기록을 남겨둔다. 1. Selenium은 PC 성능 영향을 많이 받는다. PC에서 실제 브라우저를 사람 대신 작동하는 방식으로 진행되기 때문에 상황에 따라 적절한 대기 방법을 사용해서 코드를 멈춰줄 필요가 있다. 사용자 환경 기준으로 맞춰줘야 한다. 2. 상황에 맞는 적절한 대기를 사용해야 한다. 셀레니움 wait 개념 이해하기 (implicitly wait VS explicitly wait) - 뻥뚫리는 파이썬 코드 모음 이 문서는 셀레니움 wait 에 관한 implicitly wait 와 explicitly wait 에 대해서 다루고 있습니다. 셀레니움 사용법 전반에 대해서 알아보시려면 셀레니움 크롤러..

article thumbnail
M1 맥북에서 Pandas 사용하기 with Anaconda3
Programming 2021. 3. 29. 20:13

요약 M1 맥북에서 Python은 지원하지만 기존 라이브러리 호환성에 문제가 있다. M1용 Python이 있지만 몇몇 데이터 분석 관련 라이브러리(Numpy, Pandas)는 사용할 수 없다. (21.03.29. 기준) Anaconda를 이용해 기존 라이브러리들을 지원하는 Python Runtime환경을 Interpreter로 사용하자. 설명 기존에 윈도우 환경에서 업무로 Python과 Pandas 라이브러리를 사용하고 있었다. 무심코 맥북으로 테스팅을 해보려고 Pandas를 설치했는데 무한 로딩 증상이 생겼다. 현재 맥북에선 M1 호환 Python을 설치해서 사용하고 있었는데, 아무래도 기존 라이브러리들, 특히 데이터 분석, 머신러닝 등 뭔가 C 코드를 사용해서 고속 연산을 하고 있을 것 같은 라이브러..

pandas csv 읽기/쓰기 인코딩 정리(read_csv, to_csv)
Programming 2021. 3. 29. 15:08

요약 pandas는 python에서 제공하는 데이터 처리, 분석에 사용되는 라이브러리다. csv, xls등 table 기반 데이터를 Dataframe이라는 자료구조로 가져와 다양한 조작을 할 수 있다. 최근에 회사 작업으로 table 기반 데이터를 조작해야 할 일이 있었는데 pandas의 함수 중 하나인 read_csv를 이용해 csv파일을 읽을 때 발생하는 한글 깨짐과, to_csv를 이용해 csv파일을 생성했을 때 Excel에서 한글이 깨지는 조건을 정리해봤다. 정말 단순한 옵션으로 했기 때문에 모든 경우에 통용되지 않겠지만, 원리를 이해할 겸... 소스 코드 # dict으로 테이블에 들어갈 데이터를 구성 # key값은 column 이름이, list에는 row 데이터가 들어간다. temp_dict =..