달력

11

« 2024/11 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

'개발'에 해당되는 글 51

  1. 2017.02.26 MIME
  2. 2017.02.25 POP(Post Office Protocol)
  3. 2017.02.19 SegmentTree(구간트리)
  4. 2017.02.18 SMTP(Simple Mail Transfer Protocol)
  5. 2017.02.18 패턴변경자(정규표현식 옵션)
  6. 2017.02.16 영어문장 정리
  7. 2017.02.12 Cookie
  8. 2017.02.12 Regular Expressions을 공부하자
  9. 2017.02.04 GET / POST
  10. 2017.01.27 HTTP
2017. 2. 26. 09:47

MIME 네트워크2017. 2. 26. 09:47

메일에 텍스트 외에 데이터를 추가하기 위해서 만든 형식으로, HTTP에서 데이터 송수신시에도 이용한다.

여기서 텍스트는 US_ASCII(7bit)만을 표현할 있기 때문에 한글도 MIME형식으로 표현해야 한다.

 

Content-Type )

 - multipart / mixed : 텍스트 본문 + 첨부파일

 - image / jpeg : jpeg 이미지 파일

 - text / plain : 텍스트

'네트워크' 카테고리의 다른 글

TTL / IPv4, I.Pv6  (0) 2017.04.01
Port  (0) 2017.03.11
POP(Post Office Protocol)  (0) 2017.02.25
SMTP(Simple Mail Transfer Protocol)  (0) 2017.02.18
Cookie  (0) 2017.02.12
:
Posted by SK
2017. 2. 25. 17:41

POP(Post Office Protocol) 네트워크2017. 2. 25. 17:41

클라이언트

접속요청 →

메일서버

 

OK

 

 

사용자명

 

 

OK

 

 

비밀번호

 

 

OK

 

 

STAT / LIST / UIDL

 

 

메일 건수, 용량

 

 

메시지 번호

 

 

메일 데이터

 

 

종료 →

 

 

OK

 

 

POP사용시 클라이언트가 메일을 수신하면 서버에 보관된 메일은 삭제된다.

때문에 동일한 메일을 향후에도 확인하기 위해서는 클라이언트  측에서 메일을 보관해야 한다.

, 메일을 다운로드 받은 컴퓨터에서만 해당 데이터를 열람할 있다.

 

만일 어디서든 다른 장치로부터 메일을 읽고 싶다면, IMAP(Internet Message Access Protocol) 사용해야 한다.

IMAP POP 다르게 메일 데이터를 다운로드 받는 것이 아니라 서버 자체에서 읽는 방식으로

메일 전체를 다운로드 하는 것이 아니라 메일 제목만 먼저 보여주고 필요한 선택하여 다운로드하기 때문에, 속도면에서 빠르다

따라서 모바일이나 태블릿같은 이동기기에서 사용하기 적합하다.

클라이언트 입장에서는 데이터 접근과 보관이 용이하나, 서버 입장에서는 POP 비해 부하가 걸리는 셈이다.

'네트워크' 카테고리의 다른 글

Port  (0) 2017.03.11
MIME  (0) 2017.02.26
SMTP(Simple Mail Transfer Protocol)  (0) 2017.02.18
Cookie  (0) 2017.02.12
GET / POST  (0) 2017.02.04
:
Posted by SK
2017. 2. 19. 13:01

SegmentTree(구간트리) 알고리즘-자료구조2017. 2. 19. 13:01

어떤 수의 배열이 주어지고, ex) 1, 4, 5, 3, 2  이 중에서 3번째부터 5번째 수까지의 중 최소값을 구하라는 문제가 있다면, 

일반적인 방법으로는 주어진 구간을 순회하면서 최소값을 찾는 과정을 거쳐야 할 것이다. 

한 두번정도라면 문제가 되지 않겠지만, 기본적으로 시간이 O(n)이 걸리기 때문에 질의가 여러번 들어온다면 시간이 많이 소요된다. 

그에 반해 세그먼트 트리를 구현하면 각 질의에 대해서 O(log N)의 시간안에 답을 구할 수 있다.

구현 방법에 따라, 최소값 만이 아니라 최대값이나 구간의 합 등 다양한 응용이 가능하다. 


