본문 바로가기

web

(198)
django-summernote 사용하기 제가 가장 많이 사용하는 WYSIWYG는 summernote와 froala입니다. froala의 경우는 심플하고 깔끔하지만 기능성에 있어서 상당히 버그가 많습니다. 커스텀또한 어려운 편입니다. summernote도 깔끔한데다가 딱히 손볼곳이 없이 군더더기 없이 사용할 수 있는 에디터 입니다. 그런 summernote의 경우엔 django의 app으로도 개발되어 있어서 django로 쉽게 사용이 가능합니다. 이제부터 django-summernote의 설정및 구현 방법입니다. django-sumernote의 자세한 내용을 원하시면 해당 레파지토리를 활용하세요!https://github.com/summernote/django-summernote 아래의 진행사항의 전체 소스는 https://github.com/..
nginx error – 413 Request Entity Too Large 413 Request Entity Too Large 대부분 파일 업로드 로직을 만들어 보면 한번쯤 만나보는 에러 문구이다. ( -_-예전에 텍스트 데이터로 5메가를 넘겨서 만났었던..쿨럭..) 간단하게 post 데이터가 nginx 설정한 값보다 크면 나오는 에러이다.nginx의 디폴트 값은 1mb client_max_body_size 값만 원하는 값으로 넣우면 해당 에러는 나오지 않는다. ( 잠시만 사용하면 하고 지우는것을 추천한다. 파일 업로드를 몇기가씩 해서 대역폭을 차지해서 서버 과부하를 일부러 일으키는 해킹방법도 있으니..) server { client_max_body_size 20M; listen 80; server_name localhost; location / { proxy_pass http..
overflow-x 된 DOM에서 마우스 휠로 좌우스크롤 움직이기 먼저 html 국가원로자문회의의 의장은 직전대통령이 된다. 다만, 직전대통령이 없을 때에는 대통령이 지명한다. 모든 국민은 법률이 정하는 바에 의하여 납세의 의무를 진다. 탄핵소추의 의결을 받은 자는 탄핵심판이 있을 때까지 그 권한행사가 정지된다. 모든 국민은 헌법과 법률이 정한 법관에 의하여 법률에 의한 재판을 받을 권리를 가진다.국가원로자문회의의 의장은 직전대통령이 된다. 다만, 직전대통령이 없을 때에는 대통령이 지명한다. 모든 국민은 법률이 정하는 바에 의하여 납세의 의무를 진다. 탄핵소추의 의결을 받은 자는 탄핵심판이 있을 때까지 그 권한행사가 정지된다. 모든 국민은 헌법과 법률이 정한 법관에 의하여 법률에 의한 재판을 받을 권리를 가진다.국가원로자문회의의 의장은 직전대통령이 된다. 다만, 직전대..
javascript reduce map()함수는 배열의 각각의 원소에 함수를 적용하는것이라면 reduce()함수는 배열의 각 배열들을 순서대로 함수를 적용하는것입니다. 예를 들어 1~5까지의 배열이 있을때 합을 구하고 싶다면 다음과 같습니다. [1, 2, 3, 4, 5].reduce( (x, y) => x+y, 0); // 15 위의 소스는 (((((0+1) + 2) + 3) + 4) +5) 와 같이 동작합니다. 그렇습니다. 함수중에서 가장 피곤한!! 재귀함수와 비슷합니다. (재귀함수는 수학식을 코딩하기에 알맞지만 디버깅과 소스 분석이 어려운 단점이 있지요.)일명 fold 함수라고도 하는 고차함수입니다.reduce도 고차함수에 속하는 것으로 아래와 같이 움직이게 됩니다. reduce에 의해 함수를 마치면 리턴은 하나가 됩니다. (map..
javascrpt map map 메서드(Array)map 함수는 배열의 각 요소에 대해 정의된 콜백 함수를 호출하고 결과가 포함되어 있는 배열을 반환합니다. 1. 배열의 각요소에 루트값을 구하기let list = [2, 4, 5]; console.log(list.map(Math.sqrt)); // [1.4142135, 2, 2.23606] 2. 배열의 각 요소를 제곱근으로 하기var numbers1 = list.map(function(num){ return num * num }); console.log(numbers1); //[4, 16, 25] 2-1 배열의 각 요소를 제곱근으로 하기(함수 사용)map()에 해당 함수만 표기해 주면 됩니다. const square = x => x * x; var numbers2 = list.m..
ecma6 javascript 를 위한 gulp babel gulpfile.js 전체 소스babel task 부분만 보시면 됩니다. var gulp = require('gulp'); var uglify = require('gulp-uglify'); var concat = require('gulp-concat'); var minifyCss = require('gulp-minify-css'); var browserSync = require('browser-sync').create(); var browserify = require('browserify'); var source = require('vinyl-source-stream'); var buffer = require('vinyl-buffer'); var babel = require('gulp-babel'); g..
ECMAScript6 1. let / const (호이스팅 때문에 탄생)호이스팅 : js의 경우 변수 선언일때 해당 함수의 가장 첫번째에 자동으로 var 변수; 로 선언된후 해당 라인에서 초기화가 된다. 하지만 만일 스코프가 다른 변수가 있을시엔?! 함수이름과 변수 이름이 같을시엔?! 과 같이 문제점이 발생한다. 이를 위해 ecma6에서 블록안에서만 / 상수 등이 탄생 하여 스코프에 대한 영향력을 줄였음. 아래와 같이 소스가 된다면 var snack = 'Meow Mix'; function getFood(food) { if (food) { var snack = 'Friskies'; return snack; } return snack; } console.log(getFood(false)); // undefined 아래 소스처럼..
gulp 특정 파일은 제외 gulp으로 css를 모두 통합하여 min파일로 만들어 버리면 파일순으로 하나의 파일을 만들기 떄문에 responsive.css같이 파일이 순서에 밀려서 css가 안먹는 경우가 발생한다. responsive.css의 모든 속성을 !important를 주던지. (설마 이런짓을 하는사람은..) 파일을 따로 관리하는게 가장 편하겠다 싶어서 만들어 보았다. (이러면 index.css / responsive.css 파일을 html에서 링크만 걸어주면되니까) gulp.task('minifycss', function() { return gulp.src(['src/css/*.css','!src/css/responsive.css']) .pipe(concat('index.css')) .pipe(minifyCss({comp..