Blog Content

  • [React] 새 페이지 렌더링 시 상단에서 시작하기

    Category Programming/JavaScript on 2018. 9. 30. 15:34

    리액트는 새 페이지를 렌더링한 후 스크롤을 맨 위로 올려주지 않는다. 그래서 별도로 컴포넌트를 만들어서 설정해주어야 한다. 먼저 ScrollToTop.js 컴포넌트를 만든다. import React, { Component } from 'react'; import { withRouter } from 'react-router'; class ScrollToTop extends Component { componentDidUpdate(prevProps) { if (this.props.location !== prevProps.location) { window.scrollTo(0, 0) } } render() { return this.props.children } } export default withRouter(S..

    Read more
  • [python] 리스트 변수를 반복문 돌리기 예시

    Category Programming/Python on 2018. 4. 25. 12:51

    python_for_loop.md students = [] student1_info = { "first_name": "Martin", "las_name" : "Lawrence", "student_no": 9854 } student2_info = { "first_name": "Robert", "las_name" : "Gant", "student_no": 6790 } student3_info = { "first_name": "George", "las_name" : "Murphy", "student_no": 4728 } for i in range(1, 4): students.append(eval('student%d_info'% (i))) print(students) eval() : 실행 가능한 문자열을 입력 ..

    Read more
  • [Python] Python에서 CSV 파일을 읽어들이는 여러가지 방법

    Category Programming/Python on 2018. 4. 25. 12:47

    방법1. 기본 내장함수 사용 1. csv.reader import csv dat = open('file.csv') reader = csv.reader(dat) lines = list(reader) 2. 한 줄씩 읽어들여서 리스트로 만들기 import csv dat1_list = [] dat2_list = [] with open('file.csv', 'r') as raw: reader = csv.reader(raw) for lines in reader: print(lines) dat1_list.append(lines) start = len(dat2_list) dat2_list[start:start] = lines 3. from_csv dat.from_csv(&#3..

    Read more
  • Hadoop wordCount example

    Category Programming/Data Engineering on 2018. 4. 25. 12:33

    Hadoop Hadoop = HDFS + MapReduce Mode 3가지 HDFS 설치방법 Stand alone : 분산저장 안함, 코딩은 가능 가상분산모드 : 프로세스 3개. 맵리듀스 : 맵 상속 받음, 리듀스 상속받음. 어떻게 데이터 처리하는지 익히기. 순서 VirtualBox 설치 // 여기까지만 Windows 환경에서 진행합니다. Ubuntu 14.04.2 설치 // 이후에는 VirtualBox 내의 Ubuntu 에서 진행 JDK 설치 하둡 다운로드 하둡 Stand-alone 모드 구성 하둡 가상 분산 모드 구성 이클립스 다운로드, 설정 WordCount 예제 코딩 테스트 Ubuntu에 JDK 8 설치 $ sudo add-apt-repository ppa:webupd8team/java $ sud..

    Read more
  • HDFS의 기본 구조(HDFS Architecture)

    Category Programming/Data Engineering on 2018. 4. 25. 12:27

    HDFS Architecture HDFS Architecture 파일 저장, 읽기 : 어플리케이션에서 클라이언트로 파일 저장 또는 읽기 요청 Client : application 요청에 의해 client가 NameNode에 데이터 블록의 위치를 조회 NameNode에게 받은 Data block 위치를 통해 Client가 데이터를 직접 조회 Heart beat : DataNode가 상태를 주기적으로 보고(일종의 출석체크). Secondary NameNode NameNode가 망가지면 데이터가 어디에 저장되어 있는지 알 수 없기때문에 읽어들일 수 없으므로, NameNode를 백업해 두었다가 NameNode가 망가지면 다시 복구해 주는 역할 ​ HDFS와 MapReduce는 둘다 Master/Slave 구조 ..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY20

    Category Programming/Django on 2018. 4. 25. 12:20

    Python Django - Day20.md Day 20. Django 프로젝트 파일 구조, MTV Django 프로젝트 만들기 $ python3 -m venv django-venv $ source django-venv/bin/activate $ pip install django $ django-admin startproject firstproject 아래 구조의 프로젝트가 생성된다. Django 프로젝트 디렉토리 형태 manage.py 다양한 명령어를 수행시켜주는 매개체 역할을 한다. __init__.py 파이썬 모듈로써 동작을 할 수 있다. settings.py 여러 설정들을 기억해 두는 파일. wigs.py 웹서버에 배포를 할때 설정파일들을 연결시켜주는 파이썬 파일. Django 앱 추가해보기 so..

    Read more
  • HTML, CSS, Javascript 주석

    Category Programming/JavaScript on 2018. 4. 23. 16:38

    HTML : CSS : /* */ Javascript : /* */, // 출처 : Learning Javascript, Shelley Powers

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY19

    Category Programming/Django on 2018. 4. 22. 20:27

    Python Django - Day19.md Day 19. 프레임 워크란? 프레임워크, 라이브러리 차이점 라이브러리 필요한 기능들이 구현되어 있는 라이브러리에서 기능을 불러와서 사용하는 것이다. 직접 작성했기 때문에 프로그램 흐름의 전체를 이해하기 쉽다. (예시) import requests response = requests.get("https://www.fastcampus.co.kr") response.text 프레임워크 이미 구성되어진 틀. 프레임워크 자체가 하나의 프로그램이다. 그러므로 실행 흐름이 결정되어 있고 필요한 기능들이 채워져 있다. 그러므로 라이브러리처럼 가져다 쓰는 것이 아니라 내가 필요한 기능으로 대체해서 사용하는 것이다. 실행 흐름이 이미 정해져 있기 때문에 어떤 방식과 흐름으로 ..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY18

    Category Programming/Django on 2018. 4. 19. 23:47

    Day 18. Python 가상환경 세팅 & Django 설치 Python Virtual Environment 가상환경의 필요성 버전의 분리 : 버전별로 또는 필요에 따라 패키지 등을 다르게 설치할 수 있다. 서버와의 통일 가상환경 만들기 $ python3 -m venv first-env # python3 -m venv 가상환경이름 $ ls# 설치된 것 확인 first env $ cd first-env# 폴더로 들어가기 $ source first-env/bin/activate# 적용 # pip list를 입력해보면 여태까지 설치된 패키지가 나오지 않고, 기본 패키지만 나오는 것을 볼 수 있다. $ pip list # Django 설치 $ pip install django // 가상환경 python 실행 ..

    Read more
  • Django 설치 에러

    Category Programming/Django on 2018. 4. 19. 23:17

    Django 설치 중에 아래와 같은 에러가 발생했다. pip에서 특정 기능을 지원 중단하고 업그레이드를했는데, 컴퓨터에서 그 pip업그레이드를 못따라가서 발생한 문제라고 한다. Collecting django Could not fetch URL https://pypi.python.org/simple/django/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:719) - skipping Could not find a version that satisfies the requirement django (from versions: )..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY9

    Category Programming/Django on 2018. 4. 19. 18:17

    Day 9. 기초알고리즘(정렬) 알고리즘 어떤 문제를 풀기 위한 절차 혹은 방법 계산복잡도 알고리즘의 계산복잡도를 나타내는 방법 중 하나로 Big O 표기법이 있다. O(n) : n이 커질 수록 시간복잡도가 올라간다. ​ 정렬문제 선택정렬 삽입정렬 병합정렬 퀵정렬 선택정렬 : O(n) from random import choice raw_list = list(range(0, 100+1)) # raw_list = [0, 1, 2, 3, ..., 100] target = [] for _ in range(100): target.append(choice(raw_list)) def selection_sort(A): result = [] while len(A) != 0: min_num = 100 for i in A..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY8

    Category Programming/Django on 2018. 4. 18. 20:58

    http://www.fastcampus.co.kr/dev_online_python/ Day 8. lambda, map, filter, 데코레이터 lambda 함수만 만들고 함수가 들어갈 변수를 지정하지 않는 식. (깔끔하다는 장점은 있으나 가독성이 떨어질 수 있어서 python3 부터는 권장하지 않는 추세이다.) students = [] student1_info = { "first_name": "sol", "las_name" : "hyun", "student_no": 3498 } student2_info = { "first_name": "suzy", "las_name" : "bae", "student_no": 1345 } student3_info = { "first_name": "coca", "las_n..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY7

    Category Programming/Django on 2018. 4. 18. 20:57

    http://www.fastcampus.co.kr/dev_online_python/ Day 7. Class Class def print_hello(name): print("Hello ", name) # 함수는 다른 변수명에도 저장할 수 있음 print_hello_name = print_hello print_hello_name("Jane") # 함수는 list에도 넣을 수 있음 func_list = [print_hello, 1, 2] func_list[0]('Jane') # 함수는 dictionary에도 넣을 수 있음 func_dict = { 'func': print_hello } func_dict['func']('Jane') MY_MONEY = [0] def spend(m): if MY_MONEY[0] ..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY6

    Category Programming/Django on 2018. 4. 18. 20:41

    Day6 File 입/출력, 모듈 파일 입출력 f = open('파일경로', '모드') f.close() 상대경로 / 절대경로 모드 모드 설명 w write 모드 파일 전체에 새로 쓰기 r read 모드 파일을 읽는 모드 a append 모드 파일에 내용을 추가하는 모드 [ Tip ] Whitespace Character \n or \n \t or \t (ex) print("Hello \n I'm Jane.") 파일 예제 f = open("./hello.txt", "w") // .는 현재폴더 의미함 f.write("Hellow Wrold!") f.close() f = open("./hello.txt", "a") for i in range(2, 10+1): content = '\n' + str(i) + "..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY5

    Category Programming/Django on 2018. 4. 18. 20:36

    http://www.fastcampus.co.kr/dev_online_python/ Python Django : Day5 함수(packing, unpacking), 재귀함수(예외처리) 함수(Function) 추상화 별도 공간에 존재하여, 변수간 간섭이 방해를 일으키지 않는 방법 분리 코드는 다른 곳에 작성되어, 우리가 필요한 경우 호출만 하여 사용할 수 있는 방법 def func_name(arg): # code print("Hello, Func") return arg func_name() def add(a, b): c = a + b return c x = add(5, 5) print(x) parameter(매개변수), argument(인자) 란? parameter 함수 정의할때 어떤 값을 받겠다 라고 선..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY4

    Category Programming/Django on 2018. 4. 18. 20:29

    http://www.fastcampus.co.kr/dev_online_python/ 데이터 구조(Dictionary, set), tuple(list comprehension) Tuple immutable + 순서가 있는 자료형 (1, 2, 3, 4) tuple1 =(1, 2, 3, 4) 튜플을 리스트로 바꾸기 : 1) 1 ~ 100까지 숫자를 포함하는 Tuple을 만드세요. 2) 그 Tuple을 list로 바꾸세요. tuple_1_to_100 = tuple(range(1, 101)) list_1_to_100 = list(tuple_1_to_100) Dictionary key, value형태의 자료형 / 순서가 보장되지 않음 {‘key1’: ‘value1’, ‘key2’: ‘value2’} d = {} d..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY3

    Category Programming/Django on 2018. 4. 18. 20:26

    http://www.fastcampus.co.kr/dev_online_python/ 흐름제어 if, for while Algorithms : 1~100 사이 숫자 맞추기 import random n = random.randint(1, 100) while True : guess = int(input("정답을 맞춰보세요. :")) if n == guess : print("정답입니다.") break elif abs(n - guess) < 10 : print("아 아깝습니다.") else : print("틀렸습니다.") For문 for el in [1, 2, 3, 4]: print(el) # 1 # 2 # 3 # 4 for i in range(100): print(i) list() list("python") #..

    Read more
  • PYTHON & DJANGO 온라인 강의 수업노트 DAY2

    Category Programming/Django on 2018. 4. 18. 20:23

    Python Django - Day2.md 강의 : http://www.fastcampus.co.kr/dev_online_python/ Type과 연산(Numbers, String, boolean) Built-In Function type() Numbers - int, float Strings Boolean var = input(‘입력’) int(), float(), str() String format 💡 "안녕하세요 %s씨, %d년 새해 복 많이 받으세요."%("현솔", 2018) "안녕하세요 {name}씨, 오늘은 {day}입니다.".format(name="현솔", day="월요일") len() String string = "Python" string[0] string = input("좋아하는 프로그..

    Read more
  • HTML 생활코딩 강의노트1

    Category Programming/JavaScript on 2018. 4. 17. 16:16

    html_classnote.md 기술소개 HyperText HyperText는 웹페이지에 있는 링크 기능을 말한다. 문서와 문서가 링크로 연결되어 있다는 특성을 갖는다. Markup 마크업 언어는 태그 등을 이용하여 문서나 데이터의 구조를 명기하는 언어의 한 가지이다. HTML HperText Markup Language 하이퍼텍스트를 가장 중요한 특징으로 하는 마크업이라는 형식을 가진 컴퓨터 프로그래밍 언어 HTML 기본 문법과 기본 태그 기본문법 오늘의 명언 도널드 커누스 우리 모두는 자신의 힘으로 발견한 내용을 가장 쉽게 익힌다. : 글씨 진하게 해서 강조 표시 : 제목 표시. 자동으로 문자 키워주고, 줄바꿈 해준다. : 제목 표시. 보다 약간 더 작다. 하이퍼텍스트와 속성 오늘의 명언 도널드 커누..

    Read more
  • [Hadoop] Hadoop 완전분산모드 설치

    Category Programming/Data Engineering on 2018. 4. 14. 21:35

    "[Hadoop] Hadoop 완전분산모드 설치" VirtualBox 에 4개의 Ubuntu 를 만든다. 설치 시 사용자명은 hadoop 으로 한다. 4개를 따로 설치하거나 1개를 만들어서 3개를 복제한다. 각각 아래처럼 이름과 IP 주소를 사용할 예정. IP 주소는 각 VirtualBox에서 자동으로 생성되고 뒤에 2자리만 순서대로 변경해서 넣어주면된다. 192.168.30.101 hadoop01 192.168.30.102 hadoop02 192.168.30.103 hadoop03 192.168.30.104 hadoop04 복제 전에 할 일 hadoop01에 아래와 같이 먼저 설치한 후 복제해서 hadoop02 ~ hadoop04를 만든다. // vim 설치 $ sudo apt-get install v..

    Read more