3월, 2020의 게시물 표시

2020년 3월 25일 보안정보 스크래핑

2020년 3월 25일 보안정보 스크래핑 3월 25일 보안정보 스크래핑 ==================================================================== + 주요 취약점 - 메일전송 프로토콜을 이용한 원격 명령어 실행 주의 권고 외 1건 1. 메일전송 프로토콜을 이용한 원격 명령어 실행 주의 권고 최근 OpenSMTPD* 취약점이 발견되는 등 메일전송 프로토콜에서 원격 명령어 실행이 가능하여 주의를 권고함 공격자는 취약점을 악용하여 피해를 발생시킬 수 있으므로, 해결방안을 참고하여 조치 필요 - https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35302 2. Django 제품 SQL Injection 취약점 보안 업데이트 권고 최근 Django*에서 SQL Injection취약점(CVE-2020-9402)을 악용할 수 있는 개념증명코드(Proof of concept, PoC)가 인터넷상에 공개되어 사용자의 보안 업데이트 필요 - https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35301 ==================================================================== + 취약점 - Apple Safari 취약점 1. Apple Safari 취약점 Apple Safari security bypass CVE-2020-3885 - https://exchange.xforce.ibmcloud.com/vulnerabilities/178339 Apple Safari security bypass CVE-2020-3887 - https://exchange.xforce.ibmcloud.com/vulnerabilities/178338 Apple Safari inform

2020년 3월 25일 보안정보 스크래핑

2020년 3월 25일 보안정보 스크래핑 3월 25일 보안정보 스크래핑 ==================================================================== + 주요 취약점 - 메일전송 프로토콜을 이용한 원격 명령어 실행 주의 권고 외 1건 1. 메일전송 프로토콜을 이용한 원격 명령어 실행 주의 권고 최근 OpenSMTPD* 취약점이 발견되는 등 메일전송 프로토콜에서 원격 명령어 실행이 가능하여 주의를 권고함 공격자는 취약점을 악용하여 피해를 발생시킬 수 있으므로, 해결방안을 참고하여 조치 필요 - https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35302 2. Django 제품 SQL Injection 취약점 보안 업데이트 권고 최근 Django*에서 SQL Injection취약점(CVE-2020-9402)을 악용할 수 있는 개념증명코드(Proof of concept, PoC)가 인터넷상에 공개되어 사용자의 보안 업데이트 필요 - https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=35301 ==================================================================== + 취약점 - Apple Safari 취약점 1. Apple Safari 취약점 Apple Safari security bypass CVE-2020-3885 - https://exchange.xforce.ibmcloud.com/vulnerabilities/178339 Apple Safari security bypass CVE-2020-3887 - https://exchange.xforce.ibmcloud.com/vulnerabilities/178338 Apple Safari inform

Django Rest Api 참고

Django Rest Api 참고 - 테스트 코드 파일 업로드 (post) rest_frameworkdjango-rest-framework 설치 pip3 install djangorestframework urls.py from django.urls import path from . import views app_name = 'test' urlpatterns = [ path('chp/', views.chp, name='chp/'), path('chp_up', views.chp_up, name='chp_up'), ] models.py from django.db import models from django.utils import timezone class Project(models.Model): idx = models.AutoField(primary_key=True, verbose_name='idx') p_id = models.CharField(max_length=30, verbose_name='프로젝트 아이디', help_text='프로젝트 아이디') ... p_reg_date = models.DateTimeField(auto_now_add=True, verbose_name='등록일', help_text='등록일') p_edit_date = models.DateTimeField(auto_now=True, verbose_name='수정일', help_text='수정일') class Meta: db_table = '테이블 이름' verbose_name='프로젝트' verbose_name_plural = '프로젝트' view.py import os, json, datetime from inc.models import Pro

[aws] deploy Angular app with s3 | AWS S3로 angular 앱 배포하기

[aws] deploy Angular app with s3 | AWS S3로 angular 앱 배포하기 angular project를 빌드한다 ng build --prod 그러면 dist 폴더가 생긴다. dist 폴더 안에 있는 아이들을 사용한다. 아마존 s3 콘솔로 이동 https://s3.console.aws.amazon.com/s3/home?region=ap-northeast-2 새로운 Bucket 을 생성한다(Create bucket). 버킷 이름은 고유하게 짓는다. 버킷 생성후 properties tab > static website hosting을 클릭한다. index document는 index.html은 쓴다. properties > static website hosting Permission tab 에서 권한을 수정한다. overview tab 에서 필요한 파일 업로드 dist 폴더 안에 있는 파일들을 업로드 한다. bucket policy 설정 properties > static website hosting > endpoint 클릭하면 서버에 올라간 앱을 확인 할 수 있다 일단 angular 앱을 올리긴 했는데.. 이걸로는 아무것도 할 수 었다. django로 만든 서버를 올리고 database를 연결하고 그것을 지금 이 angular 앱과 연결해야한다. 아직 어떻게 해야 할지는 모르겠음 계속 삽질 중. 그래도 angular app 하나 올라갔는데 재밌네 from http://paigeblog.tistory.com/18 by ccl(A) rewrite - 2020-03-25 16:20:13

django query 기초 3

