반응형

HTTP의 메소드인 GET과 POST의 차이점에 대해 살펴 본다.

 

[ GET ]

get 은 서버로 부터 정보를 조회하기 위한 HTTP메소드 이다.

request를 서버에 전달할 때 URL에 다음과 같은 방법으로 value_name과 value를 전달하게 된다.

http://www.example.com/request?name1=value1&name2=value2&name3=value3

URL 뒤에 question symbol(?)을 붙이고 그 뒤에 요청할 value이름과 값을 표시한다. value가 여러개인 경우는 ampersand symbol(&)을 이용하여 나열한다.

get의 특징은 다음과 같다.

- 불필요한 요청을 제한하기 위해 요청이 캐시될 수 있다.

- 쿼리스트링을 사용하기 때문에 특정 페이지를 링크할 수 있다.

- 웹브라우저를 통해 웹페이지나 게시글 등을 조회하는 경우 주로 사용된다.

 

[ POST ]

post는 서버에 리소스를 생성하거나 변경하기 위해 사용된다. 따라서 GET과는 달리 URL이 아닌 HTTP메세지의 Body에 전달할 데이터를 담아 전송하게 된다.

HTTP메시지의 body는 데이터를 크기의 제한 없이 전송할 수 있어, POST request는 GET과는 달리 대용량의 데이터를 전송할 수 있다.

post의 특징은 다음과 같다.

- 대용량의 데이터 전송이 가능하다.

- 동일한 요청을 해도 응답은 항상 다를 수 있다.

- 서버의 상태나 데이터를 변경 시킬때 주로 사용된다.

 

흔히 GET은 서버에 전달되는 데이터가 외부로 노출 되고, POST는 노출되지 않아 보안을 위해 POST를 사용하는 것이 바람직하다는 정보를 볼 수 있다. 하지만 이는 잘못된 정보이다. 브라우저의 개발자 도구를 통해 POST로 전달되는 정보도 확인할 수 있기 때문이다.

 

바람직한 메소드 사용은 다음과 같이 정리 할 수 있다.

- 조회 : GET

- 생성 : POST

- 수정 : PUT 또는 PATCH

- 삭제 : DELETE

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

서비스 중에는 패스워드를 보안상 문제가 없도록 설정해야 하지만 개발용도로 로컬에 설치해서 사용할 경우 패스워드가 긴 경우 불편하다.

이런 경우 패스워드 정책을 변경하고, 패스워드를 재설정하는 방법을 정리한다.

먼저 mysql 프롬프트로 이동한다.

 # mysql -u root mysql

현재 패스워드 정책을 확인한다.

mysql> SHOW VARIABLES LIKE 'validate_password%';

+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password_check_user_name    | OFF    |
| validate_password_dictionary_file    |        |
| validate_password_length             | 8      |
| validate_password_mixed_case_count   | 1      |
| validate_password_number_count       | 1      |
| validate_password_policy             | MEDIUM |
| validate_password_special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.05 sec)

보통 위와 같이 설정되어 있다. 내용을 보면 길이는 8 이상, 특수문자, 대소문자 등이 1글자 이상 있어야 하는 것으로 되어 있다.

이를 변경하려면 SET GLOBAL 명령을 사용한다.

mysql> SET GLOBAL validate_password_policy=LOW;
--------------
SET GLOBAL validate_password_policy=LOW
--------------

Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL validate_password_length = 4;
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL validate_password_mixed_case_count = 0;
Query OK, 0 rows affected (0.00 sec)

mysql>  SET GLOBAL validate_password_number_count = 0;
Query OK, 0 rows affected (0.00 sec)

mysql>   SET GLOBAL validate_password_special_char_count = 0;
Query OK, 0 rows affected (0.00 sec)

설정이 완료 되었으면 내용을 다시한번 확인해 본다.

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 0     |
| validate_password_number_count       | 0     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 0     |
+--------------------------------------+-------+
7 rows in set (0.01 sec)

이제 아무런 제약없이 4개의 문자만으로 설정이 가능하다.

비밀번호 재 설정은 다음과 같다.

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.00 sec)

 

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

각종 파일을 변환할 수 있는 사이트이다.

오디오, 동영상, 이미지, 문서, eBook, 압축파일 등을 변환할 수 있다.

convert.com

https://www.online-convert.com/

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

아주 유용한 CDN(Contents Delivery Network) 검색 사이트를 소개한다.
원하는 framework의 이름을 입력하고 검색하면 CDN full URL을 검색할 수 있다.
다음 사진은 검색 전후의 사진이다. jquery로 검색하면 관련 URL이 846개 검색되는 것을 확인한 수 잇다.

 

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

다음은 네이버 검색에 웹사이트를 등록하는 방법이다.

 

  1. 네이버 웹마스터 도구에 로그인 하기. (네이버 아이디가 있으면 별도로 가입할 필요 없음.)
  2. 사이트 추가에 원하는 웹사이트의 URL을 입력하고 '추가'버튼을 클릭
  3. 사이트 소유 확인.
    3가지 방법을 제공하고 있다.
    1) HTML파일 업로드 : 네이버에서 제공하는 html파일을 다운로드 받아, 웹사이트의 root에 업로드 하는 방법.
    2) HTML 태그 : 네이버에서 제공하는 meta tag를 웹사이트 index.html 의 <head>네에 복사하는 방법.
    3) 소유확인 없이 사이트 추가 : 비 추천. 소유확인이 있어야 네이버에서 제공하는 하는 각종기능을 사용할 수 있다.

