본문 바로가기

전체 글

20191126 회고 - 프로그래밍 패턴 1. 예외 처리 def S3ObjectDownload(bucket, key): # S3에 자원에 접근 할 access key와 secret key를 입력합니다. s3 = boto3.resource('s3', aws_access_key_id='', aws_secret_access_key='YOUR_SECRET_KEY') # 추출 된 key에서 경로 값을 제외한 순수 파일 명을 얻기 위한 작업 preOutPutName = key.split('/') outPutName = preOutPutName[-1] # 파라미터로 받은 값을 이용하여 가장 최근에 올린 파일을 EC2로 다운로드 s3.Bucket(bucket).download_file(key, outPutName) print("Download successf.. 더보기
[Spring] Servlet의 동작 과정과 메모리 적재 어제 학습한 servlet에 대해 의문점이 생겼다. Chrome에서 servlet을 1회 최초 호출하고, Safari에서 servlet을 1회 호출한 결과는 위 사진과 같이 나왔다. 2번 호출 했으니, init 매서드가 2번 호출 될 것이라고 생각했었는데 아니었다. 그 이유는 다음과 같다. 서블릿의 동작과정을 한눈에 보기 쉽게 다이어그램으로 정리해보았다. Servlet는 최초 호출이 되면 해당 selvlet은 메모리에 적재됩니다. 그 이후로 다른곳에서도 중복 호출 하게 되면, 똑같이 Servlet를 불러오는 것이 아니라, 메모리에 적재된 Servlet을 재사용해서 사용자와의 인터페이스를 제공한다고 한다. Servlet는 메모리에 이미 init()이 실행된 채로 메모리에 적재되어 있기 때문에 또 다시 같은.. 더보기
NoSQL vs RDS 1. why we use noSQL 유연성 : rdb와 비교하여, 유연한 스키마를 제공하고 있기 때문에 데이터베이스를 반정형 또는 비정형적인 데이터를 취급하는데 유리하다. 이러한 스키마는 빠르고 반복적인 개발을 유도하게 된다. 확장성 : noSQL 데이터베이스는 고가의 스펙이 뛰어난 서버 대신, 분산형 클러스터를 이용하기 때문에, 서버 운영에 대한 부담 절감과 더 적은 스트리지를 기반으로 운영 할 수 있게 됨에 따라 더 많은 데이터를 담을 수 있게 되었다. 고성능 : 특정 비정형 데이터(document, key-value, graph … ) 및 엑세스 패턴에 대해 특화시킬 수 있기 때문에 특정 워크로드를 유사하게 받아들이는 것이 아닌 그대로 받아들일 수 있게 된다. 이에 따라 유사한 환경을 제공하는 rd.. 더보기