django query 기초 3 1. select_related and prefetch_related 모델 정의 class Company(models.Model): name = models.CharField(max_length=30) phone_num = models.CharField(max_length=30) floor = models.PositiveIntegerField(default=1) def __str__(self): return "{} {} {}".format(self.name, self.phone_num, self.floor) class Employee(models.Model): name = models.CharField(max_length=30) age = models.PositiveIntegerField(default=1) salary = models.PositiveIntegerField(default=1) company = models.OneToOneField(Company, on_delete=models.CASCADE, default=None) def __str__(self): return "{} {} {} {}".format(self.name, self.age, self.salary, self.company) 데이터 입력 c = Company.objects.create(name="NAVER", phone_num="000-0000-0000", floor="100") Employee.objects.create(name="노예1", age=30, salary=1000, company=c) c = Company.objects.create(name="카카오", phone_num="111-1111-11111", floor="200") Employee.objects.create

Elasticsearch-dsl, Django 삽질 복기(2)

Elasticsearch-dsl, Django 삽질 복기(2) 분석하려는 로그 메시지에 포함된 json 형식의 데이터를 사용하려는 과정에서 두 가지 문제에 부딪혔다. 1. Search API 에서 json 키값을 field로 이용하는 방법. 2. template 단에서 json 키값별로 핸들링하는 방법. 로그 포맷에 대한 표준이 없다보니 로그 데이터의 패턴이 다양한데 그 중 간단한 형태 하나를 예로 보자. 2020-02-03 13:39:14 [INFO ] [OPERATION] - {"logType":"[REMOVE JOB]","mchnId":"T985","mchnTp":"YT","type":"DELETE","jobKey":"MEDU7911824120200203121004"} 이전 글에 적은 적 있지만 Logstash 설정에서 grok 을 이용해서 json 형식의 데이터가 포함되어 있을 경우에는 이를 따로 분리했고 이걸 아래 같은 식으로 ES 매핑 처리했었다. "mappings" : { "dynamic": false, "properties" : { "@timestamp" : { "type" : "date" }, ... "loglevel" : { "type" : "keyword" }, "message" : { "type" : "text", "fields" : { "keyword" : { "type" : "keyword", "ignore_above" : 256 } }

엑스브레인(XBrain) 기업 정보

엑스브레인(XBrain) 기업 정보 안녕하세요, XBRAIN(http://www.xbrain.team) 입니다. 첫 번째는 ML 기술이 실현할 수 있는 가치에 대한 확신과 성장에 대한 열망입니다. 기술 기반 글로벌 회사인 Uber, Facebook, Google, Amazon 등은 이미 ML 을 적용한 서비스 및 제품을 수십억의 사용자들에게 제공 중에 있습니다. 앞으로는 IT 기술 기반의 회사 뿐 만이 아닌 더 폭넓은, 그리고 많은 조직에서 ML 을 활용한 서비스를 제공하게 될 것이며, 그로인해 빠르고, 확장성을 가지며, 자동화되어 쉽게 활용 가능한 ML System 을 필요로 하게 될 것입니다. 엑스브레인은 여러 분야의 조직이 본질적인 데이터 활용에 대한 논의와 관리에만 집중하여, 더욱 많은 가치를 만들어낼 수 있도록 도와주는 소프트웨어 회사입니다. 다양한 분야에서 ML 의 가치를 실현하고, 경험할 수 있도록 해주는 소프트웨어를 만드는 회사로 성장하는 상상은 강한 동기부여가 됩니다. 두 번째는 끊임없는 기술적인 Challenge 입니다. ML System 에 관련된 기술 연구는 빠른 속도로 이루어지고 있으며, 전세계의 자본과 뛰어난 인력이 ML 기술 발전의 속도를 가속화하기 위해 집중 투자되고 있는 상황입니다. 이러한 거대한 산업 패러다임과 기술발전에 직접적으로 참여하고 있다는 점이 우리의 호기심과 열정을 자극합니다. 세 번째는 다양한 배경을 가진 최고의 인재들이 함께하는 조직 문화를 만들고 싶은 열망입니다. 엑스브레인은 지속적인 조직의 성장을 위해 다양한 배경을 가진 최고의 인재들이 함께 어울릴 수 있는 조직을 만들어나가고 있습니다. 또한 다양한 분야의 데이터에 대한 보다 심도깊은 이해를 위해 폭넓은 분야(Psychology, Cognitive Science, Gastronomy, Neuroscience, Computer Science 등) 전문가들과 교류하고 있으며, 사내 세미나등을 통해 내부 조직의 지속적인 성장을 도모하고 있습니

django 설치 방법

django 설치 방법 Node.js의 npm PHP의 Composer가 있다면 Python에는 pipenv가 있습니다. 파이썬에서 패키지관리를 할때 사용하는 것에는 pip와 virtualenv가 있다. 하지만 이 둘은 각각 장단점을 가지고 있다. pip는 여러가지 패키지가 있지만 파이썬의 패키지 버전의 변화에 따라 프로잭트 환경이 변할 수 있다. virtualenv는 파이썬 버전과 라이브러리의 공간을 나누어 pip단점을 보완할 수 있다. 하지만 여러개의 requirements 파일들을사용해야 from http://h0n9670.tistory.com/46 by ccl(A) rewrite - 2020-03-25 01:20:16

[django] Manager isn't accessible via ~~ instances

[django] Manager isn't accessible via ~~ instances 프로젝트를 진행하며 해당 오류가 났다. * AttributeError: Manager isn't accessible via Post instances view단에서 모델의 id값을 가지고 삭제를 할 때 발생한 에러이다. * post = Post().objects.get(id = post_id) 이런 식으로 가져왔는데 objects를 사용할 때에는 class레벨에서 사용 가능한 거라고 한다. instances에선 불가능하다 해결방법 * post = get_object_or_404(Post, id=post_id) get_object_or_404를 이용해 해결 완료 ^o^ 출처 및 참고 : https://m.blog.naver.com/PostView.nhn?blogId=exam2&logNo;=176866620&proxyReferer;=https%3A%2F%2Fwww.google.com%2F from http://integer-ji.tistory.com/127 by ccl(A) rewrite - 2020-03-25 00:54:14

스프링 프레임워크(Spring Framework)란?

스프링 프레임워크(Spring Framework)란? "코드로 배우느 스프링 웹 프로젝트"책을 개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다. '스프링 프레임워크'가 무엇인지 말 할 수 있고, 해당 프레임워크의 특징 및 장단점을 설명할 수 잇는 것을 목표로합니다. 1. 프레임워크란? 2. 스프링 프레임워크 "뼈대나 근간을 이루는 코드들의 묶음" Spring(Java의 웹 프레임워크), Django(Python의 웹 프레임워크), Flask(Python의 마이크로 웹 프레임워크), Ruby on rails(Ruby의 웹 프레임워크), .NET Framework, Node.js(Express.js 프레임워크) 등등. 프레임워 워크 종류 : 3. 개발 시간을 단축할 수 있다. 2. 일정한 품질이 보장된 결과물을 얻을 수 있다. 1. 실력이 부족한 개발자라 허다러도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다. 프레임워크를 사용하면 크게 다음 3가지의 장점 이 있습니다. 프레임워크 이용 한다는 의미 : 프로그램의 기본 흐름이나 구조를 정하고, 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발 한다. => 이러한 상황을 극복하기 위한 코드의 결과물이 '프레임워크' 입니다. 개발자는 각 개개인의 능력차이가 크고, 따라서 개발자 구성에 따라서 프로젝트의 결과 차이가 큽니다. 2. 스프링 프레임워크(Spring Framework) 자바 플랫폼을 위한 오픈 소스 애플리케이션 스프링의 다른 프레임워크와 가장 큰 차이점은 다른 프레임워크들의 포용 입니다. 이는 다시말해 기본 뼈대를 흔들지 않고, 여러 종류의 프레임워크를 혼용해서 사용할 수 있다는 점입니다. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크 이다. 여러 프레임워크들 중 자바(JAV

Elasticsearch-dsl 삽질 복기(1)

Elasticsearch-dsl 삽질 복기(1) 로그 분석 기능 개발 중. 향후 통합 로그 관리 기능을 염두에 두고 Elastic Stack 으로 밑그림을 그리고 시작했는데 당장의 요건은 장애 발생 후 로그 파일을 토대로 원인 추적, 분석이 핵심이다보니 편리한 하향식 검색 기능이 중요한 상황이다. Kibana 만으로 화면 구성하는 것은 한계가 있다고 판단하고 Elastic Search(이하 ES) API 이용한 화면 개발 쪽으로 가닥 잡고 레퍼런스 검색. ES 잘 모르는데, Python 웹 프로그램 개발 안해봤는데, Vue.js 써본 적 없는데 ... 그래도 이 글이 제일 깔끔해보이기에 따라 가보기로 했다. 우선 글 대로 따라하기. 안 된다. documnets.py 의 @talks.doc_type 부분에서 문제 발생했는데 ES 7.* 대에서는 Index 에서 doc_type 속성이 deprecated 된 탓. 맞는지는 모르겠지만 @registry.register_document 로 바꾸고 나니 동작한다. 따라하기로 짠 djanog 앱 소스 복사해서 우리 데이터에 맞추어 model, search, template 수정. 안 된다. 당연하게도. 에러 추적했던거 기록해두지 않아 정확히는 기억나지 않지만 복기해보자면 대충 id 의 type 문제 때문에 search.py 의 TalkDocument.search().query(query) 에서 문제 생겼던 것 같다. 일단 어찌되나 보자 싶어 과격하게 elasticsearch-dsl 소스 까서 id 타입 체크하는 부분 막아봤다. 에러는 안 나는데 결과값이 아무 것도 안나온다. 에러 조차 안나니 추적이 더 안된다 ㅜㅠ Logstash 에서 데이터 파싱할 떄 ID 필드 추가하고 int 타입의 일련값을 생성해줘봤다. 안된다 ㅜㅠ. 이 후 생쇼하면서 하루 날린거는 패스. 처음부터 찬찬히 다시 생각해보았다. 각 기술 요소 지식이 부족하니 추적은 어려웠지만 원인은 간단했다. 레퍼런스의

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(13)

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(13) 1.Login 및 Logout 사용 1). Login사용 Django는 기본적으로 로그인 폼을 제공해준다. 따라서 다른 웹프레임워크에서 힘들게 로그인 셋팅을 하는 것을 간단하게 나타내주기 때문에 편리하게 로그인 화면을 작업할수 있게 되었다. 먼저 settings.py에서 아래와 같이 셋팅한다. LOGIN_URL과 SESSION_COOKIE_AGE 및 SESSION_SAVE_EVERY_REQUEST를 셋팅한다. 해당 LOGIN_URL은 login하는 폴더를 말하고 SESSION_COOKIE_AGE는 세션타임아웃을 말한다. SESSION_SAVE_EVERY_REQUEST는 세션을 사용할껀가 묻는 말인데 True로 셋팅하면 세션을 사용할수 있다. 그림1. settings.py 설정 다음으로 login 및 logout에 대하여 urls.py에 설정한다. 보면은 login URL파라미터 접근시 views의 user_login을 호출하고 logout은 logout_view를 호출한다. 그림2. urls.py설정 이제 views.py로 돌아온다. views.py는 아래 그림처럼 authenticate 모듈에 login 및 logout 클래스를 불러온다. 그리고 login_required를 사용하는데 login_required는 Django에서 각 class에 접근사용시 Login을 요청할수 있다. 따라서 로그인이 되어 있지 않은 URL로 접근되지 않게 설정하는 메소드 이다. 그림3. views.py Login 모듈 추가 이제 views.py에 user_login화면을 추가시킨다. 해당 user_login은 post형식으로 받고 username 및 password를 post를 받아서 변수에 저장한다. 이후 user라는 변수에 username 및 password내용을 저장하고 user내용이 있을시 login함수를 사용하여 로그인을 한다. 이때 정상으로

피플펀드(PEOPLEFUND) 채용 정보: 피플펀드의 평균연령을 낮춰주실...

피플펀드(PEOPLEFUND) 채용 정보: 피플펀드의 평균연령을 낮춰주실... 마케팅팀 인턴 디자이너로 오시게 되면 이런일을 하게 됩니다.1. 온라인 광고 및 홍보 컨텐츠를 함께 기획하고 마케팅팀 디자이너분의 제작 서포트2. 페이스북 컨텐츠를 함께 기획하고 제작 서포트3. 마케팅 회의 중 젊고 새로운 시각으로 아이디어 내기4. 브랜드의 아이덴티티가 담긴 브로셔 함께 제작하기5. 디자이너분들과 아이디어를 시각화 하기 자격요건 - 현재 4학기 이상 재학중이거나 졸업예정자 - 기졸업자 가능 - Adobe 디자인 툴 사용가능 자 (포토샵, 일러스트레이터 등) 우대사항 - 마케팅 관련 업무 관심 및 경험자 - 주변 사람들이 나를 볼 때 "너 진짜 아이디어 뱅크다"라고 한 얘기를 들어보신 분 - 디자인을 하실 때 "1픽셀의 미학"을 인지하고 계시는 분 - 다루는 디자인툴은 많으면 많을 수록 "다다익선" 복지 - 대한민국 금융혁신의 역사를 함께할 수 있는 기회 - 개발, 비즈니스, 금융, 투자, 전략 등의 전문가와 매일같이 부딪히며 성장할 수 있는 기회 - 강남 한복판에 실리콘벨리를 재현한 듯한 멋지고 아늑한 사무실에서 근무 (역삼역에서 지하로 바로 연결) - 점심식대와 저녁식대, 커피, 간식 무한정 제공 - 근무시간 중 아무때나 자유롭게 가벼운 음주 가능 (단 주사는 곤란함) - 훌륭한 스타플레이어들과 원할 때 스타를 할 수 있음 (브루드워만 가능) - 근래에는 오버워치 경쟁전 함께할 파티원 찾고 있음 (겐지충 사절) 채용절차 1) 공감프로필 (피플펀드 지원사유 포함) 2) 서류 합격시 실무자와 면접 진행 더 많은 내용은 더 많은 내용은 더팀스 에서 확인하세요! from http://theteams.tistory.com/757 by ccl(A) rewrite - 2020-03-24 09:20:12

Flask, django - Python web framework

Flask, django - Python web framework 시작하기 | Django 문서 | Django Django The web framework for perfectionists with deadlines. Overview Download Documentation News Community Code Issues About ♥ Donate docs.djangoproject.com from http://hiddentrap.tistory.com/153 by ccl(A) rewrite - 2020-03-23 23:54:11

[Django] 나만의 사이트 만들기 - 글쓰기

[Django] 나만의 사이트 만들기 - 글쓰기 # myApp/views.py from django.shortcuts import render, redirect, get_object_or_404, reverse from django.contrib.auth.models import User from django.utils import timezone from .models import Post def index(request): posts = Post.objects.order_by('-id') return render(request, 'index.html', {'posts':posts}) def post(request): if request.method == 'POST': post = Post() post.main_text = request.POST['main_text'] post.create_user = User.objects.get(username = request.user.get_username()) post.create_date = timezone.datetime.now() post.save() return redirect(reverse('index')) return render(request, 'post.html') # myApp/urls.py from django.urls import path from . import views urlpatterns = [ path('index/', views.index, name="index"), path('post/', views.post, name="post"), ] # myApp/models.py from django.db import models from django.utils import timezone from django.contri

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(12)

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(12) 1.Dashboard 사용 1). Count사용 sbadmin은 아래 그림처럼 그래프 및 카운터 등을 제공해준다. 그림1. SBAdmin Dashboard count는 django ORM 로 카운트를 사용하고 그래프는 ajax를 chart.js와 연결하여 사용해야 한다. 위의 26 new messages 한부분을 전체 datatables의 카운트로 바꿀려고 한다. 전체 count를 위해선 views.py에서 dashboard의 함수에 아래 내용을 추가해준다. count는 django_sb_admin.objects.count()를 사용하여 진행한다. 그림2. count ORM 위의 내용은 django_sb_admin의 전체 카운트를 세어 sbadmincount변수에 저장한다는 내용이다. 그리고 render를 사용하여 sbadmincount를 sb_admin_dashboard.html 템플릿에 전송한다. 그림3. sb_admin_dashboard count 내용 추가 sb_admin_dashboard.html 에 card 부분이 있다. 해당 부분에 New Message 부분 또는 New Ticket 부분이 있는지 확인하여 어떤 카드인지 확인한다. 현재 여기선 new messages 부분을 수정한다. 위의 그림3을 보면은 fa-class 부분이 있다.(맨윗부분) 이부분에 fa-comments가 있는데 이건 해당 new messages의 파랑색 부분이 아이콘을 의미한다. 아래 fa-shopping-cart 및 fa-life-ring 부분의 div 클래스는 삭제한다. 만약 아이콘을 바꾸고 싶다면 fa-comments 을 구글에 검색하여 다른 아이콘 쓸만한게 있는지 검색하고 사용하면 된다. 위의 그림3에서 div 뒤의 sbadmincount 즉 위의 그림2에서 사용한 orm 변수 sbadmincount를 나타내어준다. 그후 a href를

REST Api 관련 참고 링크

REST Api 관련 참고 링크 현재위치 :: HOME BLOG CATEGORY SEARCH ARCHIVE TAGS MEDIA LOCATION GUESTBOOK from http://devlink.tistory.com/406 by ccl(A) rewrite - 2020-03-23 19:20:15

구글 로그인 쉽게 하는법

구글 로그인 쉽게 하는법 구글 로그인 쉽게 하는법 ​구글 로그인 쉽게 하는법 구글 이메일을 확인해서 Reset password를 클릭한다 그 후에도 안된다면​그래서 뭐 한번 읽었더니"보안 수준이 낮거나 지원되지 않는 확장 프로그램이 추가된 브라우저"아마 며칠 전에 추가한 확장 프로그램이 문제가 있을 거란 생각이 들었다 ​ 호텔스닷컴에 구글 계정으로 로그인해서 예약을 했는데, 앱으로 확인을 해보려니 앱에는 '구글 계정으로 로그인'이 없다 ​​ signInSuccessUrl: "/", 아래에 있는 Show password를 체크해서 비밀번호를 직접 보면서 재설정하면 실수를 줄일 수 있다 그렇게 잘 사용하던 중에 노트북으로 해당 서비스 사이트에 접속을 하니 알 수 없는 오류메시지가 뜨며 접속이 안되어 고심하던 찰나 해결책은 찾아 여러분께도 알려드리려 해요 ^^​ (토이 프로젝트이기 때문에 의미없는 url을 지정했지만, 실무에서는 반드시 추가해야 합니다 email = (String)userInfo.get("email"); ​ 다른계정을 추가해보겠습니다 ​카페24 쇼핑몰 구매자는 회원가입을 보통하게 되는데 아이디 비번등 별도로 생성을 해야 되기에 번거롭지요~그래서 요즘은 대부분의 구매자분들께서 사용하고 있는 네이버 아이디, 카카오톡 아이디를, 페이스북 아이디, 구글 아이디 등 기존의 아이디를 사용하여 로그인하는 #간편로그인 을 설치하여 사용하는게 편리합니다 ​ 마지막은 구글 콘솔로 가셔서 구글 로그인을 사용하겠다고 해주시면됩니다 물론 프로젝트 지원 이메일은 넣으셔야 합니다 ​그렇게 해서 하시면 ​ ​ 안녕하세요 북스토리 입니다 // TODO: handle exception blog.naver.com storageBucket: "", 혹시나 다른 곳에 로그인 되어 있는 아이디로 삭제하고 그랬는데도 반복되서 떠버리는 창.. 그래서 다른 곳을 통해서 해결법을 찾아보았더니 의외로 쉽게

운영 서버 환경 구성

운영 서버 환경 구성 인스턴스 생성 ssh 보안 그룹 생성, .pem 키 페어 다운, HTTP, HTTPS 접근 가능하게 보안 그룹 추가, 인스턴스의 보안 그룹 변경에서 ssh, http, https 지정 서버 환경 구성 생성된 인스턴스에 ssh로 접속해서 서비스하려는 코드가 실행될 수 있게 환경 구성. ssh로 서버 접속 .pem 키 페어가 있는 곳으로 이동 후 ssh -i {YOUR-KEY-PAIR.pem} ec2-user@{DNS ADDRESS} // ec2-user는 인스턴스 OS에 따라 ubuntu 등 바뀔 수 있다. node.js, django 등 설치 및 환경 설정 코드 배포 시스템 패키지 설치, 디렉토리 생성, git clone, 패키지 매니지로 패키지 설치 from http://oneshottenkill.tistory.com/628 by ccl(A) rewrite - 2020-03-22 20:20:13

쿠버네티스(kubernetes) example - Python Django 웹 페이지 배포하기

쿠버네티스(kubernetes) example - Python Django 웹 페이지 배포하기 꿈 많은 사람의 이야기 이수진의 블로그 이수진의 블로그 2020. 3. 22. 19:53 포스팅 개요 이번 포스팅은 쿠버네티스(kubernetes)를 활용하는 방법인 예시(example)를 보여주는 글입니다. 특히, 쿠버네티스(kubernetes)를 활용하여 Python Django를 deploy(배포)하는 example입니다. 본 글은 아래와 같은 글들을 참고하여 작성하였습니다. 쿠버네티스에 대해서 굉장히 자세히 설명된 포스팅 https://subicura.com/2019/05/19/kubernetes-basic-1.html 포스팅 본문 쿠버네티스(kubernetes)에 대한 설명은 처음에 개요에서 소개한 맨 처음 블로그에서 굉장히 자세히 설명되어 있습니다. 쿠버네티스에 대해 자세히 궁금하시다면 해당 글을 꼭 참고하시길 바랍니다. 본 글에서는 기본적인 개념만 정리하고 넘어갈게요 쿠버네티스( kubernetes) 개요 쿠버네티스는 컨테이너를 쉽고 빠르게 배포/확장하고 관리를 자동화해주는 오픈소스 플랫폼이다 K8S로 줄여서 부르기도 한다 컨테이너 오케스트레이션(Container Orchestraion) 기능을 제공한다 컨테이너들 사이의 배포, 접속 등을 관리 서비스간 연결을 쉽게 제공(다수의 서버를 하나로 묶거 적당한 서버를 선택해 APP을 배포하거나 등) 하나의 클러스터를 논리적으로 구분하여 사용 가능 (Namespace) Pod 쿠버네티스에서 배포할 수 있는 가장 작은 단위 한 개 이상의 컨테이너와 스토리지 등의 속성을 가짐 Pod에 속한 컨테이너는 스토리지와 네트워크를 공유 : 서로 localhost로 접근할 수 있음 ReplicaSet Pod를 여러 개 복제하여 관리하는 오브젝트 master-node 구조 master 전체 클러스터 관리 API Server, etcd 등을 가지고 있음 node 컨

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(11)

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(11) 1.Modal로 datatable 내용 연결하기 1). modal 사용하기 modal은 일종의 팝업창이다. bootstrap을 사용할 경우 modal을 사용자에게 편리하게 사용할수 있도록 제공해주고 있다. 우리는 저번 데이터들을 datatable로 불러올수 있었는데 이 datatable을 클릭시 헥사값을 보여줄수 있도록 지정하도록 하겠다. 일단 modal 동작과정은 다음과 같다. 그림1. Modal동작과정 먼저 datatable의 row를 클릭하면은 자바스크립트가 실행되고 이 자바스크립트는 모달윈도우를 데이터를 전송시키는 역활을 한다.그후 모달 윈도우를 팝업형식으로 띄워주고 헥사값을 보여주게 된다. 저번 datatable의 for문을 다시 보면은 그리고 data는 modal로 넘겨주며 data-fhex의 값에 파일해쉬값도 같이 넘겨준다. 그림2.modal toggle 그림2. 모달 스크립트 모달은 위와 같이 modal_click(id)로 들어올씨 #myModal 의 ID를 가진 모달을 실행시키며 이때 파일해쉬값을 message-text라는 modal template에 변환시켜준다. modal 템플릿을 table 밑에다가 아래 코드를 넣어보자. div로 modal을 만들며 id는 myModal로 설정한다. 그리고 을 하나 만드는데 그안에 textarea를 만들고 id를 message_text라고 지어서 데이터를 들어올수가 설정한다. 그림3. modal template 위와 같이 저장후 브라우저의 데이터를 클릭하면 아래 그림처럼 모달창이 나오는 것을 확인할수 있다. 그림4. modal창 확인 모달은 데이터를 스크립트로 받고 html으로 div 변환하여 진행하기 때문에 다른 여러가지 특이사항을 모달로 띄워줄수 있다.기존 게시판을 확인하는 것보다 디자인도 깔끔하고 보기에도 더 좋게 보이게 된다. 다음에는 DashBoa

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(10)

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(10) 1.데이터 삽입 1). yara 설치 및 룰 생성 다음과 같이 yara를 설치한다. [명령어] pip3 install yara-python 설치는 pip말고 github에서 직접 받는 방법이 있는데 현재 나의 시스템에서는 pip로 설치시 tag 및 기타 사항들이 동작하지 않는 이슈가 있었다. 만약 github에서 설치 할려면 아래에서 설치 진행하도록 한다. [명령어] git clone --recursive https://github.com/VirusTotal/yara-python cd yara-python python3 setup.py build sudo python3 setup.py install 설치후 python 실행시 아래 import yara가 동작하는지 확인한다. 그림1. yara python 실행. 되면은 룰을 다운로드 받는다. 룰은 아래 사이트에서 다운로드 받는다. https://github.com/Yara-Rules/rules 위의 사이트에서 룰을 다운로드 받은후 해당 시스템에 해당 파일을 업로드 한다. 업로드 후 파일을 해당 시스템의 적당한 위치에 폴더를 만들어 압축을 해제한다. 룰은 malware.yar trojan.yar callback.yar 세개로 나뉘어서 룰을 배정하였다. 그림2. yara위치 및 룰생성 yara에 대한 파이선 모듈을 하나 만든다(이름:yaraS.py) 다음은 아래 그림처럼 yara 룰을 불러오고 저번 업로드 한 파일을 불러와서 야라를 실행시키는 모듈이다.) 그림3. yaraS.py 생성1 그림4. yaraS.py 생성2 YaraSearch함수로 fileName을 불러온다음, yara.compile(filepath)로 룰을 불러온다음. rules에 룰들을 저장한다. fileName을 절대경로로 만들어서 test23에 저장한다. 그후 rules에서 malware/tr

