728x90

 

ajax는 무엇인가?
ajax는 Asynchronous JavaScript and XML의 약자
자바 스크립트를 사용하여, 비동기적으로 서버와 통신을 하는 방식



비동기식이란?
- 데이터를 가져오는 동안 다른 일을 할 수 있도록 만들어 줍니다.


동기적이란?
- 비동기와 반대로, 작업이 시작되면 그 작업이 끝날 때 까지 지연이 발생하며 완료가 될 때까지 기다리고 있어야합니다.


장점
1) 페이지 이동 없이 빠르게(깜빡임 없이) 화면 전환 가능
2) 서버 처리 시 기다림 없이, 비동기적으로 사용 가능
3) 수신하는 데이터 양을 줄이고, 클라이언트에게 처리를 부탁 할 수 있음

단점
1) 오페라 7 이하, 익스플로러 4.0 이하 브라우저에서는 사용 불가
2) HTTP 클라이언트 기능이 한정
3) 페이지 이동 없는 통신으로 보안 문제 발생
4) 지원하는 Charset이 한정됨
5) 스크립트로 작성되 디버깅이 어렵고 간단하지 않다.
6) 요청 남발로 서버 부화가 발생 할 수 있다.
7) 동일 출처 정책으로 다른 도메인과 통신이 불가능


알고가기
1) Charset란?
데이터를 부호환 인코딩과 관련되어 있다. 글자가 안깨지 해준다.
 - 각 브라우저(크롬, 사파리, 익스플로우)등 여러 브라우저에서 글자가 정확이 보이게한다.
<meta charset=UTF-8/>
2) 동일 출처 정잭이란?
웹 애플리케이션에서 중요한 보안 모델이다.
어떤 출처에서 불러온 스크립트를 다른 출처에서 불러온 리소스와 상호작용을 제한하는 중요한 보안 방식
즉. 경로는 달라도, 프로토콜, 포트(명시한 경우), 호스트가 모두 동일해야 동일한 출처이다.



참조 사이트
https://ko.wikipedia.org/wiki/Ajax
https://ko.wikipedia.org/wiki/%EB%8F%99%EC%9D%BC-%EC%B6%9C%EC%B2%98_%EC%A0%95%EC%B1%85




728x90
728x90

<a>란?
1) anchor의 첫글자입니다.
2) herf(hyperlink)와 앵커를 정의 할 때 사용합니다.
   즉. 이동(링크)을 목적으로하는 속성

3) 속성으로는 href, hreflang, type, target, rel, ping, download가 있습니다.


<a> 속성?
1) href 속성
- 이동하고자 하는 페이지 URL을 지정하거나, 페이지 이동을 제어



href 문법

<a href="URL">


절대 주소

<a href="www.stmsa.com/home.php">


상대주소

<a href="/luno/nosn.png">


구글로 이동하는 링크

<a href="https://www.google.co.kr"> 구글 이동</a> 


상위 폴더 페이지 이동

<a href="main.html">A문서</a>


같은 페이지 상단으로 이동
- 동일한 페이지 내 명시된 id로 이동

 <p id="top">상단입니다.</p>

<a href="#top">top으로 이동</a>


스크립트로 완료 누르면 메세지 박스 내용을 확인 가능

 <a href="javascript:alert('완료되었습니다.');">완료</a>



2) hreflang 속성
- 언어를 참고용으로만 사용합니다.
- href 속성이 있어야지 사용 가능합니다.


hreflang 문법

<a href="URL" hreflang="언어"></a>

예) ko, en, zh



3) type 속성
- 링크한 문서의 타입을 어떤것으로 받을 것인가.

type 문법

<a href="URL" type="타입"></a>



3) target 속성
- 링크한 문서 클릭시 열릴 위치 지정

target 문법

<a href="URL" target="타입"></a>

예) _blank : 새로운 탭에서 오픈
     _self : 현재 프레임에서 오픈
     _parent : 부모 프레임에서 오픈



4) download 속성
- 링크 클릭하면 다운로드 가능하다 

download문법

<a download="URL" download></a>


728x90
728x90

robots.txt는 무엇인가?

내가 만든 웹을 보여주고 싶지 않아! 보호막! 반사!를 통해 로봇의 활동을 저지하는 역활을 합니다.
자세한 설명은 밑에서 할게요.


이러한 웹 크롤링을 하는 로봇은 두가지 부류가 있습니다.
착한 로봇과 나쁜 로봇
그 중에서 robots.txt를 통하여, 웹 크롤링을 하는 착한 로봇들을 관리하여, 원하는 웹을 노출이 되게 또는 노출이 안되게 할 수 있습니다.
나쁜 로봇은 robots.txt를 무시하기 일 수 이며, 금지된 페이지도 크롤링 하려고 합니다.
그래서 나쁜 로봇은 막을 수 없기 때문에, 원치 않는 노출은 최대한 피해야 합니다.

그럼 나쁜 로봇이 크롤링 하는 것은 어떻게 막을까?
그러기 위해서는 일단 로봇의 트레픽 탐지 방법을 알아야 하겠죠!

