728x90

전체 글 164

Flask App Using Nginx & Gunicorn

- 먼저 웹서버와 WAS(Web Application Server)에 대해 알고가자. 웹서버는 클라이언트에게 정적인 컨텐츠, 즉 html, css, js를 제공하고 WAS는 웹서버가 단독으로 처리할 수 없는 DB로직 처리가 필요한 동적 컨텐츠를 제공함과 동시에 정적인 데이터도 제공한다. 그렇다면 WAS만 사용하면 되는것이 아닌가 하는 의문이 생긴다. 그래도 되지만 WAS는 DB조회 및 다른 로직을 처리하는 일도 하기 때문에 정적인 컨텐츠를 웹서버에 맡기고 동적인 컨텐츠를 WAS에 맡겨 기능을 분리해 두는 것이 서버 부하를 방지하고 효율적이다. - 기본 flask 서버는 개발용으로써, 배포용으로 적합하지 않다. flask를 단독으로 실행하면 단일 프로세스가 Request를 처리하게 되는데, 트래픽이 많을 ..

Web Server 2023.01.27

vue 개발환경 세팅 및 기본 스크립트 작성

기본 세팅 참고 : https://haenny.tistory.com/247 디렉토리 만들고 npm install vue@next npm install -g @vue/cli npm init vue@latest 생성된 vue-project에서 npm install vue add vuetify // CLI3-vite선택 npm install @nuxtjs/vuetify -D npm install vuetify npm install sass@~1.32 sass-loader deepmerge -D 아래 입력시 개발 모드 실행 npm run dev cf) vue ui 입력시 프로젝트 매니저 실행 가능 file-saver : 데이터를 파일로 다운받는 기능 구현할 때 유용 npm install --save file-s..

카테고리 없음 2023.01.18

Hadoop Ecosystem 정리 #2 (Spark)

- 하둡 에코시스템 중 MapReduce에 해당하는 기능을 대체할 수 있는 것이 Spark라고 했었다. 스파크가 빠른 이유는 빅데이터의 In-Memory 연산이 가능하기 때문이다. - 다음은 스파크 클러스터의 구조이다. SparkContext가 있는 Driver Program, Cluster Manager, Work Node의 3가지로 나눌 수 있다. Driver Program은 사용하는 컴퓨터를 말하고 python 같은 스크립트로 task를 정의한다. 정의된 task는 Cluster Manager로 넘어가서 분배가 되는데, 하둡이라면 Yarn을, AWS의 경우는 Elastic MapReduce 가 Cluster Manager 역할을 한다. Work Node에서는 CPU 코어 1개당 1개의 Node를 배..

Hadoop 2023.01.10

Apache Spark 환경 설정

1. Anaconda (Python + Jupyter Notebook) 2. Java (19.0.1) 3. Spark (spark-3.2.3-bin-hadoop2.7) => 다운로드 후 로컬디스크 C에서 Spark 폴더를 만든 후 압축 해제 pip install pyspark==3.2.3 4. Hadoop => 2.7.7 다운 후 bin 폴더를 복사해 로컬디스크 C에 Hadoop 폴더를 만든 후 붙여넣기 5. PySpark Anaconda Prompt에서pip install pyspark==3.2.3 6. 환경변수 편집 (java, hadoop, spark) => PYSPARK_PYTHON은 anaconda 창에서 where pip 후 나오는 경로 입력

Hadoop 2022.12.26

Batch and Stream Processing [CS]

- 배치 프로세싱(Batch Processing)이란 한정된 대량의 데이터를 정해진 시간에 한번에 처리하는 것이다. 주로 다음과 같은 상황에 많이 쓰인다. (1) 데이터 처리가 실시간을 보장하지 않아도 될 때 (2) 데이터를 한번에 처리할 수 있을 때 (3) 무거운 처리를 할 때 ex) 매일 마다 웹 크롤링, 매달 1일의 생산량 소비량 예측, 매주 고객들에게 마케팅 이메일 전송 - 배치당 처리하는 데이터 수가 다르기 때문에 리소스가 비효율적으로 사용될 수 있다. - 스트림 프로세싱(Stream Processing)이란 이벤트가 생길 때 마다, 데이터가 들어올 때 마다 실시간으로 데이터를 처리하는 것이다. 주로 다음과 같은 상황에 많이 쓰인다. (1) 실시간을 보장해야할 때 (2) 데이터가 여러 소스로부터..

CS 2022.12.22

Linux 자주쓰는 명령어 정리