[django 번외] 회원가입 기능 만들기

[django 번외] 회원가입 기능 만들기 [django] python django 게시판 만들기 - 회원가입 기능 만들기 간단한 회원가입 기능을 만들어 봅니다. -----------------------------------------------------------------------------------------------------------------------------------vscode 설치하기 : https://integer-ji.tistory.com/65 python 설치하기 : https://integer-ji.tistory.com/64 git 설치하기 : https://integer-ji.tistory.com/66 vscode 설정하기 : https://integer-ji.tistory.com/81 hello world 띄우기 : https://integer-ji.tistory.com/82 git 초기 설정 : https://integer-ji.tistory.com/83 page 이동 : https://integer-ji.tistory.com/84 word count 실습 ( 1 ) : https://integer-ji.tistory.com/85 word count 실습 ( 2 ) : https://integer-ji.tistory.com/86 python django 게시판 만들기 ( 1 ) : https://integer-ji.tistory.com/89 python django 게시판 만들기 ( 2 ) : https://integer-ji.tistory.com/90 python django 게시판 만들기 ( 3 ) : https://integer-ji.tistory.com/91 python django 게시판 만들기 ( 4 ) : https://integer-ji.tistory.com/93 python django 게시판 만들기 ( 5 ) : https://integer-ji

Django 튜토리얼