https://gist.github.com/woo972/aa4934738624c7f0c1eb708c725a39d4


'알고리즘-자료구조' 카테고리의 다른 글

병합정렬(Merge Sort)  (0) 2017.04.29
:
Posted by SK
2017. 2. 18. 12:10

SMTP(Simple Mail Transfer Protocol) 네트워크2017. 2. 18. 12:10

Client Mail Server 메일을 보낼 사용하는 프로토콜이다.

HTTP 다르게 상태를 가지는 Stateful 프로토콜이기 때문에, 전송종료 명령이 있어야 한다.

 

동작방식은 아래와 같다.

 

클라이언트

접속요청 →

메일서버

 

OK

 

 

Mail from(송신자 주소) →

 

 

OK

 

 

Rcpt to(수신자 주소) →

 

 

OK

 

 

메일 데이터 →

 

 

OK

 

 

종료 →

 

 

OK

 

 

메일 서버간 메일 중계시에도 SMTP 사용한다.

 

SMTP POP처럼 인증체계가 없으므로 스팸메일 등에 악용될 있다.

따라서 POP서버의 인증 기능을 활용하거나, 서버의 SMTP 접근을 제한하거나, SMTP Auth(인증체계가 추가)를 사용해야 한다.

'네트워크' 카테고리의 다른 글

MIME  (0) 2017.02.26
POP(Post Office Protocol)  (0) 2017.02.25
Cookie  (0) 2017.02.12
GET / POST  (0) 2017.02.04
HTTP  (0) 2017.01.27
:
Posted by SK
2017. 2. 18. 11:31

패턴변경자(정규표현식 옵션) 정규표현식2017. 2. 18. 11:31

정규표현식을 테스트해보거나 공부할 때 아래 두 페이지에서 많은 도움을 받았다. 

정규표현식 엔진별로 되는게 있고 안되는게 있기 때문에 일부 제한은 있겠지만 기본적인 것은 무리가 없다.


<Site Link>

- 정규표현식을 시각화 해주는 사이트 : https://regexper.com/documentation.html   

- 정규표현식을 연습할 수 있는 사이트 : http://regexr.com/


텍스트에서 대소문자 상관없이 'THE'라는 단어를 검색한다고 하면, (the|The|THE) 처럼 글자들을 쭉 나열해야 할 것이다. 

그런데 패턴변경자라는 것을 사용하면 이를 쉽게 바꿀 수 있다. 주요 패턴변경자로는 아래와 같은 것들이 있다.


- i : 대소문자 구분없이 검색한다. [a-z]로 검색해도 [a-zA-Z]로 검색한 것 처럼 만든다.

- m : 텍스트를 다중 행으로 취급한다. ^$가 텍스트 전체의 끝이 아니라, 한 행의 끝으로 취급된다.

- s : 메타문자 '.'를 모든 문자에 매칭시킨다. 

- x : 공백문자를 찾지 않고 무시한다.

(이 외에도 여러가지가 있는데, 이정도가 자주 쓰일 것 같아서 나머지는 기재하지 않았다.)


검색하는 패턴 앞에 (?패턴변경자)로 써주거나, ex) (?i)the

패턴 구분자 뒤에 붙여서 사용한다. ex) /the/i


위에 기재한 패턴변경자는 Java, perl, PCRE에서 모두 지원하지만 정규표현식의 다른 부분들도 그러하듯, 

패턴변경자에 따라서는 언어나 엔진별로 되는게 있고 안되는게 있다.(사용법도 각각 가능여부가 다른 듯 하다.) 

예를 들어, Linux에서 grep으로 정규표현식을 사용할때는 보통 확장정규표현식을 쓰는 grep -E '패턴' 텍스트명.확장자 꼴로 쓰는데,

여기에서 대소문자 구분없이 쓰려면 grep -Ei xxxx 처럼 grep 자체에 i옵션을 주어야 한다.

단, grep -P 를 사용하면 PCRE 표현식을 사용할 수 있으므로 grep -P '(?i)the' test.txt 와 같이 쓸 수 있지만 

매뉴얼에도 적혀 있듯이, 아직까지는 실험적인 기능이다. 


 -P, --perl-regexp

