분류 전체보기
-
📌 Django로 커스텀 커맨드 만들기 장고 manage.py에 사용자 지정 커맨드를 만들어 사용할 수 있다.커스텀 커맨드를 작성하는 것으로 manage.py부터 사용할 수 있는 커맨드를 늘릴 수가 있다. 지금부터 원하는 기능을 커맨드로 만들어서 사용하여 보자. 사용자 지정 커맨드 개요 모델 만들기 커맨드 작성 커맨드 실행 커맨드 자세히 알아보기 📌 사용자 지정 커맨드 개요 Django 커스텀 커맨드는 Django에서 생성하는 앱마다 만들 수 있으며, 커스텀 하여 만들어진 커맨드는 manage.py에서 실행할 수 있다. 예를 들어 내가 showuser라는 커맨드를 만들면 아래와 같이 사용할 수 있게된다. python3 manage.py showuser Django에서 관리용으로 모델을 조작하거나 참조하고..
[Django] Django 커스텀 커맨드 만들기📌 Django로 커스텀 커맨드 만들기 장고 manage.py에 사용자 지정 커맨드를 만들어 사용할 수 있다.커스텀 커맨드를 작성하는 것으로 manage.py부터 사용할 수 있는 커맨드를 늘릴 수가 있다. 지금부터 원하는 기능을 커맨드로 만들어서 사용하여 보자. 사용자 지정 커맨드 개요 모델 만들기 커맨드 작성 커맨드 실행 커맨드 자세히 알아보기 📌 사용자 지정 커맨드 개요 Django 커스텀 커맨드는 Django에서 생성하는 앱마다 만들 수 있으며, 커스텀 하여 만들어진 커맨드는 manage.py에서 실행할 수 있다. 예를 들어 내가 showuser라는 커맨드를 만들면 아래와 같이 사용할 수 있게된다. python3 manage.py showuser Django에서 관리용으로 모델을 조작하거나 참조하고..
2023.05.02 -
📌 자카드 유사도(Jaccard Similarity) 자카드 유사도는 모두들 다 알고 있는 개념이다. 내가 만약에 A와 B라는 아이템이 얼마나 유사한지 비교하고 싶다라고 한다면 대부분이 자카드 유사도 개념 모르더라도 그 방법을 떠올릴 것이다. 그렇다면 자카드 유사도를 어떻게 구하는지 한 번 알아보자. ➤ 자카드 유사도 공식 위에 보이는 것처럼 공식이 너무나 간단하다. 두 아이템 A와 B의 교집합에서 합집합을 나눈 값이 바로 자카드 유사도를 구하는 공식이다. 이를 데이터 기반으로 이해하기 위해 계산해 보자. ➤ 종목 유사도 데이터 예시 보통 문서 유사도 같은 자연어 처리 관련으로 설명을 하는데 이해를 쉽게 하기 위해 주식 종목이 얼마나 유사한지 측정해 보자. A 유저의 주식 종목 삼성전자, 테슬라, LG전..
[딥러닝] 자카드 유사도(Jaccard Similarity) 개념 이해📌 자카드 유사도(Jaccard Similarity) 자카드 유사도는 모두들 다 알고 있는 개념이다. 내가 만약에 A와 B라는 아이템이 얼마나 유사한지 비교하고 싶다라고 한다면 대부분이 자카드 유사도 개념 모르더라도 그 방법을 떠올릴 것이다. 그렇다면 자카드 유사도를 어떻게 구하는지 한 번 알아보자. ➤ 자카드 유사도 공식 위에 보이는 것처럼 공식이 너무나 간단하다. 두 아이템 A와 B의 교집합에서 합집합을 나눈 값이 바로 자카드 유사도를 구하는 공식이다. 이를 데이터 기반으로 이해하기 위해 계산해 보자. ➤ 종목 유사도 데이터 예시 보통 문서 유사도 같은 자연어 처리 관련으로 설명을 하는데 이해를 쉽게 하기 위해 주식 종목이 얼마나 유사한지 측정해 보자. A 유저의 주식 종목 삼성전자, 테슬라, LG전..
2023.04.28 -
CSRF 공격이란 웹 어플리케이션 취약점 중 하나로 인터넷 사용자가 자신의 의지와는 다르게 공격자가 의도한 수정, 삭제, 등록 등의 행위를 사용자가 사용하는 웹 사이트에 요청하게 만드는 공격이다. - CSRF 공격을 하는 이유 해커는 희생자의 권한을 도용하여 중요 기능을 작동하는 것이 가능해진다. 예를 들어 특정 사용자의 계정을 도용함으로써 해당 계정에 의도하지 않은 광고성 글을 무작위로 게시하는 것이 가능하다. 물론 이 CSRF는 해커가 사용자의 컴퓨터를 감염하고 서버를 해킹하여 이루어 지는 공격은 아니다. 그렇기 때문에 사전에 조건이 충족되어야 한다. 위조 요청을 정송하는 서비스에 사용자가 로그인 상태여야한다. 사용자가 해커가 만든 피싱 사이트에 접속해야한다. 위의 조건을 만족하면 사용자는 간단하게 ..
[Web] CSRF 공격이란? 그리고 CSRF 방어 방법CSRF 공격이란 웹 어플리케이션 취약점 중 하나로 인터넷 사용자가 자신의 의지와는 다르게 공격자가 의도한 수정, 삭제, 등록 등의 행위를 사용자가 사용하는 웹 사이트에 요청하게 만드는 공격이다. - CSRF 공격을 하는 이유 해커는 희생자의 권한을 도용하여 중요 기능을 작동하는 것이 가능해진다. 예를 들어 특정 사용자의 계정을 도용함으로써 해당 계정에 의도하지 않은 광고성 글을 무작위로 게시하는 것이 가능하다. 물론 이 CSRF는 해커가 사용자의 컴퓨터를 감염하고 서버를 해킹하여 이루어 지는 공격은 아니다. 그렇기 때문에 사전에 조건이 충족되어야 한다. 위조 요청을 정송하는 서비스에 사용자가 로그인 상태여야한다. 사용자가 해커가 만든 피싱 사이트에 접속해야한다. 위의 조건을 만족하면 사용자는 간단하게 ..
2023.04.23 -
📌 Node.js 백엔드 기초강의 이 기초강의 내용은 유튜브 조코딩 JoCoding님의 "한 시간 만에 Node.js 백엔드 기초 끝내기(ft. API구축)"이라는 제목을 가진 Node.js의 기본영상이다. 길이는 1시간 정도로 Node.js가 무엇이고 어떻게 사용되는지 알아보기 위해 부트캠프 수료식 가는 지하철에서 1시간 정도 가볍게 봤었는데 Node.js를 시작하기 좋은 강의라 생각이 들어 다시 한번 시청하면서 강의 내용을 정리해 보려고 한다. 출처 : 조코딩 JoCoding -한시간만에 Node.js 백엔드 기초 끝내기(ft. API구축) 📌 Node.js란 무엇인가? 지금 메인으로 사용하고 있는 python 언어는 컴퓨터에 설치해야 사용이 가능한 백엔드 언어이다. 하지만 javascript는 설치..
[Node] node.js를 이용하여 서버통신 구현하기📌 Node.js 백엔드 기초강의 이 기초강의 내용은 유튜브 조코딩 JoCoding님의 "한 시간 만에 Node.js 백엔드 기초 끝내기(ft. API구축)"이라는 제목을 가진 Node.js의 기본영상이다. 길이는 1시간 정도로 Node.js가 무엇이고 어떻게 사용되는지 알아보기 위해 부트캠프 수료식 가는 지하철에서 1시간 정도 가볍게 봤었는데 Node.js를 시작하기 좋은 강의라 생각이 들어 다시 한번 시청하면서 강의 내용을 정리해 보려고 한다. 출처 : 조코딩 JoCoding -한시간만에 Node.js 백엔드 기초 끝내기(ft. API구축) 📌 Node.js란 무엇인가? 지금 메인으로 사용하고 있는 python 언어는 컴퓨터에 설치해야 사용이 가능한 백엔드 언어이다. 하지만 javascript는 설치..
2023.04.19 -
[22.11.17] Change method of REST API (GET -> POST) Python 부트캠프 교육 과정을 수료하며 배운 퓨어 Django로 프로젝트를 진행하지 않고 백엔드와 프런트가 분리된 REST API 방식의 DRF(Django Rest Framework) 프레임워크를 사용하여 프로젝트를 진행하기로 하였다. 📌 DRF(Django Rest Framework)를 사용하고자 하는 이유 상세한 DRF를 사용해야 하는 이유는 다른 게시 글로 작성하겠지만 프로젝트를 진행하며 나온 첫 번째 이슈사항이기 때문에 사용하고자 하는 이유를 짚고 넘어가려고 한다. ➤ 이유 일반적으로 Django만 사용하는 경우에는 DB에서 데이터를 꺼내오면 Queryset의 형태로 데이터가 주어진다. 이 경우 프런..
[ISSUE] REST API GET방식에서 POST로의 변경[22.11.17] Change method of REST API (GET -> POST) Python 부트캠프 교육 과정을 수료하며 배운 퓨어 Django로 프로젝트를 진행하지 않고 백엔드와 프런트가 분리된 REST API 방식의 DRF(Django Rest Framework) 프레임워크를 사용하여 프로젝트를 진행하기로 하였다. 📌 DRF(Django Rest Framework)를 사용하고자 하는 이유 상세한 DRF를 사용해야 하는 이유는 다른 게시 글로 작성하겠지만 프로젝트를 진행하며 나온 첫 번째 이슈사항이기 때문에 사용하고자 하는 이유를 짚고 넘어가려고 한다. ➤ 이유 일반적으로 Django만 사용하는 경우에는 DB에서 데이터를 꺼내오면 Queryset의 형태로 데이터가 주어진다. 이 경우 프런..
2023.04.19 -
Web 사이트 파싱 하는 프로젝트를 진행하면서 크롤링을 접할 기회가 생겼다. 크롤링을 할 때 주의할 점은 함부로 접근해서 무작위로 파싱 및 크롤링해 오는 것이 아니라 robots.txt라는 설정을 확인 후 접근이 허가가 되어 있는지 확인이 필요하다. robots.txt란? robots.txt는 검색 엔진 로봇에게 웹사이트를 어떻게 크롤링 해야 하는지 가이드를 주는 문서 파일이다. 가이드를 하면서 크롤러에게 URL의 어떤 경로에 접근이 가능한지 아닌지 알려주며 웹사이트의 로드맵 가이드를 하는 역할을 한다. robots.txt는 항상 사이트의 루트 폴더 또는 메인 디렉터리에 위치해야 하며 대부분 텍스트 파일로 설정이 되어 있다. robots.txt 지시어 및 규칙 크롤링을 사용하는 개발자의 입장에서 접근이 ..
[Web] web-Robots.txt에 대한 가이드Web 사이트 파싱 하는 프로젝트를 진행하면서 크롤링을 접할 기회가 생겼다. 크롤링을 할 때 주의할 점은 함부로 접근해서 무작위로 파싱 및 크롤링해 오는 것이 아니라 robots.txt라는 설정을 확인 후 접근이 허가가 되어 있는지 확인이 필요하다. robots.txt란? robots.txt는 검색 엔진 로봇에게 웹사이트를 어떻게 크롤링 해야 하는지 가이드를 주는 문서 파일이다. 가이드를 하면서 크롤러에게 URL의 어떤 경로에 접근이 가능한지 아닌지 알려주며 웹사이트의 로드맵 가이드를 하는 역할을 한다. robots.txt는 항상 사이트의 루트 폴더 또는 메인 디렉터리에 위치해야 하며 대부분 텍스트 파일로 설정이 되어 있다. robots.txt 지시어 및 규칙 크롤링을 사용하는 개발자의 입장에서 접근이 ..
2023.04.17 -
🔖 웹 크롤러란? 어떠한 정보를 브라우저에서만 보는 것뿐 아니라 내가 이용하기 편한 방식으로 보관하거나 조작하는 경우가 있다. Python을 이용하면 간단한 코드 몇줄 만으로도 쉽게 웹 사이트에서 원하는 정보만을 가져와 다룰 수 있다. 🔖 웹에서 정보 가져오기 ➤ Requests를 이용하기 python에는 requests 라는 유명한 http request라이브러리가 있다. ➤ 설치하기 pip3 install requests from rest_framework.views import APIView from rest_framework.response import Response from pocket.models import List from pocket.serializers import ListSerial..
[Python] 웹 크롤러 만들기 with Requests/BeautifulSoup🔖 웹 크롤러란? 어떠한 정보를 브라우저에서만 보는 것뿐 아니라 내가 이용하기 편한 방식으로 보관하거나 조작하는 경우가 있다. Python을 이용하면 간단한 코드 몇줄 만으로도 쉽게 웹 사이트에서 원하는 정보만을 가져와 다룰 수 있다. 🔖 웹에서 정보 가져오기 ➤ Requests를 이용하기 python에는 requests 라는 유명한 http request라이브러리가 있다. ➤ 설치하기 pip3 install requests from rest_framework.views import APIView from rest_framework.response import Response from pocket.models import List from pocket.serializers import ListSerial..
2023.04.17 -
프로젝트 시작단계, 서로 맡은 업무를 진행하며 프로젝트 초기 세팅을 하는 기간이다. 우리는 프로젝트를 시작하며 처음으로 github의 oranization을 통해 repository를 공유받아 해당 repository에서 협업을 진행하게 되었다. 협업의 꽃은 바로 git과 github이지만 한 명의 구성원이라도 숙지를 제대로 하고 있지 않으면 문제에 맞닥드리기 아주 쉽다. 우리는 브랜치 전략으로 main브랜치에서 develop와 feature, bugfix, docs, conf 등의 브랜치를 가지는 전략을 취하기로 하였다. ➤ Issue1-올리지 말아야할 파일 처음 main브랜치에 프로젝트 초기 셋팅을 잡아 main브랜치에 push를 하게 되었는데, github에 초기 프로젝트를 처음 올리기 때문에 .g..
[ISSUE] commit 시점이 뒤에 위치한 Branch프로젝트 시작단계, 서로 맡은 업무를 진행하며 프로젝트 초기 세팅을 하는 기간이다. 우리는 프로젝트를 시작하며 처음으로 github의 oranization을 통해 repository를 공유받아 해당 repository에서 협업을 진행하게 되었다. 협업의 꽃은 바로 git과 github이지만 한 명의 구성원이라도 숙지를 제대로 하고 있지 않으면 문제에 맞닥드리기 아주 쉽다. 우리는 브랜치 전략으로 main브랜치에서 develop와 feature, bugfix, docs, conf 등의 브랜치를 가지는 전략을 취하기로 하였다. ➤ Issue1-올리지 말아야할 파일 처음 main브랜치에 프로젝트 초기 셋팅을 잡아 main브랜치에 push를 하게 되었는데, github에 초기 프로젝트를 처음 올리기 때문에 .g..
2023.04.10 -
Java로 프로그래밍을 처음 시작할 때는 웹서버는 Apache, WAS는 Tomcat으로 웹 사이트를 구현했었다. 전 직장에서도 웹 서버-Apache, WAS-Tomcat을 사용하고 있었지만, Python으로 프로젝트를 배포하며 알게 된 것은 최근에는 Nginx를 많이 사용한다는 것이다. 무슨 이유로 Apache보다 Nginx를 더 사용하는 걸까? 그 이유는 바로 Nginx가 트래픽이 많은 웹 사이트에 더 적합하기 때문이다. Nginx는 대용량 트래픽을 처리하기 위해 가벼움과 높은 성능을 목표로 하는 경량 서버이다. 그런데 웹 서버는 정적 파일의 제공을 목적으로 사용하던 Apache를 사용하던 시기와 달리 최근에는 리버스 프록시, 로드 밸랜서, 메일 프록시 및 HTTP 캐싱 등 전체 범위에서 서버 작업을..
[Web] 웹 서버 Apache보다 Nginx를 사용하는 이유Java로 프로그래밍을 처음 시작할 때는 웹서버는 Apache, WAS는 Tomcat으로 웹 사이트를 구현했었다. 전 직장에서도 웹 서버-Apache, WAS-Tomcat을 사용하고 있었지만, Python으로 프로젝트를 배포하며 알게 된 것은 최근에는 Nginx를 많이 사용한다는 것이다. 무슨 이유로 Apache보다 Nginx를 더 사용하는 걸까? 그 이유는 바로 Nginx가 트래픽이 많은 웹 사이트에 더 적합하기 때문이다. Nginx는 대용량 트래픽을 처리하기 위해 가벼움과 높은 성능을 목표로 하는 경량 서버이다. 그런데 웹 서버는 정적 파일의 제공을 목적으로 사용하던 Apache를 사용하던 시기와 달리 최근에는 리버스 프록시, 로드 밸랜서, 메일 프록시 및 HTTP 캐싱 등 전체 범위에서 서버 작업을..
2023.04.07 -
클라이언트(사용자)가 요청을 보냈을 때 WAS로 동적 컨텐츠 요청을 전달해 주는 웹 서버 중 하나인 Nginx에 대해 알아보려고 한다. Nginx 클라이언트의 요청을 받아 정적 컨텐츠를 응답으로 넘겨주거나, 동적 컨텐츠 요청을 WAS로 전달해 주는 웹 서버(Web Server)중 하나인 소프트웨어이다. 특히 트래픽이 많은 웹사이트를 확장하기 위해 설계한 비동기 이벤트 기반구조의 웹 서버 소프트웨어이다. 더 적은 자원으로 더 빠르게 서비스한다. 이 프로그램은 가벼움과 높은 성능을 목표로 만들어졌으며 Apache의 C10K Problem을 해결하기 위해 만든 Event-driven구조의 오픈소스 서버 프로그램이다. 📌 C10K Problem이란? 한 웹서버에 1만개의 클라이언트 접속만을 동시에 다룰 수 있는..
[Web] 웹 서버 Nginx클라이언트(사용자)가 요청을 보냈을 때 WAS로 동적 컨텐츠 요청을 전달해 주는 웹 서버 중 하나인 Nginx에 대해 알아보려고 한다. Nginx 클라이언트의 요청을 받아 정적 컨텐츠를 응답으로 넘겨주거나, 동적 컨텐츠 요청을 WAS로 전달해 주는 웹 서버(Web Server)중 하나인 소프트웨어이다. 특히 트래픽이 많은 웹사이트를 확장하기 위해 설계한 비동기 이벤트 기반구조의 웹 서버 소프트웨어이다. 더 적은 자원으로 더 빠르게 서비스한다. 이 프로그램은 가벼움과 높은 성능을 목표로 만들어졌으며 Apache의 C10K Problem을 해결하기 위해 만든 Event-driven구조의 오픈소스 서버 프로그램이다. 📌 C10K Problem이란? 한 웹서버에 1만개의 클라이언트 접속만을 동시에 다룰 수 있는..
2023.04.07