Django 튜토리얼 설치하기 Python 3 설치 System에 파이썬3이 설치되어 있어야 한다. $ python3 --version python 3.6.x 가상환경(virtualenv) 구축 장고걸스 프로젝트에서만 구동될 라이브러리로 구성할 것이기 때문에 파이썬 가상환경을 만든다. $ mkdir djangogirls $ cd djangogirls $ python3 -m venv myvenv Django란? 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션 프레임워크이다. 웹사이트를 구축할 때, 비슷한 유형의 요소들이 항상 필요하다. 에컨데 회원가입, 로그인, 로그아웃과 같이 사용자 인증을 다루는 방법이나 웹사이트의 관리자 패널, 폼, 파일 업로드와 같은 기능이 있다. 장고는 이러한 다시 발명해야 하는 문제로부터 해방감을 주는 웹 프레임워크 중 하나이다. 기본 동작 웹 서버에 요청 urlresolver 동작 - 패턴 목록과 URL과 맞는지 대조 후 일치하면 해당 요청을 view에 넘김 view에서 요청된 행동을 처리하고 그에 맞는 답장을 생성함 장고는 이 답장을 사용자 웹 브라우저에 전달 Django 시작 장고의 기본 골격을 만들어주는 스크립트를 실행한다. 기본적으로 장고에서 디렉터리와 파일명이 매우 중요하고 마음대로 변경하고 옮겨서는 안된다. (myvenv) ~/djangogirls$ django-admin startproject mysite . 점 '.'은 현재 디렉터리에 장고를 설치하라고 스크립트에 알려주기 때문에 반드시 기입한다. django-admin은 스크립트로 아래와 같이 디렉터리와 파일들을 생성한다. djangogirls ├───manage.py └───mysite settings.py urls.py wsgi.py __init__.py manager.py : 사이트관리를 도와주는 스크립트. 이 스크립트로 다른 설치 작업 없이, 컴퓨터에서 웹 서버를 시작할 수 있