Interpret the pattern as a  Perl-compatible  regular  expression(PCRE).
This  is  highly  experimental and grep -P may warn of unimplemented features.

StackOverFlow에도 grep -P 사용시 정규표현식은 맞는데 미스매치가 난다는 질문 글이 있다.
업그레이드 후 해결됐다는 글이 있는 걸로 보아, 아직은 사용할 단계가 아닌 듯.


'정규표현식' 카테고리의 다른 글

수량자  (0) 2017.07.30
sed로 텍스트 바꾸기  (0) 2017.04.28
문자클래스  (0) 2017.04.21
비참조 그룹  (0) 2017.03.05
Regular Expressions을 공부하자  (0) 2017.02.12
:
Posted by SK
2017. 2. 16. 21:54

영어문장 정리 영어2017. 2. 16. 21:54

영어공부를 위해서 <Get Off Your "But"> (Sean Stephenson 저) 라는 원서를 읽고 있다. 가끔 괜찮은 문장들이 있어 따로 정리해 둔다.


1. Most parents pray that their baby will come out with all ten toes and ten fingers.

2. They told my parents to prepare for the worst.

3. Doctors had predicted he would die soon after birth.

4. X-rays showed that it would be quicker to count the number of bones that weren’t broken than those that were.

5. Their greatest gift to me was refusing to lose faith in my survival.

6. They never thought about me in a negative way.

7. Surprisingly, the physical pain of my condition has not been as torturous as the emotional pain.

8. The remaining quarter of everyday I would lie on the floor of my house to rest my back muscles.

9. A sudden wave of sadness filled up my lungs.

10. For a male, there is no greater feeling than knowing that a girl you like likes you.

11. I'll never forget the day my class spent five hours with President Clinton in White House.

12. I was furious, and my mom could see that in my eyes.

13. Standing was also out of the question.

14. I knew what would happen next.

15. Politics took a front-row seat in my life for the next five years.

16. What if this guy next to me tries to grab my arm and shake it too hard.

17. Does any of this sound familiar?

18 As soon as I opened up my private practice, people started coming to see me from far and wide to work on their issues.

19. Many adults like to look at their childhood as if it were an experience that happened long time ago, when they were silly and naive.

20. He gave me his thousand-watt smile.

21. There are many things you won’t be able to do in your life.

22. If your goal is to change the world, you could easily do that as a professional speaker.

23. I’ve been told that I’m different from any other therapist.

'영어' 카테고리의 다른 글

영어문장 정리  (0) 2017.04.16
영어문장정리  (0) 2017.04.03
영어일기-영화 '위대한 개츠비'  (0) 2017.03.20
영어일기-영어 스터디에서의 대화  (0) 2017.03.16
영어일기-정보 공유에 의한 문명 발전  (0) 2017.03.14
:
Posted by SK
2017. 2. 12. 19:46

Cookie 네트워크2017. 2. 12. 19:46

HTTP는 무상태 프로토콜이므로 요청자에 대한 정보를 저장할 수가 없다.

때문에 인터넷 쇼핑몰에서 장바구니에 물품을 담고 그 상태를 유지시키려면, 특수한 방법이 필요하다.

즉, 동일한 요청자에 의한 요청인지 확인해야 하며, 이를 위한 기법으로 쿠키를 사용한다.

 

사용자가 웹서버로 처음 요청을 보내면 웹서버는 응답 시에 쿠키를 함께 보낸다.

여기에는 쿠키의 유효기간, 보낼 사이트 제한 등의 정보가 담겨있다.

  

, 사용자가 웹서버에 다시 요청을 넣게 되면 사용자 측에 있던 쿠키정보가

요청 헤더에 포함되어 전송된다. 웹서버에서 사용자를 구분할 있게 되는 것이다.

보안 정보는 서버에 저장하되 동일 사용자 식별정보 등에만 한정하여 쿠키를 사용해야한다.

'네트워크' 카테고리의 다른 글

POP(Post Office Protocol)  (0) 2017.02.25
SMTP(Simple Mail Transfer Protocol)  (0) 2017.02.18
GET / POST  (0) 2017.02.04
HTTP  (0) 2017.01.27
네트워크(TCP/IP) 계층 모델  (0) 2017.01.21
:
Posted by SK
2017. 2. 12. 18:22

