study 973

spark processing parquet file from s3 with pass credentials.

회사 내에 Amazon emr cluster서버가 있고, 현재 데이터 백업용으로 s3를 쓴다. ec2의 이슈 때문에 데이터가 날라가서 데이터를 s3에서 가져와서 다시 내 몽고디비 서버에 넣어야 했다. 새로 삽질한 경험을 적어놨다. 처음엔 단순히 내 서버에 spark를 설치 후 s3에서 데이터를 가져와 돌리려고 했다. 서버에 스파크를 설치하고, s3 parquet데이터를 가져오는 방법을 찾아보았더니 아래처럼 되었다. parquet은 파일 저장 포맷중 하나라고 한다. (https://spark.apache.org/docs/latest/sql-data-sources-parquet.html) from pyspark.sql import SparkSession spark = SparkSession.builder \..

data engineering 2019.02.17

download s3 folder recursively

현재 s3구조다. python boto3로 디렉터리를 다운받는 코드를 짰다. https://stackoverflow.com/questions/8659382/downloading-an-entire-s3-bucket 를 보면 콘솔로 자동으로 다운로드하는 방법이 나와있다. 구조가 위처럼 좀 복잡하고, 파일 하나당 크기가 크고, 하나 다운받고 하나 처리하는 방식으로 갈거여서 (사실 boto3를 이용하는게 조금 더 많이 익숙해서, aws configure를 서버에 설정하기 싫어서, 다운로드시 어떻게 동작할지 테스트하기 귀찮아서..) 짰다. https://stackoverflow.com/questions/31918960/boto3-to-download-all-files-from-a-s3-bucket/31929277..

data engineering 2019.02.14

hive external table, partitioning

나만 여기서 처음 이런식의 구조를 봤는지 모르겠다. hive에는 internal table과 external table이 있다. 현재 시스템의 일부 데이터 파이프라인의 구조다.몽고디비 -> csv -> hdfs 로 csv업로드 -> 하이브 이런식으로 파이프라인이 있는데, csv를 hdfs에 올리는 과정에서 계속 이슈가 생겼다. 다른 큰 잡들이 돌아가다 보니 csv를 hdfs로 업로드하는데 문제가 생겨서, 몽고디비 -> csv -> aws s3 -> 하이브 이런식으로 파이프라인을 변경하기로 했다. 하이브에서는 어떻게 s3의 데이터를 가져갈까 생각했었는데 external구문으로 외부의 데이터를 가져와서 테이블을 만들수 있었다. s3에 데이터를 넣을때는 여러 버킷이 아닌 한 버킷에 데이터를 정리하기 위해 버킷..

data engineering 2019.01.28

취업을 위한 알고리즘 공부법.

자소서 : http://qkqhxla1.tistory.com/797 면접 후기 : http://qkqhxla1.tistory.com/799 내가 한 공부들과 방법 : http://qkqhxla1.tistory.com/802 취업을 위한 알고리즘 공부법 : http://qkqhxla1.tistory.com/990 데이터 엔지니어 경력 5년 이직준비 후기 : https://qkqhxla1.tistory.com/1193 아래에 적을건 취업용 알고리즘 공부 방법입니다. 제가 2년 반 전(2016년 6월쯤)에 공부했던 방법이니까 현재도 유용할거에요. 굳이 취업용이라고 적은건 대회에 나갈 정도까지 심화해서 공부해본적이 없었기 때문에 취업용이라고 적었어요. 그리고 이 글을 보는 사람들 대부분이 취업용으로 알고리즘 공..

private/memo 2019.01.10

Breaking Wechall Crackcha using tensorflow(keras) 2. training and testing the data.

http://qkqhxla1.tistory.com/988 에 이은 글. 이젠 데이터를 트레이닝하고 테스트할 차례이다. 그전에 이전 글의 클래스를 가져왔다. import numpy as np import cv2 import requests import queue import os import string download_image_name = './image/problem.png' first_preprocessed_name = './image/problem1.png' after_bfs_dot_remove_name = './image/problem2.png' class SiteHandler: def __init__(self): self.header = {'Cookie': 'WC=11107310-13590-T..

Breaking Wechall Crackcha using tensorflow(keras) 1. collecting the data.

예전. 대략 3년전에 http://qkqhxla1.tistory.com/382?category=602369 글에서 wechall 의 캡챠를 깨기 위해 많은 노력을 했었다. 그러다 도저히 방법론 자체를 잘 모르겠어서... 포기했다. 최근에 tensorflow를 공부하던 도중 keras를 사용해서 숫자 인식하는 코드가 많은것을 보고.. tensorflow도 공부해볼겸 다시 도전했다. 바로 이전글에서 이것저것 삽질하면서, 또 스스로 데이터를 수집하고 트레이닝을 시켜보면서 깨달은건 어떤 알고리즘을 사용하느냐보다는, 좋은 데이터가 '많이' 들어갔을때 좋은 결과를 낸다는거다. 엄청난 삽질을 해가며 데이터를 가공하고, 넣고, 예측 테스트를 했는데 예측률이 90%가 넘었을때의 기쁨은 진짜 어떤걸로도 표현할 수가 없을것..

MNIST Handwritten Digit Recognition in Keras(Tensorflow)

파이썬 3 기반입니다. https://nextjournal.com/gkoehler/digit-recognition-with-keras 에서 읽은 글을 다시 제가 정리했습니다. 위 글도 좋긴 한데 굳이 쓸때없는 pyplot를 이용한 그래프 그리기와, 변수명 등을 너무 대충 지어서 가독성이 떨어지기에 공부하면서 다시 정리했습니다. (예로 : (X_train, y_train), (X_test, y_test) = mnist.load_data()) 새로 정리한 글에서는 신경 네트워크 만드는 부분과 데이터 넣는법, 만드는 법을 중점적으로 적겠습니다. tensorflow에도 keras가 들어왔기에 tensorflow의 keras를 쓰겠습니다. 목적은 다른 머신러닝을 돌리기 위한 적당한 코드 이해입니다. 여기에서는 m..

mongodb slow query check.(and kill slow query)

https://medium.com/@igorkhomenko/troubleshooting-mongodb-100-cpu-load-and-slow-queries-da622c6e1339 서버에서 갑자기 cpu가 100%까지 치솟았다. 몽고디비가 cpu가 높은 원인이었고, 여러 프로그램에서 몽고에 접근하고 있어서 도대체 어떤 프로그램에서 어떻게 접근하는 프로세스가 문제인지 확인할수가 없었다. 구글링에 검색해보니 위 명령어가 나왔다. db.currentOp({"secs_running": {$gte: 3}}) 치면 엄청나게 유용하다. 오래걸리는 쿼리가 접근하는 컬렉션과, 필터를 어떤식으로 걸었는지가 다 나온다. 아래는 위 블로그 주인이 적은거 그대로 가져다 붙임.db.currentOp({“secs_running”: ..

data engineering 2018.12.06

2018-12-02 일요일.

분명히 내가 공부한 기술 적는 기술 블로그였는데... 어느순간 만사가 귀찮아지고 일기장이 되버렸다. 2년 산 사당 자취방을 떠난다. 작은방 1억에 관리비 15 전세를 살고있는데 집주인이 전세비를 올린다고 해서 그냥 옮긴다고 했다. 솔직히 관리비가 비싸서 불만이었는데 올린다고 하니까 짜증나서 그냥 옮겼다. 집을 어디로갈까 찾다가 회사 위쪽 구의역 근처가 싸다는 얘길 들어서 그날 바로 부동산을 보러 갔었는데 운이 좋았는지 내가 간날 매물이 있었다. 평수는 지금과 비슷하지만 1억 천에 관리비가 5로 싸졌다. 전세 천 올라간건 별로 문제가 안되고 관리비가 싼게 좋아서 바로 계약을 했다. 내년이면 이제 3년차다. 누군가에게는 회사 일에 대해 익숙해진 시점이라고 생각하지만 내가 볼땐 전문성을 갖추고, 작은 프로젝트..

2018-10-24 수요일

집에 있는데 부모님이 내 어깨가 약간 비스듬한것 같다고 했다. 그리고 이것저것 말을하다 허리가 굽은거 아니냐고 해서 회사 근처에 척추 x-ray를 찍으러 갔다. 찍어보니까 허리가 옆으로 약간 휘었다. 아주 살짝 휜것같은데 x-ray사진의 내 골반에서 수직선을 위로 그어보니 빳빳하게 좍 올라가는게 아니라 살짝 옆으로 휘어서 위로 가는게 보인다. 한 중학교?때부터 오래 앉아있기도 했고 컴퓨터를 워낙 좋아하기도 했고 움직이는걸(운동하는걸) 귀찮아하기도 했고 자세도 안좋아서 굽었나보다. 이거말고도 최근에 회사 건강검진을 받았는데 작년보다 살도 살짝 더 찌고 비만은 아니지만 체지방량도 전보다 높아지고, 조금 더 술먹으면 고혈압이 올수도 있고 그렇단다. 작년엔 그래도 이런거 하나도 없이 그냥 종이에 건강이라고 써있..

general function for multiprocessing

코딩을 하다 보면 특정 클래스의 특정 함수를 멀티프로세스로 돌려야할 경우가 생긴다. 매번 그냥 main안에 프로세스를 만들고 start()를 하고, join까지 넣었는데 이것들을 예쁘게 감싸줄 필요성을 느껴서 만들었다. # -*- coding: utf-8 -*- from multiprocessing import Process import time class MultiProcessTest: # example_function을 multiprocessing으로 돌리고 싶다. def example_function(self, kwargs): ps_order = kwargs['order'] parameter = kwargs['parameter'] while True: print '{} {} in example fu..

flatten list of lists

https://stackoverflow.com/questions/11264684/flatten-list-of-lists/11264799 참고. 리스트안에 리스트가 있을 경우 flatten시키고 싶은 경우가 있다. [[1], [2,3], [4,5,6], [7,8,9,10]] -> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 예전에 numpy를 한번 봤었을때 https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.ndarray.flatten.html 같이 특정 함수가 있을줄 알았는데, list comprehension을 사용해서 flatten이 가능하다. 파이썬에는 flatten에 관련된 표준 함수가 없다고 하는 그 이유는 여기에 나..

2018-09-19 수요일

미국출장갔다온뒤로 그냥 멍했다. 저번에도 느낀거지만 2주간 긴 꿈을 꾼것 같다. 한국에 와서 좋지만 그래도 아쉽기도 하다. 돌아오고나서 얼마 뒤 미국에서 봤던 몇몇이 한국으로 출장을 왔다. 여기서 보니까 또 반가웠다. 거기있을때 걔내들이 잘챙겨줘서 나도 잘챙겨주려고 노력했다. 어제는 팀회식을 했는데 출장자들과 같이 했다. 진대감이라는 이영자가 추천한 식당을 갔는데 맛은 있었지만 양이 너무 적었다. 특이하게도 차돌삼합이라는 메뉴가 있는데, 차돌박이와 조개관자를 같이 구운 다음 차돌박이를 상추쌈처럼 펼처서 관자를 넣고, 명이나물같은걸 넣어 먹는거다. 메뉴가 신기하고 맛있었는데 양이 너무 적었다. 회식 예산을 살짝 초과했는데 다른 팀도 와서 나눠서 내서 살았다.2차로 출장온사람들과 우리쪽 몇몇이 노래방을 갔다..

intellij es lint 끄기, indent 4로 설정되어있는데 2로 적용되는경우.

eslint 때문에 속터져서 꺼버리려고 찾아다니다 적음. intellij eslint disable방법. 아래에서 체크해제해준다. indent 4로 설정되어있는데 에디터에서 계속 2로 적용되어있는경우.https://intellij-support.jetbrains.com/hc/en-us/community/posts/206332339-Tabs-and-Indents-are-2-spaces-despite-setting-at-4-spaces prefrence에서 아래처럼 Detect and use existing file indents for editing와 Enable EditorConfig support를 체크해제해준다.

2018-09-03 mon, 10:25 am.

주말엔 정말 잘 놀았다. 토요일 아침엔 산타크루즈에 있는 natural bridge state beach 에 갔었다. 오후에 여기 사시는 한국분에게 집 초대를 받은지라(!) 오전에 간단히 갈곳을 찾았는데 여기가 괜찮을것같아서 여기 왔었다. bridge라는 이름이 붙을 만하게 큰 바위가 바다 한가운데 있었고, 사람들이 해수욕을 즐기고 있는게 나같이 앉아서 멍때리기 위한 사람들도 좋고, 해변을 즐기기 위한 사람들에게도 좋은것 같다. 주차장으로 나오는 길목엔 한국에서처럼 고기굽는사람들이 많아서... 순간적으로 배고파졌었다.공원 내부에 트래킹코스가 있었는데 걸어서 20분정도로 짧아서 트래킹하기에도 좋았던것 같다. 녹색 연못에 흰 학이 살고있었는데 인상깊었다. 집에 다시 돌아와서 시간이 좀 남아서 호텔 뒷편 산책..

2018-08-21 fri, 11:44 am.

역시 느끼는건데 출장은 2주가 딱 적당한것같다. 출장온지 10일?정도 되었는데 이제 살짝 돌아가고 싶은 마음이 들기 시작한다. 아침마다 호텔 본건물에서 아침이 나오는데, 첫날에는 스크램블에그나 달달한 것들을 폭풍흡입했었는데 이제 슬슬 아침도 질려간다. 첫날에 3접시를 먹었다면 이젠 적당한 한접시만 먹어도 충분하다는걸 배가 깨달았다.돌아가고 싶은 마음과 여기 다시오려면 1년은 걸릴텐데 즐길수있을때 더 즐겨라 하는 마음이 싸우고 있다. 버그가 터졌던게 어제쯤 해결되서 편하게 맑은 날씨를 즐기고 있다. 마지막이자 두번째 주말에는 lake tahoe와 샌프란시스코 시내에 가서 케이블카를 타고 자전거 타다가 배까지 타고 돌아오기로 일정을 잡았다. (되게 알차게 잡은듯) 일적으로 버그같은게 다 해결되서 한가해졌는데..

2018-08-27 sun, 11:27 pm.

어제는 드디어 미국출장의 첫 주말이었다. 진짜 저번에 왔을때는 셋다 아무것도 몰라서 어딜 갈지 몰라서 그냥 샌프란시스코 시내 돌아다녔었는데.. 출장 많이온분이랑 오니 확실히 다르다. 내가 운전을 못해서 이분이 다 태워주셨는데 내가 너 운전기사해야돼? 하시면서도 데려갈곳은 다 데리고가주셨다.(츤데레)어제는 몬트레이를 갔었다. 1시간 30분 정도 호텔에서 차를 타고 가니 도착할수 있었는데 몬트레이에서의 러버스 포인트 파크라는 좀 그런 이름의 이상한 공원이 되게 예뻤다. 바다옆이라 갈매기가 돌아다니는데 사람들이 먹이주는게 익숙한지 앉아서 가까이 다가가도 먹이나 달라는 눈빛을 보내며 그냥 앉아 있다. 바위가 많았는데 바위 사이에 청설모?가 많이 살았다. 얘내도 사람들이 익숙해서 너무도 당연하게 과자 하나 달라며..

2018-08-25 fri, 8:43 am.

도착은 3일전에했었는데 바뻤다. 첫날은 오후 4시쯤 샌프란시스코 공항에 왔지만... 시차문제로 하루종일 피곤했다. 피곤해 죽겠는데 렌트카빌리고 호텔 예약한거 확인하는거 등등 하니까 밤이 되었고 그냥 졸려서 자버렸다. 밥해먹기 귀찮아서 나가서 pho#1이라는 베트남 쌀국수집을 가서 닭국물쌀국수? 를 시켜먹었다. 국물이 괜찮은게 술먹고 다음날 해장하기 좋을것같다. 둘째날은 갑자기 제대로 돌아가던 서비스가 잘 안돌아가서 그거 고치느라 바빴다. 한국에서도 좀 여유롭게있어서 이번에도 그러겠구나... 했는데 출장오니까 바빠졌다. 원래 점심시간에 여유롭게 산책도 가고 그랬어야했는데 밥먹고 일만했다. 저녁에는 같이온 분이 거의 스테이크용처럼 생긴 돼지고기 큰거 하나와 김치를 사서 돼지고기김치찜을 해주셨다. 소주랑 같이..

2018-08-18 토요일

진짜 오랫만에 일기를 쓴다. 뭔가 쓸거리가 많았던 초반과는 다르게 딱히 일이 없었다. 입사한지 거의 2년이 다되가면서 일은 익숙해졌고... 맨날 공부를 해야하는데 뭘 해야할지 모르겠다는 말을 한지 거의 1년정도만에 공부할 거리를 찾았다. 요즘 티스토리에 살짝 정리한 flask + vue 조합의 웹 백엔드, 프론트엔드 기본 공부다. 사실 쓸모가 없으면, 일적으로 사용할일이 없으면 기본적으로 공부를 안하게 되는게 사람 심리인지라.... 여태까지 기본적인건 해보고 싶다고 생각했었지만 하지 않았었다. 하지만 팀원이 한분 나가시고, 그분이 만지작거리고있던 vue 프로젝트가 있어서 물려받았다. 애초에 내가 웹프로젝트 하고싶다고 팀장님께 말했던 것도 있고 해서 그래 해봐라 하고 날 주신것 같다. 어떻게 나에게 흥미를..

파이썬 숫자를 3자리씩 끊어서 출력하기.

1000같은 숫자를 1,000처럼 출력해야 하는데 뭔가 format이 있을것같았다. 그래서 간단하게 구글링을 해봤는데... 단순히 format으로 출력하는거 말고 별 이상한 방법들이 다 있었다. 답변들이 흥미로워서 링크를 공유해 봄... https://stackoverflow.com/questions/1823058/how-to-print-number-with-commas-as-thousands-separators 재밌는 답변 두개만 가져와봄.. 가장 복잡하며 가독성 제로의 답변. >>> import itertools >>> s = '-1234567' >>> ','.join(["%s%s%s" % (x[0], x[1] or '', x[2] or '') for x in itertools.izip_longest..

Python/2.7 for fun. 2018.08.13

vue+flask 시작. 남이 만든 bootstrap 페이지 가져다가 쓰기.

기본적인 부트스트랩 연동은 http://qkqhxla1.tistory.com/964 에서 다뤘었다. 그런데... 나처럼 초보들은 저런게 있어도 이쁘게 화면배치를 잘 못한다. http://qkqhxla1.tistory.com/965 에서 아주 기본적인 부트스트랩을 사용해서 로그인 페이지를 만들었었는데, 너무... 그렇다. 디자인을 아무리 못한다고 해도, 기능구현에 초점을 맞췄다고 해도 저건 아니다 싶을정도로 안이쁘다. ..... 그래서 기능구현이 더 급함에도 불구하고 로그인 페이지 디자인 개선에 나섰다. 저렇게 메뉴 따로 폼 따로 있는거말고 로그인 페이지 따로 이렇게 큰 컴포넌트? 단위로 있는 부트스트랩 예시 페이지가 당연히 있을것같아서 동기들한테 정보를 구했고, https://bootsnipp.com/ ..

web/back + front 2018.07.25

vue+flask 시작 로그인 구현 4. vue에서 flask의 값 받아서 관리하기. vuex

바로 전 글에서 flask에는 jwt라는걸 이용해 인증을 한다고 했다. 그리고 파이썬으로 테스트까지 완료하였다. 어떻게 동작하는지 확인하였으니 이젠 vue에서 jwt인증요청을 보내고 access_token을 받아서 저장까지 구현해봤다. 뷰에서는 어떻게 이러한것들을 저장할까. 찾다 발견한게 vuex이다. 아래는 vuex튜토리얼이다. https://vuex.vuejs.org/kr/ 이해가 잘 안가서 5번은 읽어본것 같다. vuex를 기반으로 /mystore안에 store를 만든다. (다른분이 짠걸 가져와서 변형했다..) /mystore/index.js import Vue from 'vue' import Vuex from 'vuex' const LOGIN = 'LOGIN' const LOGIN_SUCCESS ..

web/back + front 2018.07.20

vue+flask 시작 로그인 구현 3. flask jwt authorization

flask 에서는 jwt 인증이란걸 쓴다고 한다. 몇년전에 웹 공부할때 로그인 구현을 session과 쿠키에 넣어서 한적이 있었는데, 왜 굳이 flask에서는 jwt인증이란걸 쓰는지 모르겠다. 찾았더니 좋은 글이 나왔다. https://stackoverflow.com/questions/43452896/authentication-jwt-usage-vs-session JWT doesn't have a benefit over using "sessions" per say. JWTs provide a means of maintaining session state on the client in stead of doing it on the server.What people often mean when asking t..

web/back + front 2018.07.19

mongodb 중복제거한 아이템 갯수 구하기. (aggregate)

몽고디비에서 종종 중복제거된 아이템 갯수가 필요하다. 여러개의 도큐먼트가 있고 각각 name이라는 필드값을 갖고있는데, 각각의 필드값은 a일수도, b일수도, c일수도, ...일수도 있다. 여러개의 도큐먼트가 a라는 이름을 갖고 있을수 있고 또 다른 도큐먼트들은 b라는 이름을 갖고있을수 있다. 이 경우 중복되지 않은 name필드의 갯수를 구하고 싶을때 distinct라는걸 쓸수 있다. https://docs.mongodb.com/manual/reference/method/db.collection.distinct/ { "_id": 1, "dept": "A", "item": { "sku": "111", "color": "red" }, "sizes": [ "S", "M" ] } { "_id": 2, "dept"..

data engineering 2018.07.16

vue+flask 시작 로그인 구현 2.

앞의 Login.vue를 다시 보자. 일단 폼의 데이터를 뷰로 가져와야하는데 방법이 많을것같은데 생각나는게 v-model로 데이터를 동기화해서 가져오는 방법이 있어서 이렇게 했다.(이게 뷰에 적합한(?) 방법인지는 모르겠음)그리고 폼 -> 뷰로 가져온 데이터를 다시 ajax로 서버로 쏴줘야 한다. 책에 axios라는 vue ajax 가 있는데 구글링해가며 사용했다. 로그인은 uri /api/login로 구현하기로 마음먹었다. 쿠팡 Ldap id, pw를 입력하세요. Name Login credentials라는걸 선언해주고 폼과 credentials를 v-model로 바뀔때마다 서로 알아채도록 설정하고 버튼 클릭에 v-on:click='login'으로 로그인 함수를 호출하도록 하였다.(지금보니까 @clic..

web/back + front 2018.07.13

vue+flask 시작 로그인 구현 1.

로그인을 구현해보았다. 앞에서 vue와 flask의 연동을 다뤘지만 실질적인 데이터 이동은 없는 말 그대로 그냥 기본적인 vue 프론트를 flask에서 실행시키는 정도여서.. 이번엔 데이터가 왔다갔다하는 로그인 폼을 구현해보기로 했다. 혹시모르니까 파일구조 한번 캡쳐... 첫번째로 로그인을 구현할 뷰 페이지로 /src/components아래에 Login.vue를 만들었다. 로그인 페이지로 이쁘게 만들어보려다가 욕심이 너무 과하다 생각하여 그냥 기능만 되는 페이지를 만들기로 하였다. 로그인 체크는 회사의 ldap으로 할거기에 placeholder에 ldap 관련 문구를 넣었다. 폼은 바로 이전 글의 bootstrap-vue에서 가져왔다. https://bootstrap-vue.js.org/docs/comp..

web/back + front 2018.07.13

vue+flask 시작. vue에서 bootstrap 사용하기.

https://alligator.io/vuejs/using-bootstrap4/ 를 참조해서 만들었다. 적용은 이 앞의글의 webpack 으로 만든 그 프로젝트에 계속 이어서 한다. 1. npm install bootstrap-vue bootstrap --save 명령어로 bootstrap-vue를 설치한다. 2. 나의 App의 main file.즉 /src/main.js에 bootstrap plugin을 추가해준다. 아래와 같다. import Vue from 'vue' import App from './App' import router from './router' import BootstrapVue from 'bootstrap-vue/dist/bootstrap-vue.esm' import 'bootst..

web/back + front 2018.07.11

vue+flask 시작. 기본적인 컴포넌트 제작.

뷰를 공부하면서 if for 이런 기본적인 문법들은 그냥 휘리릭 보고 지나갔는데 컴포넌트 만드는 부분에서 막혔다. 일반적인 컴포넌트 만드는 방법이야 튜토리얼 페이지에 잘 나와있는데 이것보다 웹펙 구조를 파악해서 컴포넌트만 모아두는 곳에 가서 짜고 다른 곳에서는 그것을 가져오는... 그러니까 디자인패턴 처럼 이런 방법론을 바탕에 깔고 프로그래밍을 시작하는게 더 맞는것 같아서,(그리고 참고할 만한 레퍼런스가 있어서) 한번 만들어봤다. 1. https://kr.vuejs.org/v2/guide/single-file-components.html 를 참조해서 MyComponent.vue파일을 만들었다. 이것을 src/components안에다가 넣었다. 컴포넌트를 만들때, {{greeting}}을 태그로 감싸줬는데..

web/back + front 2018.07.10

vue+flask 시작. python flask와 연동.

http://qkqhxla1.tistory.com/961에서 언급했듯이 목적은 flask를 백앤드로 하고, vue를 프론트로 돌리는거다. 파이썬 2버전이고, flask설치를 하고 app.py를 프로젝트의 가장 위에 만들었다.(사실 어디에만들어야할지 잘몰라서 여기에 만듬.) 그리고 우리팀의 위키와 여러가지 삽질해서 flask코드를 만들었다. # -*- coding: utf-8 -*- from flask import Flask import os class MyFlask(Flask): jinja_options = Flask.jinja_options.copy() jinja_options.update(dict( block_start_string='{%', block_end_string='%}', variable_..

web/back + front 2018.07.09