본문 바로가기

전체 글323

빅데이터 부트캠프 66일차 Enum(Enumeration) - 열거형 상수 집합 - 클래스를 상수처럼 사용 가능 - 하나의 인스턴스만 생성 하여 사용 가능 - 싱글톤 형태 - 상속 불가능 - Enum명.상수명.ordinal() : 해당 상수의 Enum에서의 인덱스 반환 - Enum명.values() = 해당 Enum의 상수값들을 배열 형태로 반환 - Enum명.valueOf(상수명) = 지정한 상수 반환 (단, 상수명은 String 타입으로 입력해야함) - [Enum명.상수명]으로도 지정한 상수 반환 가능 - values와 valueOf은 객체(상수)를 반환하므로 상수 안에 있는 원소를 출력하려면 해당 원소의 getter 메소드를 이용해야함 ex) Color.values.getcolorCode() - 사용 이유 = 클래스가 불필요.. 2022. 10. 12.
빅데이터 부트캠프 65일차 인터페이스(Interface) - 클래스들이 구현해야 하는 동작을 지정하는데 사용되는 추상 자료형 - 인터페이스는 기본 생성자가 입력되지 않아도 다른 클래스에서 바로 객체를 불러와 사용 가능함 - interface를 통해 선언할 수 있으며 implements를 통해 일반 클래스에서 인터페이스를 구현 - implements한 클래스는 implements의 내용을 다 사용해야함 - 인터페이스 필드 = 기본 형태가 상수 - 인터페이스 메소드 = 기본 형태가 추상 메소드 (abstract) -> 부모 메소드를 반드시 자식 클래스에서 재정의(오버라이딩)해야함 - 상수 = 인터페이스에서 특정값을 고정 - abstract = 기본 틀만 제공한 추상메소드를 자식 클래스에서 재정의하여 사용 - default = 인터페이.. 2022. 10. 11.
갑자기 만든 국내 박스오피스 확인 파일 평소에 영화에 관심이 많아 국내 박스오피스 순위를 자주 확인하는 습관이 있는데 이번 연휴에 갑자기 국내 박스오피스 순위를 확인하는 나만의 파일을 만들고 싶은 욕구가 생겨 영진위 오픈 API로 크롤링해서 테이블과 그래프를 확인하는 코드를 Python을 바탕으로 Pycharm을 이용하여 작성했지만 Pycharm으로는 뭔가 시각화가 별로로 느껴져 말로만 들었던 시각화가 좋은 tableau로 만들어보고자 시도했지만 아무 교육도 받지 않고 무작정 시도하다보니 시간이 생각보다 엄청 걸렸다.. 도대체 하나의 파일에서 데이터를 여러 경우에 따라 필터링해서 적용하는 건 어떻게 해야하는건지.. 대시보드는 어떻게 꾸미고... 여러가지로 엄청해멨다.. 역시 프로그램을 배우지 않고 혼자서 무작정 사용해보는것은 참 무모한 짓같다.. 2022. 10. 9.
빅데이터 부트캠프 64일차 객체 관련 메소드 - hashcode() = 객체 주소값을 정수로 변환 - equals() = 동일한 객체인지 비교후 그 결과(true/false) 반환 - System.getProperty() = 지정한 시스템의 특정 속성값 출력 - System.getProperties() = 시스템의 모든 속성값 출력 - System.gc() = 쓰레기 수집기 메소드 호출 (더이상 사용되지 않는 객체의 메모리 반환) String(문자열) 관련 메소드 - equals() = 문자열의 내용 비교 결과 반환 - length() = 문자열의 길이 반환 - charAt() = 지정 인덱스 위치 문자를 반환 - indexOf() = 해당 문자열의 인덱스 번호 반환 - toUpperCase() = 대문자로 출력, toLowerC.. 2022. 10. 7.
빅데이터 부트캠프 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.