- 단일 문자열을 포함하는 프로세스 일괄 종료 명령어sudo ps -ef | grep 검색할문자열1 | awk '{print $2}' | xargs kill -15- 심볼릭 링크https://qjadud22.tistory.com/22 - ip & domain 확인# domainhostname# iphostname -i - 열려있는 포트 확인netstat -nap | grep LISTEN - 백그라운드 실행시 nohup.out 이름 변경해서 실행nohup python script.py > my_output.log 2>&1 &ref) 리다이렉션 관련 : https://inpa.tistory.com/entry/%EB%A6%AC%EB%88%85%EC%8A%A4-devnull-%EB%A6%AC%EB%8B%A4%E..

Linux 2022.12.20

Hadoop Ecosystem 정리 #1

- 하둡(Hadoop)은 HDFS(Hadoop Distributed FileSystem)이라는 분산 데이터 저장과 빅데이터 처리 방식인 MapReduce 방식으로 이루어져 있다. 하둡은 HDFS을 파일 시스템으로 두고 MapReduce이 연산 엔진이며 Yarn으로 리소스를 관리한다. - 맵리듀스(MapReduce)는 여러 노드에 task를 분배하는 방법으로 각 프로세스 데이터는 가능한 경우 해당 노드에 저장된다. 맵리듀스는 맵(Map)과 리듀스(Reduce)로 구성된다. Map은 분할, Reduce는 병합이라고 생각하면 된다. 예를 들어 Map은 큰 작업을 64MB단위 블럭으로 분할하여 각 블럭에 대한 연산을 한다. 이후 Map을 수행한 각각의 블럭의 결과 정보를 합치는 작업이 Reduce이다. - HD..

Hadoop 2022.12.20

컨퍼런스 요약 [2022 데이터 톡톡 페스티벌]

- 요즘 빅데이터 프로젝트가 많이 실패한다고 한다. 이유중 하나로 연구원들이 빅데이터의 정규 분포를 보고 많이 나오는 패턴만 집중적으로 보고는 하는데, 이런 패턴은 사실 빅데이터가 아니더라도 알 수 있는 일반적인 인사이트를 도출하는 경우가 많다. 사실 집중적으로 봐야할 부분은 양극단에 있는 고객군이 점점 커져가고있는 패턴이다. 역사적으로 이런 패턴에 집중했을 때혁신적인 전략이 나왔다. - 데이터에서 시작하지말고 국민의 페르소나에서 시작하자. ref) https://www.youtube.com/watch?v=_BsRM16yUYk

Conference 2022.12.20

컨퍼런스 요약 [if(kakao)dev 2022]

- 문제점 - 시스템 측면 1. 데이터 센터간 이중화가 미흡 (1) 일부 시스템이 판교 데이터 센터에만 이중화 되어 있었음 (캐시서버, 오브젝트 스토리지가 이중화 x => 카카오 로그인 및 사진 전송 등 문제 발생) (2) 하나의 데이터 센터에서 장애가 발생하면 다른 데이터 센터로 자동 전환해주는 시스템이 작동해야하는데 이 시스템이 판교 데이터 센터에만 설치되어 있어서 수동 전환하느라 시간 오래걸림 2. 서비스 개발과 관리를 위한 운영관리 도구 부족 (1) 화재로 인한 모니터링 시스템 도구 사용 불가능 3. 이중화 전환 후 가용 자원 부족 - 관리 측면 1. 데이터 센터 전체의 장애 복구를 위한 인력과 자원 부족 2. 장애 대응을 위한 커뮤니케이션 채널에 혼선 => 커뮤니케이션으로 카카오톡, 카카오 워크..

Conference 2022.12.19

Data Governance [CS]

- 데이터 거버넌스(Data Governance)란 기업에서 사용하는 데이터의 가용성, 유용성, 통합성, 보안성을 관리하기 위한 정책과 프로세스를 다루는 것이다. 즉, 데이터 거버넌스는 데이터 관리를 의미한다. 데이터 관리에는 데이터 품질관리 뿐만 아니라 메타 데이터 관리, 데이터 수명주기 관리, 데이터 엑세스 및 권한 부여 등의 기능들이 포함된다. - 데이터 거버넌스가 발전하기 위해서는 인사이트를 도출하고 이를 다시 데이터화하는 것이 매우 중요하다. 또한 의미있는 데이터를 잘 축적하고 활용하여 정확한 예측을 할 수 있는 기술에 대한 활용 및 발전도 같이 수반되어야 한다. ref) https://newsroom.koscom.co.kr/17346

CS 2022.12.19