전체 글 18

어느새 코앞까지 다가온 2022년

어릴 적엔 어른들이 나이 드는 걸 싫어하는 게 단순히 주름이 늘어가고 허리가 굽는 등 단순히 외적인 변화 때문이라 생각했지만, 나이가 들었어도 여전히 좁고 편협한 시선을 가진 내게 사회는 그것이 아니라 말했다. 사회는 아직 밥 한숟갈도 누군가 떠먹여줘야하는 내게 혼자 밥상을 차리길 요구했고, 아직 마음은 15살인 나를 22살 어엿한 성인으로 바라봤다. 어른이 되기 싫었던건, 나이가 드는게 무서웠던 건, 그저 죽을 날이 다가오는것이 무서웠던게 아니라 사회의 요구에 부합하여야 한다는 압박이, 아직 어린애에 불과한 나를 한 사람의 책임을 져야하는 어엿한 성인으로 바라보는 그 시선이 두려웠던 것은 아닐까 어른 - 마카롱作

소소 2021.12.31

[단순반복작업은 파이썬으로!] 엑셀자료 기반으로 평균값 구하기

# 문제발생 지난번 openpyxl로 단가를 긁어와서 입력했던거에 추가로 평균단가를 입력해야한다. 엑셀파일은 두개이며, 첫번째 엑셀파일에는 최근 약 1년치의 품목코드 별 단가가 작성되어있고, 두번째 엑셀파일에는 품목코드만 입력되어있다 6개월을 기준으로 중복되는 모든값을 구해서 평균값으로 두번째 엑셀파일에 입력해줘야 한다. # 해결 아이디어 1. 평균구하기 def average(list): return (sum(list)) / len(list) 2. 첫번째 엑셀파일에는 품목코드가 굉장히 많이 중복되고있다, 기간별 단가만 상이하므로 품목코드:0의 형태로 딕셔너리로 만든다. ( 딕셔너리의 키값은 중복이 허용되지 않는 특성 이용 ) 3. 빈 리스트를 만들어서 딕셔너리에 저장된 키값과 첫번째 엑셀의 품목코드가 일..

python 2021.11.22

[단순반복작업은 파이썬으로!] 엑셀 빅(?)데이터 간단 작업

문제 : 전산프로그램 ERP에서 값을 빼온 후 엑셀로 비교하며 정리를 하는 업무 자동으로 진행하지 않을시, 품목코드 약 6천여개에 대해 최근 2개년치 약 5만여개 데이터를 확인해 기입하여야 함 1. ERP상의 원하는 데이터를 기간별로 엑셀로 추출하기 - 기간별로 추출하는 이유는 엑셀최대 열 개수를 초과해서 추출되어서 데이터 누락이 발생됨.(아마 ERP프로그램 문제) 17년부터 19년까지 4개의 엑셀파일로 추출했고 품목코드와 단가를 비교해서 일치하면 단가를 입력하게 만드는 단순한 작업 2. 품목코드와 단가를 딕셔너리로 생성해 키값과 밸류값으로 나누고, 키값은 고정, 밸류값은 최근의 엑셀파일 일수록 최근의 단가로 정해짐. (자동으로 단가가 업데이트 됨) 3. 만들어진 딕셔너리로 입력할 엑셀을 불러와 키값을 ..

python 2021.11.22

크롤링 완성(?)

완성 링크 : http://54.180.142.13/list.php - 해당 링크 현재(2021.11.22) AWS 서버 공급 중단상태, 차후 다른 플랫폼 서버로 이동 후 재 서비스 예정 # 소스코드 import requests from bs4 import BeautifulSoup import pymysql # MySQL Connection 연결 conn = pymysql.connect( host = '54.180.142.13' , user = '-' , password = '-' , db = 'news', charset='utf8') curs = conn.cursor() # Connection 으로부터 Cursor 생성 URL = 'https://www.boannews.com/media/o_list.a..

python 2021.11.22

[네트워크 기초- CCNA] 데이터링크계층

# Lan 통신 Data-Link Layer - Ethernet - Mac Address - Frame * CSMA/CD Carrier Sense (네트워크 신호가 있는지 감지) - 호스트가 Frame을 전송하기 전에 네트워크 상에 다른 Frame이 전송되는지 확인 Multiple Access (다중접근) - Ethernet에 연결된 장비들은 네트워크 상에 Frame의 흐름이 없을 때 서로 동시에 Frame을 전송할 수 있음 (순서가 없다) Collision Detection (충돌 감지) - Ethernet은 복수의 장비가 동시에 Frame을 전송할 수 있음 - 이 경우 충돌이 일어날 수 있기 때문에 전송후 충돌 발생 여부를 확인 CSMA/CD - 충돌이 발생하면 Frame을 전송한 장비들은 서로 랜덤..