Django 3.0 위에서 DRF, React 공부하기

Django 3.0 위에서 DRF, React 공부하기 남기면 좋잖아 Beautiful Hugo 2020. 3. 19. 19:09 최근 클라우드 플랫폼(AWS, Azure)이나 Docker, CI/CD 도구와 같이 데브옵스 관련 공부를 하다 보니 막상 백엔드 공부 자체에 소홀해지며 그리워지기 시작했다. Django 3.0이 나온지 얼마 안 되었고 비동기 프로그래밍도 추가되어 관심만 가지게 되었다가 에듀 캐스트의 이진석 강사님이 Django 강의를 만드셨다는 소식을 듣고 이번 기회에 DRF, React 공부도 하고 Django 전반적인 복습을 하기로 했다. 나는 예전에 Askcompany에서 구독을 한 경험이 있었기에 이번 강좌는 0원에 해주신다는 이벤트덕에 더더욱 욕구를 참을 수 없었다..ㅋㅋ (감사합니다. 이진석강사님..!) 공부하며 코드는 Github에 push 할 예정이며, 필기한 내용들은 블로그에 기록해 둘 예정이다. 고로 모든 출처는 https://educast.com/course/web/ZU53 from http://dbza.tistory.com/27 by ccl(A) rewrite - 2020-03-19 19:54:11

