목록전체 글 (34)
gyeomii
ENEL사의 경제성 분석 툴 SAM을 활용하여 위도, 경도, 날씨데이터, 일사량, 설비 데이터를 통해 발전량을 계산Download - System Advisor Model - SAM. (nrel.gov)1. 위 사이트에서 SAM 다운로드2. 설치 후 실행3. Start a new Project4. Photovolatic -> Detailed PV Model -> Distributed -> Commercial Owner5. SAM 설치경로 (C:\SAM\2023.12.17\solar_resource) 에 있는 excel 파일 중 하나를 복사하여 원하는 지역 데이터 입력 Latitude, Longitude에 지역 경도, 위도 입력Year, Month, Day, Hour, Minute은 0000년 1월 1일 ..
개요 AWS 서버 안정화를 위해 몇몇 서비스를 물리서버로 이전하였으나 네트워크 출력량의 증가로 인해 DB Connection을 오래 잡고 있는 경우 AWS에 부담을 주어 상태이상이 발생하는 경우가 있었음. 상태이상을 나타내는 지표 몇가지를 트리거로 두어 서버가 완전히 다운되기 전 미리 알람을 받아 서버가 다운되는 것을 막기 위해 SLACK과 AWS 를 연동하고자 함. 방안 Cloud Watch의 경보를 통해 이상상태 판별 네트워크 출력량 100M이상 CPU 사용량 40% 이상 상태검사 실패 0.7 이상 Amazon SNS(Simple Notification Service)를 사용하여 Cloud Watch 경보발생시 SNS 작동 SNS가 작동하면 Amazon Lamda함수 실행 SNS를 트리거로 두어 re..
AWS에서 EC2 자동 종료 & 실행 개요 EC2 Instance를 자동 종료 & 실행하도록 설정한다. 전체적인 순서는 다음과 같다. IAM (Identity and Access Management) 생성 Lamda 적용 Event Bridge Scheduler 설정 IAM 생성 콘솔 홈에서 IAM을 검색한다. 액세스 관리 > 정책 > 정책생성 JSON 선택 정책편집기에 아래 정책 추가 { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:*" },..
개요 AWS의 비정상적인 종료가 지속적으로 발생 분석 grafana로 docker내 CPU, Memoty 사용량을 모니터링함 kepco-opm이 서버 내 많은 리소스를 잡아먹음으로 발생하는 문제라고 추정 후 분석 원인 kepco-opm의 스케쥴링 작업 중 한전으로부터 15분 데이터를 가져올 때, CBL을 계산할 때 Transaction처리로 인해 모든 고객의 데이터를 한번에 저장하면서 리소스를 잡아먹는 문제 총 6개의 작업이 연속적으로 실행되는데 반복시간인 7분보다 실행시간이 길어 다음에 실행될 작업이 지연되면서 계속 작업이 쌓이는 문제 해결 repository로 save()메소드를 수행한 후 flush()로 리소스 반환 스케쥴링 작업을 위한 Thread를 3개로 늘림 가장 오랜시간이 걸리는 CBL 계산..
Controller 클라이언트가 이용할 엔드포인트 클라이언트의 요청을 어떻게 처리할 지 정의 화면에서 넘어오는 매개변수를 이용해 서비스 객체를 호출하는 역할 Service 비즈니스 로직 구현 Http통신을 위한 객체(request, response)를 매개변수로 받으면 안된다. 이 작업은 컨트롤러 에서만) 데이터 베이스 영역과 도메인 영역을 연결해 주는 매개체 Repository 데이터 베이스에 접근 Domain의 CRUD 역할 (Domain 객체를 DB에 저장하고 관리) DAO (=Repository) Service와 Controller를 연결 Domain Entity클래스 라고도 부른다 DTO : 각 계층간 데이터 교환을 위한 객체 (=VO) 로직을 갖지 않고 getter, setter메소드를 가진다..
1. 자바프로젝트 생성 자바에서 Spring boot 프로젝트를 생성한다. maven으로 생성했다. 2. Dependency 추가 자바에서 selenium을 사용하기 위해 selenium dependency를 추가한다. org.seleniumhq.selenium selenium-java 3.141.59 3. chrome 드라이버 다운로드 자신의 chrome 버전에 맞는 드라이버를 설치한다. 크롬창 -> 설정 -> Chrome정보 -> 버전확인 )) 크롬 드라이버 다운로드 페이지 크롬 드라이버 다운로드 페이지에 가서 자신의 크롬버전과 맞는 드라이버를 다운로드한다. 현재 최신버전은 114버전이지만 현재 크롬버전은 116이기에 Test버전을 다운받는다. (114버전드라이버를 사용해도 작동하긴한다.) )) 복사..
1분마다 .py실행해서 DB에 자료 저장하기 코드 import requests from datetime import datetime from bs4 import BeautifulSoup from stockdao import StockDao sd = StockDao() ymd = datetime.today().strftime("%Y%m%d.%H%M") url = "https://vip.mk.co.kr/newSt/rate/item_all.php" response = requests.get(url) if response.status_code == 200: html = response.content.decode('euc-kr','replace') soup = BeautifulSoup(html, 'html.par..
매일경제 주식 시세 사이트 크롤링하기 코드 import requests from bs4 import BeautifulSoup url = "https://vip.mk.co.kr/newSt/rate/item_all.php" response = requests.get(url) if response.status_code == 200: html = response.content.decode('euc-kr','replace') soup = BeautifulSoup(html, 'html.parser') attr1 = {'class' : 'st2', 'width' : '92'} tds = soup.find_all('td', attrs = attr1) #attr2 = {'width':'60'} #price = soup...