본문 바로가기

전체 글319

빅데이터 부트캠프 63일차 정적(static) 변수 - 클래스 객체 생성 없이 사용할 수 있는 필드와 메소드를 생성하고자 할 때 활용 (static을 설정하지 않고 필드를 불러오려면 따로 클래스 객체를 생성한뒤 [클래스 객체명.필드명]으로 불러와야함) - static으로 지정한 필드는 중간에 수정 가능하지만 final static은 한번 설정하면 수정할 수 없게 완전히 고정시킴 - static final = 모든 영역에서 고정된 값으로 사용하는 상수 설정 (final static과 마찬가지로 한번 설정시 수정 불가능) 접근(Access) 제한 - 적용되는 위치 1. 클래스 선언구 : public, default 2. 필드 선언구 : public, protected, default, private 3. 생성자 선언구 : public.. 2022. 10. 6.
정렬 알고리즘 선택 정렬 (Selection Sort) - 크기가 가장 작은 데이터를 맨 앞 순서의 원소와 서로 교체하고 그 다음으로 작은 데이터를 두 번째 순서의 원소와 교체하는 방식의 정렬 알고리즘 - 시간 복잡도 O(N^2) 삽입 정렬 (Insertion Sort) - 맨 앞의 요소는 정렬이 됐다는 가정하에 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 정렬 - 정렬이 이루어진 원소는 항상 오름차순을 유지하고 있음 - 시간 복잡도 O(N) => 최악의 경우 O(N^2) 퀵 정렬 (Quick Sort) - 정렬의 기준이 되는 피벗(Pivot)을 지정한 후 피벗을 기준으로 왼쪽에서는 피벗보다 크기가 큰 원소들을, 오른쪽에는 피벗보다 크기가 작은 원.. 2022. 10. 5.
빅데이터 부트캠프 62일차 Java 설치후 기본 세팅 - 다운받은 java 파일의 bin 폴더 경로를 고급 시스템 - 환경 변수 - 시스템 변수 - Path에 복사하여 맨 위로 이동 - 자바 프로젝트를 외부에서 다운받아 import했을 때 프로젝트에 오류가 뜬다면 Build Path에서 java 파일이 제대로 연동되어있나 확인해볼 것! (보통 java파일이 연결이 안되어 있어서 그런거니 연결만 다시 제대로 해주면 해결됨) Java 기초 - ctrl+space bar -> 명령문 형태 자동 완성 - syso 입력후 ctrl+space bar = System.out.println() 자동 생성 - // = 한줄 주석처리, /* ~ */ = 부분 주석처리 - 자바에서 데이터 삭제는 원래 있던 데이터를 null값으로 대체하는 것을 의미 .. 2022. 10. 5.
빅데이터 부트캠프 59일차 Spark 기본(DataFrame) 2- cache(), persist() = 일종의 전역변수 개념처럼 한번 로드한 데이터를 그 순간에만 부르는게 아니라 메모리상에 머무르도록 명령 (persist로는 저장공간과 같은 세부사항을 지정할 수 있음, cache는 X)- unpersist() = 적용되어있던 cache(), persist() 명령 해제- array_contains() = 컬럼의 시퀀스 데이터에서 특정 문자열이 있는지 없는지 반환  - Map은 일종의 파이썬의 딕셔너리 같은 개념- 데이터프레임에서는 키/값 지정을 Map("A"->"aa")와 같은 방법으로 지정함 - Map() = 키/값 데이터 생성- map_keys() = 맵의 키만 반환 - map_values() = 맵의 값만 반환 - map_.. 2022. 9. 29.
국내 기후변화 예산&의안 분석 프로젝트 (빅데이터 부트캠프 53~54&57~58&60~61일차) 내가 맡은 역할 - 국내 기후변화 의안 분석과 관련된 모든 코딩 - 국내 기후변화 관련 의안 데이터 수집(OPEN API) + 데이터 전처리 + 분석 및 시각화(그래프, 워드클라우드) - 국내 기후변화에 관한 다양한 분야간 주목 키워드 차이 분석을 위한 국내 기후변화 관련 보고서(PDF) 및 법령(TXT) 데이터 수집 + 데이터 전처리 + 분석 및 시각화(그래프, 워드클라우드) ※ 의안(입법부), 보고서(전문가), 법령(사법부)의 시선 비교 프로젝트 진행중에 알게된 것들 - os.path.dirname(__file__) : 현재 사용하고 있는 파이썬 파일의 위치 출력 - os.chdir() = 해당 디렉토리로 경로 이동 (change directory) - os.path.exists() = 현재 위치에 .. 2022. 9. 27.
빅데이터 부트캠프 56일차 Spark 기본(DataFrame)- spark.createDataFrame(데이터, 스키마) = 해당 데이터로 해당 스키마에 맞춰서 데이터프레임 생성 (상세하게)- 시퀀스 데이터.toDF(컬럼명,컬럼명,..) = 해당 시퀀스 데이터로 스키마 없어도 알아서 데이터 프레임 생성 (편하게)(사용하는 시퀀스 데이터의 타입을 보통 seq,list로 사용하나 rbb도 가능)- StructType() = 스키마 객체 생성 (괄호안에 StructField를 이용해 각 열에 대한 속성 지정) - StructField(컬럼명, 데이터 타입, nullable 사용여부) -> 데이터프레임 컬럼 설정- StructType(array(StructField, StructField)) 형식 말고도 new StructType().a.. 2022. 9. 23.
빅데이터 부트캠프 55일차 Spark- MapReduce 형태의 클러스터 컴퓨팅 패러다임의 한계를 극복하고자 등장- Hadoop에 비하여 처리 속도가 빠름 (Hadoop은 Hard disk 이용, Spark는 RAM(memory) 이용)- Spark의 데이터 구조는 RDD (Reslient Distributed Dataset), Dataframe, Dataset - RDD의 묶음 = 파티션(Partition) - RDD는 스키마 X -> 보통 Dataframe(테이블) 형태로 표현 - Dataset = Dataframe- In-memory 연산을 이용- 객체 불변성을 가지고 있어 기존 데이터를 변경한 객체를 이용하려면 새로운 객체에 지정해야함 - In-memory 연산 + 객체 불변성 -> 처리 속도 향상 Spark 실행 순서- .. 2022. 9. 22.
국내 기후변화 예산&의안 분석 프로젝트 진행 중 직면했던 문제 정리 1. R에서 wordcloud2의 lettercloud를 이용하여 데이터를 시각화하려 했으나 wordcloud2로 하면 잘 출력되는데 이미지를 지정해서 실행가거나 letterclod를 이용해서 시각화를 하면 지정한 글자나 이미지만 출력되고 데이터들은 출력이 되지 않았음 원인을 찾아보려 했지만 강사님과 같이 고민해봐도 해결이 안됨... -> 결국 파워포인트에 글자 크기를 슬라이드에 꽉 채울 수 있을 정도로 최대로 키워서 이를 캡처한 이미지 파일을 파이참을 통해 적용하여 wordcloud를 생성하는 방식으로 대체 (wordcloud 활용 IDE : R -> Pycharm으로 변경) 2. 기후관련 의안들에서 추출한 명사들 중 특정조건을 만족하는 단어를 제외하여 단어들을 추출하고 싶어 remove를 이용하였는데.. 2022. 9. 21.
빅데이터 부트캠프 52일차 주요 패키지 - dplyr = R에서 데이터프레임 조작을 위한 패키지 - ggplot2 = R의 대표적인 시각화 패키지 (데이터 시각화를 위해서는 필수로 설치) - ggmap = R의 지도 출력 패키지 - stringr = R에서 문자열 조작을 위한 패키지 - tidyr = 자료를 조건에 따라 배열을 바꾸는 함수를 제공하는 패키지 - RColorBrewer = R에서 색조를 이용한 시각화를 위한 패키지 - readxl = csv파일 읽기를 위한 패키지 R 기본 3 - gsub(찾을 패턴, 바꿀 패턴, 대상 변수) = 지정한 변수의 문자열 변환 (파이썬의 Replace) - tbl_df() = 데이터프레임 복사 - qmplot(경도, 위도, data=, maptype=, color=) = 지도 생성 (파이.. 2022. 9. 19.
빅데이터 부트캠프 51일차 복제(Replication) - 데이터의 동일한 복사본을 여러 서버상에서 보관하는 방법 - 하둡의 Namenode와 Datanode처럼 MongoDB는 Primary 서버와 Secondary 서버가 존재 - Primary 서버에 장애가 발생하면, Secondary 서버는 자신들 중에서 새로운 Primary 서버를 선출 - 복제 셋(Replica Set)을 사용하는 상태에서 서버가 다운되면, 복제 셋에 있는 다른 서버를 통해 데이터에 접근 샤딩(Sharding) - 다수의 서버에 데이터를 분할하는 과정 (분산 저장) ex) 4개의 서버에 복제와 샤딩으로 데이터를 구성한다면, 1000개의 데이터는 250개씩 분할되어 각 서버에 저장되고, 각 서버는 250개씩 데이터의 복제본을 또 가지고 있을 것 복제와 샤딩.. 2022. 9. 16.
빅데이터 부트캠프 50일차 데이터 import (리눅스 -> MongoDB) - mongoimport -d DB명 -c 콜렉션명 --port 포트번호 --file 보낼 파일이 있는 위치 데이터 export (MongoDB -> 리눅스) - mongoexport -d DB명 -c 콜렉션명 -o 어떤 파일명으로 저장할건지 --port 포트번호 - MongoDB가 아닌 리눅스 쉘에서 실행해야하며 리눅스의 현재 위치에 데이터를 저장함 공간 정보 인덱스 연산자 (공통) $geoWithin = 특정 영역안에 완전히 있는 것만 검색 $geoIntersects = 특정 영역에 완전히 있지 않아도 겹치는 것까지도 검색 $near = 입력한 좌표를 기준으로 가까운 순서부터 반환 (GeoJSON 데이터 - 2dsphere index, Legacy 데.. 2022. 9. 15.
''.join(dict.fromkeys()) join() '구분자'.join(문자열 혹은 리스트) = 입력한 문자열 혹은 리스트의 각 원소들을 사이에 지정한 구분자를 넣어 출력 ex) '_'.join('abc') = a_b_c 이때, 구분자를 빈칸으로 두면 그대로 출력 ex) ''.join('abc') = abc dict.fromkeys() dict.fromkeys(문자열 혹은 리스트) = 문자열 혹은 리스트의 원소를 중복 제거후 남은 원소들을 value가 없는 key로 저장 ex) A = ["a","b","b","c","a"] -> dict.fromkeys(A) = {"a":None, "b":None, "c":None} dict.fromkeys('abccbbd') = {"a":None, "b":None, "c":None, "d":None} dic.. 2022. 9. 14.
빅데이터 부트캠프 49일차 파일 입출력 - getwd() = 현재 경로 확인 - setwd("경로") = 입력한 경로로 변경 - read.csv("csv파일 경로") = csv파일 데이터 불러오기 R 기본 2 - rbind() = 지정한 데이터(벡터)들을 행으로 취급하여 병합 - cbind() = 지정한 데이터(벡터)들을 컬럼(열)으로 취급하여 병합 - merge() = 데이터프레임의 공통된 값을 기준으로 병합 - apply(행렬,1 혹은 2,함수) = 행렬의 행(1) 또는 열(2) 방향으로 특정 함수 적용 - lapply(1 혹은 2,함수) = apply의 결과를 리스트 형태(key-value)로 반환 - sapply(행렬,1 혹은 2,함수) = apply의 결과를 행렬 혹은 벡터 형태로 반환 - mapply(함수, 데이터1, .. 2022. 9. 14.
zip() zip() 서로 같은 길이의 리스트면 같은 인덱스 번호에 위치하는 데이터끼리 서로 짝을 이뤄 튜플을 생성하지만 서로 다른 길이의 리스트를 zip()에 적용하면 에러가 발생하는 것이 아니라 길이가 짧은 리스트에 맞춰 튜플이 생성된다. (길이가 긴 리스트에서 길이가 짧은 리스트의 마지막 인덱스보다 더 큰 인덱스 값을 가지는 데이터는 튜플 생성에서 제외) 관련 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2022. 9. 13.
빅데이터 부트캠프 48일차 R - 데이터의 처리, 통계 계산 및 분석, 그래픽스를 위한 오픈 소스 프로그래밍 언어 - Rstudio라는 IDE 사용 - 파일 확장자는 .R 벡터 - R의 기본 데이터 타입 - 하나 이상의 원소로 이루어진 자료 (한 가지의 데이터 타입만 저장할 수 있는 리스트라 생각하면 편리) - 하나의 벡터 안에는 동일한 타입의 데이터들이 입력되야 함 - R에서 벡터는 c()를 이용하여 생성 - 벡터간 중첩(벡터 안의 벡터) 불가능 R 기초 - R은 인덱스가 0부터가 아닌 1부터 - R은 입력하는 원소의 개수가 두 개 이상이면 무조건 c()를 씌워서 입력해야 함 ex) A[1,2] -> wrong, A[c(1,2)] -> correct - 명령문의 맨 앞과 맨 뒤에 각각 (와 )를 입력하면 print 기능이 실행됨.. 2022. 9. 13.