1. Django, React 소개와 기본 설정, 셋팅

1. Django, React 소개와 기본 설정, 셋팅 남기면 좋잖아 Beautiful Hugo 2020. 3. 19. 19:13 A A A A A A Django MVC 방식 Model, Template, View React SPA 원래 웹 문서의 기본 동작 방식 요청마다 모든 전체화면에 대하여 HTML/CSS/JavaScript 를 가져와 로딩함 웹 문서에 적합한 방식 SPA 방식의 화면 전환 JavaScript를 통해 화면 변경 > 화면 전환 느낌이 남 필요 시 백그라운드에서 JavaScript로 서버와 통신 웹 애플리케이션에 적합한 방식 자바스크립트 버전 ES6 (2015) class 와 같은 기능 지원 ES3, ES5 문법은 잊어라 Python, Django 설치 $ pyenv install 3.7.4 $ pyenv global 3.7.4 $ python -m venv drflib $ source drflib/bin/activate $ pip install "django~=3.0.0" $ django-admin --version pyenv 로 시스템 python 버전을 python 3.7.4 버전으로 바꾼다. workspace에 파이썬 가상환경을 설치하고 적용한다. django 3.0 버전의 최신버전 설치 Django 프로젝트 생성 django-admin startproject [프로젝트명] $ django-admin startproject drf_react # 프로젝트 생성 $ python manage.py migrate # 초기 DB 테이블 만들기 $ python manage.py createsuperuser # 수퍼유저 생성 $ python manage.py runserver 0.0.0.0:8000 # 서버 구동 manage.py 명령행을 통해 각종 장고 명령 수행 drf_react 프로젝트명으로 생성된 디렉터리. 함부로 수정하면 안

