본문 바로가기

전체 글319

list(map(int, input())) 주의할 점 평소 무의식적으로 input()뒤에 split()을 같이 입력하는 실수를 범할때가 있는데 입력값을 12345처럼 띄어쓰기 없이 입력할때 split()을 적용해버리면 각각의 숫자(1,2,3,4,5)가 아닌 하나의 숫자(12345)로 인식 특히 0이 앞자리에 있을 경우에는 앞자리에 있는 0이 모두 생략되어버리니 방심하지 말고 주의할 것! 2022. 9. 12.
sort, sorted 차이와 내림차순 .sort()는 리스트의 원소를 오름차순으로 정렬하는 파이썬 메서드인데 기본값이 sort(reverse=False)라서 sort(reverse=True)를 적용하면 내림차순이 적용됨 sorted()는 ()안에 입력한 어떠한 시퀀스 타입 데이터가 들어와도 오름차순으로 정렬하여 결과값을 리스트로 반환하는 파이썬 메서드인데 기본값이 sorted(데이터,reverse=False)라서 sorted(데이터,reverse=True)를 적용하면 내림차순이 적용됨 sort는 리스트만 가능, sorted는 어떠한 시퀀스 타입도 가능 sort는 적용하면 정렬된 상태를 계속 가져가고, sorted는 객체에 따로 저장해야함 sort, sorted 둘 다 결과값을 리스트로 반환 ex) li.sort() li1 = sorted(li) 2022. 9. 12.
전역변수(global) - 파이썬에서는 전역변수 설정 = global - 함수 바깥에서 정의한 변수를 함수 내에서 그대로 불러와 사용하고 싶으면 함수 내에서 [global 변수명] 을 입력하여 전역변수 처리를 해야함 (함수 바깥에서 정의한 변수는 그 자체로 전역변수니 global을 함수 바깥에서 적용하는 것은 무의미) ※ 만약 함수 내에서 global 처리를 하지 않으면 해당 변수를 전역변수가 아닌 지역변수로 처리 관련 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.. 2022. 9. 10.
Return, Continue, Break 차이 - return = 조건 만족시 함수 종료 (종료와 함께 돌려줄 값 지정 가능) - break = 조건 만족시 반복문 전체 종료 (다음 순서가 존재해도 종료) - continue = 조건 만족시 해당 시점 반복문 종료 후 다음 순서로 넘어감 ★ 즉, return(함수) > break(반복문 전체) > continue(해당 순서의 반복문) 순으로 큰 범위의 명령의 실행을 종료시킴 2022. 9. 10.
Hash - 파이썬의 딕셔너리와 유사 - 데이터를 입력하는 순서 상관 X - key:value 형식으로 데이터 저장 - value는 중복이 가능하지만 key는 중복 X - 저장한 데이터 수정 가능 - 모든 데이터 타입으로 접근 가능 - list에 비해 빠른 시간 복잡도 (list=O(N), Hash(Dict)=O(1)) - string을 기반으로 데이터를 기록하고 관리해야 할 때 주로 사용 (string 타입의 key) 해쉬 함수(Hash Function) - 임의의 길이를 갖는 임의의 데이터(key)를 고정된 길이의 데이터(해시 값)로 매핑하는 함수 - hash() = 해쉬값 설정 (해쉬값은 랜덤으로 부여됨, 중복 가능성 존재 - 중복 발생 = 해쉬 충돌 발생) ※ Java의 경우에는 hashCode() ※ 만.. 2022. 9. 10.
빅데이터 부트캠프 47일차 MongoDB 쿼리 언어 - null = 결측치 - $regex = 패턴이 일치하는 문자열 조회 (정규식) ※ 정규식 표현 기본 / = 문자열의 구분자, ^ = 문자열의 처음, $ = 문자열의 끝, . = 일치하는 문자열이 있는지 (\n으로 나눠진 뒷부분 제외), * = 해당 문자열이 0번 이상 반복되어 나오는지 (\n으로 나눠진 뒷부분 포함) ex) /123$/ = 123으로 끝나는 문자열 조회, /^abc/ = abc로 시작하는 문자열 조회 - $options = $regex 뒤에 혼용하며 정규식 옵션을 지정할 수 있음 ※ m = 문자열이 여러 줄일 경우 각 줄마다 조회, i = 대소문자 구분 X, x = 문자열 공백 무시, s = 정규식 표현중 .을 이용할 때 \n으로 구분된 부분도 포함해서 옵션 .. 2022. 9. 8.
빅데이터 부트캠프 46일차 (MongoDB) MongoDB - C++ 기반 문서지향적(Document-Oriented) 오픈 소스 데이터베이스 - 대표적인 문서형 모델 NoSQL 데이터베이스 - 행(row) 개념 대신 문서(document) 개념을, 테이블(table) 개념 대신 콜렉션(Collection) 개념을 사용 - 데이터를 구조화하여 json(키-값) 형태로 저장 - 데이터 계층 구조 = db > collection > document > field(key:value) ※ RDBMS 데이터 계층 구조 = db > table > tuple > column - sudo systemctl start mongod = MongoDB 전원 ON - sudo systemctl status mongod = MongDB 상태 확인 - sudo servic.. 2022. 9. 7.
빅데이터 부트캠프 46일차 (NoSQL) NoSQL 정의- RDBMS의 한계(스키마 문제, 스케일업 한계)를 극복하기 위해 만들어진 새로운 형태의 DBMS ※ 스케일 업(scale-up) = 기존 서버를 더 높은 사양으로 업그레이드하는 것 - 수직 스케일링    스케일 아웃(scale-out) = 기존 서버에 비슷한 성능의 서버를 연결(추가)하여 서버를 확장하는 것 - 수평 스케일링- 비관계형 데이터 베이스 NoSQL, RDBMS 비교- RDBMS = 테이블 기반, Scale-up- NoSQL = 테이블 기반 X, Scale-out- 트랜잭션 성질 RDBMS = ACID(Atomicity 원자성, Consistency 일관성, Isolation 고립성, Durability 지속성)  NoSQL = CAP(Consistency 일관성, Avail.. 2022. 9. 7.
빅데이터 부트캠프 45일차 SQOOP (SQL to Hadoop)- 관계형 데이터베이스(RDB)와 분산 파일 시스템(HDFS) 사이의 양방향 데이터 전송을 위해 설계된 오픈소스 소프트웨어- 기존에 존재하는 RDB에 있는 데이터를 HDFS로 전송※ Flume은 새로 생성된 데이터를 실시간으로 전송 & Hadoop 이외의 대용량 저장소로 전송 가능- sqoop import 시 primary key가 지정되어 있지 않으면 import 불가능- scoop은 리눅스에서 명령어를 입력해야 함 (MySQL, Hadoop X)- JDBC(Java Database Connectivity) = Java에서 DB에 접속할 수 있도록 하는 자바 API MySQL(RDB)에서 Hadoop으로 전송- sqoop import --connect jdbc:my.. 2022. 9. 6.
빅데이터 부트캠프 44일차 데이터베이스 (DB : DateBase) - 조직체의 응용 시스템들이 공유해서 사용하는 운영 데이터들이 구조적으로 통합된 모임 - 데이터베이스의 구조는 사용되는 데이터 모델에 의해 결정 - 데이터베이스 스키마 = 전체적인 데이터베이스의 구조 - 데이터베이스 상태 = 특정 시점의 데이터베이스의 내용 - DBMS (Database Management System) = 데이터베이스를 정의하고, 질의어를 지원하고, 리포트를 생성하는 등의 작업을 수행하는 소프트웨어 - 질의(Query) = DBMS에게 보내는 요청 - 관계형 데이터베이스 (RDBMS) = 모든 데이터를 2차원 테이블 형태로 저장하는 데이터베이스 - 객체 지향 데이터베이스 (OODB, Object-Oriented DataBase) = 객체 지향 프.. 2022. 9. 5.
Git 기본 사용법 - pwd = 현재 위치 확인 - cd(change directory) = 폴더 변경 - ls = 현재 파일 리스트(.으로 숨긴파일은 출력 X) - ls -a = 숨김 파일까지 모두 리스트로 출력 - cd ~ = 처음 위치로 재이동 - cd / = 최상위 폴더로 이동 - cd 폴더명 = 현재 있는 폴더에서 해당 폴더로 이동 - ctrl + a = 커서 제일 앞으로 - ctrl + e = 커서 제일 뒤로 - ctrl + b = 커서 한 칸 뒤로 - ctrl + f = 커서 한 칸 앞으로 - alt + b = 커서 한 단어 뒤로 - alt + f = 커서 한 단어 앞으로 - vi 파일명 = vi 모드로 파일 수정 - code 파일명 = vscode로 파일 수정 - notepad 파일명 = 메모장으로 파일 수.. 2022. 9. 3.
Git 용어 간단 정리 - 작업 폴더(working directory) = 작업이 발생하는 폴더 - staging area = 작업 폴더에서 작업한 변경 내용을 git 저장소에 컴밋하기 전에 올려두는 공간 (중간 저장소) - 로컬 저장소(local repository) = 내 PC에서 관리하는 git 저장소 - 원격 저장소(remote repository) = GitHub와 같이 로컬 저장소를 업로드 하는 저장소 로컬 -> 원격 - add = 작업폴더에서 수정한 파일들을 staging area에 1차적으로 저장하는 과정 - commit = staging area에서 점검을 마친 파일들을 로컬 저장소에 저장하는 과정 + 그 과정을 거쳐 원격 저장소에 전송되기 위해 로컬 저장소에 저장되어 있는 파일들 - push = 로컬에서 작업.. 2022. 9. 3.
빅데이터 부트캠프 43일차 Flume - 분산 환경에서 대량의 스트리밍 데이터(로그 데이터 등)를 효율적으로 수집하는 Java 기반 오픈소스※ 로그 데이터(Log Data) = 서버에서 이루어지는 모든 작업에 대한 정보를 담고 있는 데이터- 외부 이벤트 발생시, 해당 데이터를 수집하여 Agent를 통해 원하는 저장소로 전송해줌- 빅데이터를 서버 컴퓨터에서 온전히 감당하기에는 무리가 있기 때문에 Flume을 통하여 데이터를 실시간으로 대용량 저장소로 전송하는 것이 주 목적 - 하나의 Agent는 Source, Channel, Sink로 구성- Source = 웹 서버로부터 로그 데이터 수집(출입문)- Channel = Source에서 받은 로그 데이터를 Sink로 전달하는 통로,- Sink = HDFS로 로그 데이터 전달 (나가는 .. 2022. 9. 2.
빅데이터 부트캠프 42일차 # 셀프 주유소 가격 분포 그래프 import pandas as pd from glob import glob # glob: 파일 목록을 뽑을 때 사용하는 모듈 import matplotlib.pyplot as plt import seaborn as sb from matplotlib import font_manager, rc xls_files = glob('C:/oil/지역*.xls') print(xls_files) busan_raw = [] for file in xls_files: raw = pd.read_excel(file, header=2) busan_raw.append(raw) busan_table = pd.concat(busan_raw) # concat: 동일한 인덱스나 컬럼을 가지고 있는 경우에.. 2022. 9. 1.
Greedy Algorithm (그리디 알고리즘) - 나중에 미칠 영향에 대해서는 고려하지 않은 채 현재의 상황에서 당장 좋은 것만 고르는 알고리즘 - 다른 알고리즘에 비하여 속도가 빠른 편이지만 최적해를 찾을 수 없는 가능성이 높음 ex) 가장 큰 순서대로, 가장 작은 순서대로 2022. 8. 31.