Web Programming

https://github.com/webpack-contrib/webpack-command/blob/master/README.md의 Differences With webpack-cli 항목을 2018년 8월 3일에 번역하였습니다. 의역이 포함되어 있습니다.

webpack-command는 webpack-cli와 동등성을 목표로 하지만, 주목할 만한 차이가 있습니다. 이러한 차이점에는 이 모듈에 webpack CLI를 제공하는 최소한의 명령만 포함되어 있다는 점이 포함됩니다. 초기 설정, 마이그레이션 및 업데이트와 같은 명령은 사용자가 설치한 개별 모듈로 이전됩니다. 


webpack-cli를 사용했었다면 아래와 같은 차이에 주의해야 합니다.

--env 플래그는 사용할 수 없습니다. (The --env Flag is Nuked)

환경변수(Environment Variables)는 매우 오랫동안 사용되어 왔습니다. webpack-cli는 사용자가 flag를 통해 환경변수를 지정할 수 있지만, webpack-command는 해당 기능을 포함하지 않습니다. 대신에 사용자는 환경변수를 기존의 표준 방식으로 사용해야 합니다.

$ NEAT_VAR=woo webpack ...

process.env로 값에 접근하세요. 대신에 사용자가 크로스 플랫폼간 환경변수 (cross-platform environment variables)를 필요로 한다면, cross-env 와 같은 도구를 활용해야합니다.

key=value는 지원되지 않습니다.

webpack-cli로 전달되는 플래그는 --entry name=file같은 문법을 허용합니다. 그러나 이 모듈은 CLI 표준 접근 방식을 채택하여 --flag.key value를 대신 사용하며, key=value문법을 허용하지 않습니다.

항목(Entry)

플래그(--flag또는 입력(webpack <file>)으로 항목을 지정하려면 지정된 파일 또는 디렉터리가 있어야합니다.

쉼표로 구분된 값으로 전달되는 --entry file,file2는 더 이상 사용되지 않으므로 CLI 표준인--entry file --entry file2 문법을 사용하도록 마이그레이션 해야합니다.

--entry name=file을 사용하여 webpack-cli에서 플래그로 전달되었던 항목은 이제 --entry.name file문법을 사용하도록 마이그레이션 해야합니다.

별칭(Alias)

webpack-cli에서 --resolve-alias alias=value같이 전달되었던 별칭은 --resolve-alias.{alias} {value} 문법으로 마이그레이션 해야합니다.

로더 별칭(Loader Alias)

webpack-cli에서 --resolve-loader-alias alias=value같이 전달되었던 로더 별칭은 --resolve-loader-alias.alias value 문법으로 마이그레이션 해야합니다.



오역에 대해서는 댓글로 알려주세요.

이번에 만든 함수는 checkRequest라는 함수이다.

이 함수는 예를들면 POST요청이 들어왔을 때, sessionkey에 접근해서 데이터를 불러와야한다면, 사용자의 요청에 session key가 있는지 검사를 해야한다. 근데 이러한 요청 인자가 한 두개가 아니라면, if문이 너무 길어지게 된다. 그래서 만든 함수가 아래와 같은 함수이다.

위의 함수에서 data는 Object.keys(req.body)이고, keys는 접근해야하는 key값의 목록이다.


위의 예시를 이용해 함수를 호출한다 하면, checkRequest(Object.keys(req.body), ['session', 'key'])이다. 


위의 함수의 원리를 살펴보자면, 먼저, data 안에 keys의 값을 하나씩 뽑은 값이 있는지 확인하고 이를 반환하여 배열로 만든다. 두번째로는 이 배열에 false 값, 즉 요구하는 값들이 없는 경우가 하나라도 있으면 true를 반환하게 된다.


왜 true를 반환하냐면 if문으로 true경우 잘못된 데이터를 인식하게 하면 되기 때문이다. !을 굳이 붙일 필요가 없다!




'Web Programming > Typescript' 카테고리의 다른 글

checkRequest- 요청이 올바른지 검사하는 함수  (0) 2018.07.03

Express.js IP 구하기

2018.07.03 14:04

Express.js에서 접속자의 IP를 반환하는 함수는 아래와 같다.


const getIp = req => (req.headers['x-forwarded-for'] || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress);


Express를 사용할 때 아래코드도 덤으로 넣어주어야 한다. "app.set('trust proxy', true);


'Web Programming > Node.js' 카테고리의 다른 글

mysql에서 pool query 후 release 하기  (0) 2018.12.04
Express.js IP 구하기  (0) 2018.07.03
간단한 express서버 만들기  (0) 2017.08.15


1
2
3
4
5
6
7
8
9
10
11
12
13
const express = require('express'); //express
const path = require('path');
const app = express();
app.use(express.static('public'));
app.get('/',(req,res)=>//on GET (route : /)
    res.sendFile('./main.html');
});
app.get('/a',(req,res)=>//on GET (route : /a)
    res.sendFile('./a.html');
});
require('http').createServer(app).listen(7200,()=> {
    console.log("Server Start!");
}); //Create http server : port(7200)
cs

1번부터 2번까지는 모듈을 로드하는것이고