AWS EC2 프리티어 비용 초과, 비용 절감 방안

AWS EC2 프리티어 비용 초과, 비용 절감 방안 현재 AWS EC2 인스턴스를 이용하여 웹크롤링 django 서버를 돌리는 중인데, 확실히 처음 해보는 것이다보니 많이 헤매고 있다. 성공적으로 서버를 올리는 것에는 성공하였으나, 이제 문제는 비용이다. AWS에서는 기본적으로 1년 동안 프리 티어를 제공하고, 제한적으로 무료로 사용할 수 있다고 해서 안심하고 있었다. 웹크롤링 서버이긴 하나, 굉장히 제한적으로 5줄 가량만 크롤링하기 때문에 트래픽이 작을 거라고 생각했는데.. 시간 측면에서 24시간 동안 서버를 돌리다보니, 3월 19일인 현재 87%를 돌파했고, 월말까지 150%를 돌파할 예정이다.. (무섭다..) 위 사진의 첫번째 항목이 인스턴스 사용 시간인 것 같은데, 이게 어떤 시간을 뜻하는 것인지 잘 와닿지가 않는다. 프리티어에서 기본 제공량이 750 시간, day로 환산하면 31.25일이고. 현재 예상되는 사용량인 1126 시간을 day로 환산하면 46.9일 정도이다. 대충 짐작하기는 해당 도메인으로 접근하여 사용하는 전체 사용자의 총 트래픽량 같은데, 정확하진 않다. AWS 프리티어는 테스트 용으로 사용한다...는 얘기를 들은 적도 있어서, 이게 어쩔 수 없이 비용이 초과되는 것 같기도 하고.. 으아.. 모르겠다. 2월쯤에 AWS 온라인 세션 같은 것을 들은 적이 있어서, 보상으로 현재 크레딧이 50$ 정도 있다. 그렇게까지 크리티컬하게 청구될 것 같지는 않으니 일단 첫 달은 이걸로 때우고.. 방법을 고안해봐야겠다. 대애충 찾아보기는 한 3가지 방법 정도가 있는 것 같은데, 1. 예약 인스턴스 2. 온디맨드 3. 스팟 인스턴스 셋 다 아마존에서 지원해주는 것들이고, 각각 장단점이 있고 상황에 따라 맞는 것을 사용해야하는 것 같다. 예약 인스턴스는 미리 비용을 내서 할인받는 것, 온디맨드는 사용한 만큼 비용을 내는 것, 스팟은 온디맨드보다 저렴하고 AWS에서 자동으로 최적화해주는