트레픽 탐지 방법으로는
1) 사람이 할 수 있는 속도보다 더 빠른 속도로 가져간다면
2) 사이트에 머무는 시간이 적고, 바로 바로 이탈이 발생
3) 페이지 로드 시간은 길지만 이탈이 많다면
4) 크로링을 동일한 방법 패턴으로 할 경우
5) 짧은 시간에 동일한 IP 주소에서 많은 요청이 이루어 진다면
로봇이 왔다 갔다는 걸 의심 해 볼 수 있습니다.


그럼 이제 나쁜 로봇이 크롤링하는 것을 막아봐야겠죠?
1) robots.txt 파일을 생성하여 사이트 루트에 위치 시키면 됩니다.
- 예를들면 www.abc.com 사이트일 경우, www.abc.com/robots.txt에 위치합니다.

- .txt 파일안에 작성되야 할 내용은 2줄 입니다. 
   User-agent: 대상 크롤러
   Disallow: 허용하지 않는 경로  또는  Allow: 허용이 필요한 특정 경로
   Crawl-delay: 크롤링을 지연 시킵니다. (매우 짦은 시간동안 사이트에 많은 요청 방지)

예제를 한번 보겠습니다.
   1번                                                      
   User-agent: Googlebot                       
   Disallow: /momo/  

   2번
   
User-agent: *
   Disallow: /

   1번의 경우 이름이 Googlebot라는 크롤러는 www.abc.com/momo/ 폴더와 하위 폴더를 크롤링 할 수 없습니다.
   2번의 경우 Ads bot을 제외한 모든 크롤러는 웹 전체를 크롤링 할 수 없습니다.,

- 확장자는 .txt로 로봇 배제 표준인 일반 텍스트 파일을 사용합니다.


2) User Agents 설정


3) 관리자가 인증한 IP만 보여지는 화면 생성

- 보여지는 화면만 가져가기 때문에, 관리자가 인증한 IP만 볼 수 있는 화면을 만들어, 나쁜 로봇이 들어 올 경우, 빈 화면이 보이게 할 수 있습니다.


4) Sleep을 이용한, 부하 줄이는 방법

- 많은 접속을 하고자 하여 활동하여, 사이트 부하를 받을 수 있습니다.
  그래서 각 서버 접속시 부하를 줄이기 위해 Sleep을 이용합니다.



등 여러가지 방법을 통해 나쁜 크롤러에게 보여지지 않도록 합니다.



▼▼▼도움 받을 사이트▼▼▼

robots.txt 참고 사이트 :  https://support.google.com/webmasters/answer/6062596?hl=ko

robots.txt Crawl-delay 참고 사이트 : https://www.siteground.com/blog/crawl-delay/

robots.txt 파일이 특정 사이트 특성 URL에서 차단 유/무 확인 : https://support.google.com/webmasters/answer/6062598

728x90
728x90

등록 된 IP로 접속한 사용자만 웹에 접속 했을 때, 메뉴가 보여지도록 만들어 보고자 합니다.


흐름은 if문이 참이라면, <div>가 보이며, 만약 거짓이라면, <div>가 보이지 않습니다.

예제.

                  <?php                               

                        $ip = $_SERVER["REMOTE_ADDR"];

                        if($ip == "보여질 IP 주소"){

                                $onoff_login = 'block';

                        }

                        else{

                                $onoff_login = 'none';

                        }

                        print '<div style=display:'.$onoff_login.'>로그인 메뉴</div>';

                ?>


예제 처럼 했을 경우,  아래 처럼 보여지게 됩니다.


2020/06/02 - [Linux] - [PHP] 접속한 IP 주소 확인 방법

728x90
728x90

웹 사이트 방문시 어떤 IP들이 접속하였는지 알 수 있는 방법에 대해 설명 하겠습니다.


1. $_SERVER란?
- php 예약 변수 중 하나
- 서버, 실행환경 정보를 담고 있는 배열


2. $_SERVER["REMOTE_ADDR"]란?
- 웹 서버에 접속 한 사용자의 IP 정보를 갖고있다


3. IP 확인 방법

echo $_SERVER["REMOTE_ADDR"];


728x90
728x90

이미지 등록 방법에 대해 알아 보겠습니다.

간단하니 30초만 투자하세요.


이미지 등록을 하시려면 Properties -> Resources.resx 더블클릭합니다.


이미지를 넣기 위해 이미지를 선택 한 후 폴더에 있는 이미지 파일을 끌어와서 올려주시면 됩니다.


끌어온 이미지는 다음과 같이 Resources 폴더가 생성되고, 그안에 이미지 파일이 들어있습니다.


이 이미지 파일을 사용하려면 <Image Source="/Resources/NEO.PNG"/> 라고 작성을 해주시면 됩니다.


주의점은 이렇게만 하고, 밑 부분을 안하시고 넘어가면 지금은 이미지가 화면에 보이지만 실제 실행화면에서는
이미지가 안보이기 때문에, 꼭 밑에 부분도 적용 하시기 바랍니다.