* 먼저 '소유확인 없이 사이트 추가'를 한 후 나중에 소유 확인을 할 수도 있다.

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

자세한 내용은 구글의 'Search Console 고객센터'에 설명되어 있다. 문제는 너무 자세하다는 것이다. 처음 방문해서 읽다 보면 좀 당황스럽다. 내용은 '기본 체크리스트'를 중심으로 이루어져 있다.

기본 체크리스트는 다음과 같다.

  1. 내 사이트가 Google에 표시되나요?
  2. 사용자에게 고품질 콘텐츠를 게재하나요?
  3. 내 지역 업체가 Google에 표시되나요?
  4. 모든 기기에서 내 콘텐츠에 쉽고 빠르게 액세스할 수 있나요?
  5. 내 웹사이트는 안전한가요?

2번에서 4번의 경우 사이트의 내용이 적정한가, 서버의 위치가 구글서비스를 하고 있는 곳인가, 기술적 문제는 없는가를 확인하라는 것인데 일부는 운영자 스스로의 객관적 판단이 필요하고 일부는 범위가 모호한 기술적 문제이기 때문에 여기서 설명하지 않는다. 다만 일반적인 상황이라면 1번을 제외한 모든 사항은 만족할 것이다.

1번에 대한 확인은 간단하다.

구글의 검색창에 site:example.com이라고 검색해 본다. 물론 여기서 example.com은 여러분이 운영하는 사이트의 URL이다.

여기서 정상적으로 검색한다면 구글에서 벌써 여러분의 사이트를 크롤링했다는 뜻이다. 따라서 웹사이트를 등록할 필요가 없다.

하지만 검색이 안되면 지금부터 설명하는 데로 등록을 해야 한다.

1. '구글 웹마스터 도구 - Google Search Console'에 방문한다.

2. '시작하기' 버튼을 클릭한 후 새로운 창에서 'URL 접두어' 를 선택한다.

3. '소유권확인'이라는 새창이 뜨면, 'HTML 태그'를 클릭한다. 이때 생성된 메타태그를 복사하고 창은 그대로 놔둔 채로 4번항을 진행한다.

4. 자신의 사이트 index의 head에 복사한 meta tag를 삽입하고 저장한다. (당연한 얘기지만 서버에도 index파일을 교체해야 한다.)

5. 이제 3항의 창에서 '확인'을 클릭한다.

 

이제 구글 웹마스터 도구에 접속하면 대시보드가 보인다. 처음에 데이터가 보이지 않는 것은 크롤링 전이라서 그렇다. 몇일 후 방문하면 각종 데이터를 열람할 수 있다.

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

개발의 원칙으로 자주 소개되는 SOLID, KISS, YAGNI, DRY에 대해 알아본다.

 

KISS ( Keep it simple, stupid. )

바보같은 단순함을 유지해라.

 

YAGNI ( You Ain't Gonna Need it )

필요할때까지 그 기능을 만들지 않는다.

 

DRY ( Don't Repeat Yourself )

같은 일을 반복하지 마라.

 

 

SOLID

S - SRP(Single Responsibility Principle : 단일 책임 원칙) : 하나의 객체는 하나의 역할 만을 담당한다.

O - OCP(Open/Closed Principle : 개방-폐쇄 원칙) : 기존의 코드를 변경하지 않으면서, 기능을 추가할 수 있도록 설계가 되어야 한다.

L - LSP(Liskov Substitution Principle : 리스코프 치환 원칙) : 자식 클래스는 언제나 부모 클래스의 역할을 대체할 수 있어야 한다는 것을 말하며, 부모 클래스와 자식 클래스의 행위가 일관됨.

I - ISP(Interface Segregation Principle : 의존 역전 원칙) : 하나의 커다란 인터페이스 보다 여러 개의 구체적인 인터페이스가 좋다.

D - DIP(Dependency Inversion Principle : 인터페이스 분리 원칙) : 프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,
반응형

CCL은 일정한 조건 하에 창작물의 이용을 허락하는 자유이용 라이센스(License)이다.

 

이용 허가 조건은 다음과 같다.

 

저작자 표시

저작자의 이름, 저작물의 제목, 출처 등 저작자에 관한 정보를 표시하는 조건 하에 자유롭게 이용할 수 있음. ( 문자표기: CC BY )

 

저작자 표시-비영리

저작자를 밝히면 자유로운 이용이 가능 하지만, 영리목적으로 이용할 수 없음. ( 문자표기: CC BY-NC )

 

저작자표시-변경금지

저작자를 밝히면 자유로운 이용이 가능 하지만, 저작물의 변경 없이 사용해야 함. ( 문자표기: CC BY-ND )

 

저작자표시-동일조건변경허락

저작자를 밝히면 자유로운 이용이 가능 하고, 저작물의 변경도 가능하지만, 2차적 저작물에는 원 저작물에 적용된 것과 동일한 라이선스를 적용해야 함. ( 문자표기: CC BY-SA )

저작자표시-비영리-동일조건변경허락

저작자를 밝히면 자유로운 이용이 가능 하고, 저작물의 변경도 가능하지만, 2차적 저작물에는 원 저작물과 동일한 라이선스를 적용해야 하며, 영리목적으로 이용할 수 없음. ( 문자표기: CC BY-NC-SA )

저작자표시-비영리-변경금지

저작자를 밝히면 자유로운 이용이 가능 하지만, 영리목적으로 이용할 수 없으며, 저작물의 변경 없이 그대로 이용해야 함.

( 문자표기: CC BY-NC-ND )

 

반응형
블로그 이미지

DeveloperN

개발자 n의 개발 이야기(draft)

,