파이썬 수업노트 no. 3

파이썬 수업노트 no. 3 파이썬 가상환경 ​ * 필요성 : 왜 가상환경을 사용해야 하는가? ​ 프로젝트 A | 프로젝트 B | 프로젝트 C Python 3.5 | Python 2.x | Python 3.6 Django | Numpy, Tensorflow | PyQT5 Web | Data Analysis | GUI APP ​ 환경변수 관리 잘못하다가 설치하다보면 오류 포맷으로 해결 등등.. 웹, 데이터분석, GUI 앱 등 각 프로젝트에서 안정화되어 있는 버젼이 다를 수 있다. 가상환경 폴더에서 하나 추가하고 그에 맞는 체제를 적용하면 편리하고 효율적이고 깔끔할 것이다. ​ * 파이썬 가상환경 명령어 기초 * 가상환경 생성 * 가상환경 실행 / 해제 -> (윈도우: Script, 맥: Bin ) 폴더 * 패키지 설치 및 삭제 * 패키지 리스트 출력 * 패키지 검색 ​ 우선, CMD를 켜준다. ​ C:\Users\유저명>cd \ C:\>Python -m venv python_basic C:\>cd python_basic C:\python_basic>dir ​ windows 는 스크립트 , 맥은 bin으로 ​ C:\python_basic>cd Scripts C:\python_basic\Scripts>activate.bat 가상환경이 활성화된다. C:\python_basic\Scripts>deactivate.bat 가상환경에서 빠져나간다. ​ 오픈소스를 여기다 막 설치해서 만들고 나중에 윈도우와 상관없이 각 환경별로 폴더만 날려버릴 수 있다. PIP KEYS * 없는 폴더를 만들고 싶다? python -m venv 만들고 싶은 폴더명 치고 enter 만들어진다. ​ * simplejson 같은 패키지를 깔고싶다. ​ pip 명령어 pip search 검색하는 명령어 ​ pip search

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(9)

Django 와 SB Admin을 이용한 Yara GUI Interface 만들기(9) 1.파일업로드 만들기 1). templates 수정 저번 YaraEventanalysis.html파일에 코드를 추가한다. 추가부분은 저번의 수정한 테이블 위에 파일업로드 부분의 폼을 추가시킨다. 그림1. YaraEventanalysis.html 코드 추가 해당 영상을 보면은 post http 메소드로 form-data를 보내는데 document의 파일로 보낸다는 것이다. 해당 부분을 저장하고 나오면 yaraE 메뉴에 다음과 같이 파일 업로드 부분이 생긴것을 확인할수 있다. 그림2.파일업로드 생성부분 해당부분은 bootstrap 필드를 이용하여 제작하였기 때문에 div 부분 및 파일 input text 및 버튼에 대해서는 bootstrap 홈페이지를 참고하여 주길 바랍니다. 해당 파일 업로드 부분을 만들었다면 직접 파일이 업로드가 되야 한다. Django는 크게 파일업로드시 스토리지 저장 및 DB에 저장하는 방식으로 나뉠수 있다. 나는 yara로 분석하기 때문에 스토리지에 저장하는 방식으로 파일을 업로드 하였습니다. 이제 업로드 하는 양식을 만들껀데 그전에 Django admin폴더의 settings.py로 가서 다음과 같이 셋팅해준다. 그림3.settings.py설정 위와 같이 MEDIA_ROOT 및 MEDIA_URL 을 설정해 준다. MEDIA_ROOT는 저장할 장소를 말하는 거고 MEDIA_URL는 저장할때 URL로 보낼곳을 말한다. 다시 sb_admin으로 돌아와서 urls.py를 맨 끝 소스부분에 아래 그림처럼 추가시켜 준다. [urls.py] from django.conf import settings from django.conf.urls.static import static if settings.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=setting