Regular Expressions을 공부하자 정규표현식2017. 2. 12. 18:22

시스템 운영하면서 간단한 정규식은 쓰긴 했었다.

주민등록번호를 검출한다거나, 이메일주소를 체크한다거나, 소수점 3자리까지로 숫자를 제한한다거나...

 

그런데 쓰면 쓸 수록 뭔가 좀 아쉬운 면이 없잖아 있던 것도 사실이고,

조금만 더 공부하면 굉장히 편리한 도구가 될 수 있겠다고 생각했었다.

 

다만, perl을 쓸 수 있는 것도 아니고 sed같은 유닉스 유틸리티도 잘 쓸 줄 몰랐기 때문에 굳이 배울 필요성은 느끼지 못했었다.

 

그러다 우연히 [처음 시작하는 정규표현식](마이클 피츠제럴드 저)라는 책을 발견하게 되었고, 적당히 넘어갈건 넘어가고 알려줄건 알려주는 내용인 듯하여 이를 계기로 좀 더 알아가보고자 한다.

 

'정규표현식' 카테고리의 다른 글

수량자  (0) 2017.07.30
sed로 텍스트 바꾸기  (0) 2017.04.28
문자클래스  (0) 2017.04.21
비참조 그룹  (0) 2017.03.05
패턴변경자(정규표현식 옵션)  (0) 2017.02.18
:
Posted by SK
2017. 2. 4. 12:01

GET / POST 네트워크2017. 2. 4. 12:01

GET 정보 요청 사용되고, POST 정보를 저장하거나 변경 사용한다.

요청 내용은 아래와 같다.

 

GET

GET /serache?query=XXX  HTTP 1.1

Header

>> 결과 웹페이지 URL : http://searchservice.com/search?query=XXX

           * URL 입력폼 내용이 포함되어 있어서 단계 페이지로 이동하거나,

              북마크(즐겨찾기) 등의 기능을 사용할 있다.(정적 웹페이지처럼 다룰 있다)

 

POST

POST /sendform.php HTTP 1.1

Header

Message Body:

name=sample&mail=sample.com

          >> POST내용에 따라 HTTP 상태코드가 201(created), 204(no content) 같은

               나오지 않을까 싶은데...개발할 항상 웹페이지와 DB 바로 확인하기 때문에

               신경 본적이 없다.

 

         * 입력 폼이 GET방식과 달리 육안으로 노출되지 않지만,

             전송 메시지를 해석하면 정보 획득이 가능하다.

             따라서 보안을 위해서는 HTTPS 사용하여 데이터를 암호화해야 한다.


'네트워크' 카테고리의 다른 글

POP(Post Office Protocol)  (0) 2017.02.25
SMTP(Simple Mail Transfer Protocol)  (0) 2017.02.18
Cookie  (0) 2017.02.12
HTTP  (0) 2017.01.27
네트워크(TCP/IP) 계층 모델  (0) 2017.01.21
:
Posted by SK
2017. 1. 27. 20:42

HTTP 네트워크2017. 1. 27. 20:42

HTTP 요청

요청 정보행

 GET /sample/index.html HTTP/1.1

 (GET 디렉토리/파일명 프로토콜 버전)

헤더

HOST:www.sample.com

(HOST 서버 정보)

(웹브라우저 정보)

 

HTTP 요청 시에는 URL 사용한다.

Ex)

Http://

www.

sample.com/

sampl/

index.html

프로토콜

서버명 or 역할

서버운영 조직

디렉토리

파일

 

 

HTTP 응답

요청 정보행

HTTP/1.1 200 OK
(
상태정보)

헤더

(파일 갱신일, 크기 등의 정보)

빈줄

 

메시지 바디

(HTML파일 내용)

   * 상태정보는 100, 200, 300, 400 등으로 나타낸다.


'네트워크' 카테고리의 다른 글

POP(Post Office Protocol)  (0) 2017.02.25
SMTP(Simple Mail Transfer Protocol)  (0) 2017.02.18
Cookie  (0) 2017.02.12
GET / POST  (0) 2017.02.04
네트워크(TCP/IP) 계층 모델  (0) 2017.01.21
:
Posted by SK