네트워크 2021.11.22

[네트워크 기초- CCNA] Physical Layer(물리계층 - 케이블)

# Physical Layer(물리계층 – 케이블) # Cable & Connector - Twisted-Pair (UTP, STP) > LAN구성시 가장 많이 사용(10 BaseT) 외부의 전기적 간섭으로부터 방어할 수 있는 피복의 유무에 따라 나뉨 Unshielded > UTP – 실내공간에 주로 사용(CAT5, CAT6 가장 많이사용) Shielded > STP – 전기저항이 많은곳에 주로 사용 - Coaxial > 과거에 사용 - Fiver-Optic > 광케이블 전기적 신호를 빛의 신호를 바꿔 멀리 전송할 수 있다. Multi Mode - 한 개의 선의 여러개의 신호를 보낼 수 있다. 전송거리 짧은곳 Single Mode - 한 개의 선에 한 개의 신호를 보낸다. 전송거리 긴곳 # Type of..

네트워크 2021.11.22

[네트워크 기초- CCNA] TCP/IP Protocol Suite, Data Encapsulation

# TCP/IP Protocol Suite - L4계층 Transport(전송계층) UDP(User Datagram Protocol) 제한하지 않고 빠르게 전달하기 용이한 프로토콜(상대적으로 안전성이 떨어짐) TCP(Transmisson Control Protocol) 상호간 주고받는 데이터의 흐름을 제한 할 필요가 있을 때(흐름제어) 사용하는 프로토콜 상위계층에서 어떤 프로토콜을 운영하느냐에 따라서 결정됨 - L3계층 Internet Internet Protocol (IP/IPv4, IPv6) 신뢰성이 없다 – 프로토콜 장애 발생시 어떤부분으로 장애가 발생했는지 알려주지 않음 IPv4는 보안을 구현할 수 없다. IP NAT – 사설네트워크(내부)에서 공인(외부)네트워크로 접근할 수 있도록 구현해줌 IP..

네트워크 2021.11.18

[네트워크 기초- CCNA] 네트워크와 OSI 7 Layer

# 네트워크 1. 기업이 네트워크 구축을 하는 이유 - 컴퓨터 간의 파일 공유 및 디렉터리 공유 (가장 중요한 이유) - 전자 메일 등 커뮤니케이션 지원 - 전자뉴스나 www에 의한 정보 공유 - 기업활동에 있어서 많은 경제적 이익과 기업 업무프로세서에 대한 빠른 흐름을 가져감 - 많은 일을 빠르게 처리할 수 있음. 2. LAN (Local Arae Network) - 조직내부나 동일 건물 등 비교적 좁은 지역을 연결하기 위한 테느워크 - 초기 투자 비용이 많이 들고 유지비용은 적게 듦 - 소규모 장비들이 모여서 상호간 연결 (한 건물내, 좁은지역 등) - 관리자가 직접 관리하는 방식 (근접지역에 있어 관리에 용이) - 근거리 상호통신으로 속도가 빠른편 (보통 100Mbps) 3. WAN (Wide Ar..

네트워크 2021.11.18

웹 스크랩핑(크롤링)_2

# 크롤링을 막아놓은 사이트에 대한 대처 selenium모듈을 설치해준다. Terminal 에 pip install selenium 크롬드라이버 설치 버전확인 : 크롬 우측상단 크롬 맞춤설정 및 제어 - 도움말 - 크롬정보 본인 크롬버전 확인 : 73버전 https://sites.google.com/a/chromium.org/chromedriver/downloads 버전에 맞게 설치 윈도우 환경이므로 win32 다운로드, 압축푼뒤 파이썬 폴더에 드래그 앤 드롭 하면 exe파일이 들어가진다. from selenium import webdriver driver = webdriver.Chrome('./chromedriver') driver.implicitly_wait(3) driver.get('https://..

python 2021.11.18

웹 스크랩핑(크롤링)

# Web Scraping 필요한 모듈 1. requests 2. beautifulsoup 모듈을 설치하는 방법 Terminal 에서 pip install 모듈명 으로 설치 하거나, File | Settings | Project: 프로젝트명 | Project Interpreter에 들어가면 현재 설치된 모듈을 확인 할 수 있다. 여기에서 원하는 모듈명을 검색해서 설치 할 수도 있다. > 설치한 모듈의 함수 등 동작내용을 확인하기 위해 해당 모듈명으로 검색해서 제작자가 정리해놓은 사용법을 확인해야 한다. import requests # requests 모듈 사용 선언 URL = 'https://naver.com' response = requests.get(URL) # 요청 (requests의 get 함수 ..

python 2021.11.18