이미지 파일 선택 후 속성 버튼을 눌러보면 빌드 작업이라는 것을 볼 수 있습니다.

빌드 작업이 없음으로 되어있기 때문에, 이미지를 보실 수 없습니다.


빌드 작업을 선택하여, Resource를 선택합니다.


그러면, 실행 되었을 경우에도 이미지 파일을 보실수 있습니다.

728x90
728x90

본 제품은 자비를 들여, 최소 2주 이상 사용해보고 소개를 해드리고 있습니다.



오늘 소개 해드릴 제품은 임산부 전용 안전벨트로 자동차 타고 이동시 꼭 있어야하는 제품입니다.

왜 임산부 안전벨트는 벨트가 필요 할까?

- 급정거나 원치 않은 사고로 안전벨트가 조여지면, 임산부의 배를 눌러서, 태아를 다치게 할 수 있는 상황을 예방합니다.





설치 방법에 대하여 그림 설명이 되어있습니다.

그림보시면 누구나 다 설치가 가능합니다.


박스를 열어보면 이렇게 포장이 되어있네요. 

깔끔하게 보관 할 수 있게 되어있습니다.



앞 모습은 이렇습니다.

안전벨트를 걸어서 배가 눌리지 않도록 합니다.




옆모습은 이렇게 생겼습니다.

버클에 벨트를 넣고 잡아당기면 고정이 되는 방식입니다.

갈고리 모양이 운전대 방향을 바라보면 됩니다.


설치가 완료 되었을 경우 이러한 모양이 됩니다.

버클에 벨트를 넣고 베트를 당기면 고정이 되며, 세게 당겨야지 옆으로 밀림이 없습니다.

설치는 간편하지만, 임신한 상태로는 허리를 굽히면 때문에 힘들기 때문에 남편분이 해주시면 좋을 거 같습니다.


설치 해보니 주의사항으로는 의자 밑에 전기배선과 커넥터가 있으니 그것만 조심하면 될 거 같습니다.


728x90
728x90

오늘은 배치 파일에 대해 설명하겠습니다.


배치 파일이란?

 > 보통 실행 파일을 자동으로, 연속적으로 실행할 때 유용하며 시스템 관리자가 따분한 일들을 자동화하기 위해 자주 사용

 > DOS부분과 Windows에만 동작합니다.












이제 하나씩 알아가보는 시간을 가지겠습니다.


@echo off

> 명령어 결과만 출력


title Jcode_test.exe

> 제목 입력 할 수 있습니다.


color 17

> 앞에 숫자는 바탕화면을 뒤에 숫자를 글자색을 뜻합니다.

0. 검정색

1. 파란색

2. 초록색

3. 녹색

4. 빨간색

5. 자주색

6. 노란색

7. 흰색

8. 회색

9. 연한 파란색


a. 연한 초록색

b. 연한 녹색

c. 연한 빨간색

d. 연한 자주색

e. 연한 노란색

f. 밝은 흰색


mode con cols=70 lines=20 

> 가로 세로 Size를 의미 합니다.


echo. Jcode가 설치를 진행 합니다.

> 화면에 출력되는 글자입니다.


echo.

echo. Jcode.x86.exe을 열고 있습니다. 기다려주세요.

echo.


pushd "%~dp0"


Jcode.exe


pause

> 아무키나 눌러야지 진행을 합니다. 


echo.

echo. 설치가 되었습니다.

echo.

728x90
728x90

mysql를 사용하면 문자열을 합쳐야 할 경우가 생기기 마련입니다.

그래서 이번에는 문자열 합치기에 대해 알아보도록 하겠습니다.


함수에는 CONCATCONCAT_WS가 있습니다.


1. CONCAT

mysql> SELECT CONCT(str1, str2, ...);


ex) SELECT CONCT('My', 'sql');

> 'Mysql'


ex) SELECT CONCT('My', 'sql', '123');

> 'Mysql123'


ex) SELECT CONCT('My', 'sql', 'NULL');

> 'NULL'

-> NULL이 나오는 경우는 문자열 합치는 값안에 NULL이 들어가 있으면, 무조건 NULL만 나오게 됩니다.


2. CONCAT_WS

mysql> SELECT CONCAT_WS(sepator, str1, str2, ...);


ex) SELECT CONCAT_WS(',', 'My',  'sql');

> My, sql


ex) SELECT CONCT_WS(',', 'My', 'sql', 'NULL');

> My, sql

-> CONCAT처럼 NULL을 넣었지만, CONCT_WS에서는 NULL을 빼고 반환합니다.



728x90
728x90

mysql 사용 중 특정 날짜 조건으로 결과 값을 불러오고 싶었습니다.

그래서 BETWEEN에 대해서 알아보겠습니다.


BETWEEN a AND b

> a와 b를 사이 모든 값 해당 여부를 조건으로 합니다.



SELECT * FROM contacts WHERE contact_id BETWEEN 10 AND 20;


위와 아래는 모두 동일한 조건을 취득합니다.


SELECT * FROM contacts WHERE contact_id >= 10 AND contact_id <= 20;

728x90

+ Recent posts