5번줄 부터 10번째 줄까지는 라우팅을 하는 부분입니다. GET에서 각각 / 과 /a를 받으면 main.html과 a.html을 보냅니다.

11번줄은 http모듈의 createServer함수로 7200포트에서 실행되며, 실행시 console.log의 내용을 출력합니다.

참고 : const와 ()=>문법은 Node.js 6.x부터 지원됩니다.

'Web Programming > Node.js' 카테고리의 다른 글

mysql에서 pool query 후 release 하기  (0) 2018.12.04
Express.js IP 구하기  (0) 2018.07.03
간단한 express서버 만들기  (0) 2017.08.15

md5 :  RSA Data Security, Inc. MD5 Message-Digest Algorithm을 사용하여 MD5의 해시값을 반환합니다.

md5는 취약한 해시 알고리즘이기 때문에 민감한 정보를 저장할 시에는 SHA-256이상을 이용하여 저장하는것을 강력히 권합니다. 

MD5는 해시충돌이 있습니다.

1
2
3
4
5
<?
    $text = "apple";
    echo(md5($text)); 
    //1f3870be274f6c49b3e31a0c6728957f
?>
cs

sha1 :  US Secure Hash Algorithm 1을 사용하여 sha1 해시를 반환합니다.

SHA1역시 보안성 위험하오니, 단순 무결성 검사를 위한것이 아닌 이상, 사용하면 안됩니다.

1
2
3
4
5
<?
    $text = "apple";
    echo(md5($text)); 
    //d0be2dc421be4fcd0172e5afceea3970e2f3d94
?>
cs


hash : 지정한 알고리즘에 의해 값을 반환합니다. hash(알고리즘,입력값)

이용가능한 알고리즘 : http://php.net/manual/kr/function.hash.php


1
2
3
4
5
<?
    $text = "apple";
    echo(hash("sha256",$text));
    //3a7bd3e2360a3d29eea436fcfb7e44c735d117c42d1c1835420b6b9942dd4f1b
?>
cs


'Web Programming > PHP' 카테고리의 다른 글

PHP에서 해시값 뽑아내기  (0) 2017.08.15
PHP explode & array_push  (0) 2017.08.15
PHP에서 GET과 POST를 사용하기  (0) 2017.08.15

PHP explode & array_push

2017.08.15 22:40

array_push는 배열의 끝에 데이터를 추가해줍니다. (http://php.net/manual/en/function.array-push.php)

PHP 문법 특성상 array_push(배열,추가할 값) 처럼 사용해야합니다.

1
2
3
4
5
<?
    $array = array("a","b","c");
    array_push($array,"d");
    # array = ["a","b","c","d")
?>
cs


explode는 문자열을 나누는 함수입니다. explode(기준 문자열, 입력 문자열) (http://php.net/manual/kr/function.explode.php)

입력 문자열이 "" 이면, explode()은 FALSE를 반환합니다. 또한 기준 문자열이 입력 문자열에 존재하지 않을시에는 입력문자열을 반환합니다.

옵션으로 limit을 줄 수 있습니다. limit은 반환 배열의 최대값을 지정합니다. explode(기준 문자열, 입력 문자열, 5)


1
2
3
4
5
<?
    $text = "Red,Blue,Green";
    $array = explode(",",$text);
    # array = ["Red","Blue","Green")
?>
cs


'Web Programming > PHP' 카테고리의 다른 글

PHP에서 해시값 뽑아내기  (0) 2017.08.15
PHP explode & array_push  (0) 2017.08.15
PHP에서 GET과 POST를 사용하기  (0) 2017.08.15

※GET은 URL통해 값을 전달한다. 처음에는 ?을 쓰고 그 다음에는 &으로 이어붙인다. 예 :a.html?name="Kim"&from="Korea"

※POST는 겉으로 보이지 않으며 주로 form submit으로 보내게 된다. 

※또한 GET으로 민감한 정보를 전송해서는 안되며, 반드시 POST를 써야한다.

PHP에서 GET과 POST를 사용하는 방법은 간단하다.

$_GET['key']와 $_POST['key']를 사용하면된다. ('key'대신 변수명을 넣어주면 된다.)

아래는 예제코드이다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Example URL = https://test.com/test.html?KEY=URL
<form action = "https://test.com/test.html?KEY=URL" method = "post"> 
<input type="hidden" name="KEY" value="Form Data">
<input type="submit">
</form>
 
<?
    $get_data = $_GET['KEY'];
    $post_data = $_POST['KEY'];
    echo($get_data);
    # URL
    echo($post_pata); 
    # Form Data
?>
cs


여기서 주의해야할 점이 있는데, 사용자의 입력값을 함부로 쓰면 안된다는 것이다.

사용자가 어떤 공격을 할지 모르기 때문에, 반드시 XSS와 SQL Injection을 방지할 수 있는 코드를 넣어야 한다.

'Web Programming > PHP' 카테고리의 다른 글

PHP에서 해시값 뽑아내기  (0) 2017.08.15
PHP explode & array_push  (0) 2017.08.15
PHP에서 GET과 POST를 사용하기  (0) 2017.08.15

+ Recent posts

티스토리 툴바