목록전체글보기 (25)
지니워의 일상다반사
1. Nullable형식이란? - 0이 아닌 비어 잇는 변수, 즉 null 상태인 변수를 쓰고 싶을 때 사용 - 비어 있는 상태가 될 수 있는 형식 [데이터형식? 변수이름;] 으로 사용 가능 ex) int? a = null; double? b = null; 2. HasValue와 Value 속성 - HasValue 속성은 해당 변수가 갑을 갖고 있는지 또는 그렇지 않는지를 나타냄 - Value 속성은 변수에 담겨 있는 값을 나타 냄 ex)int? a = null;Console.WriteLine(a.HasValue); // a는 null이므로 False를 출력a = 10;Console.WriteLine(a.HasValue); // a는 10을 갖고 있으므로 True 출력Console.WriteLine(a...
저번에 이어 sendmail에 대하여 포스팅을 해보겠다. 서버에서 직접 메일을 발송하는 방법으로는 저번에 언급했던 telnet을 이용한 방법이 있다.(글 보러가기) telnet은 최근에 간단한 테스트를 진행하는 이외의 용도에는 크게 사용되고 있지 않은 추세이기도 하고 워낙 오래된 프로그램이기도 하기에(Linux 설치시 기본패키지에 포함되지 않는 경우가 많다.)생소한 유저들도 많을 것이다. 사용 방법도 번거롭기도 하고...그래서 메일을 발송하는 또다른 방법을 이번 포스팅에서 다뤄볼까 한다. * shell에서 mail 쉽게 보내기 - shell에서 'man mail'을 치면 mail의 옵션값에 대한 세세한 설명들을 볼 수 있다...라고 하지만 그 내용이 상당히 많고 지금 당장 불필요한 내용들도 많기 때문에,..
리눅스에서 주로 사용하는 메일 패키지는 sendmail이다. sendmail은 널리 쓰이는 만큼 취약점도 해커들에게 많이 노출이 되어있다. 그 때문에 보안 부분이 강화 된 qmail도 쓰인다고 하지만 아쉽게도 qmail을 직접적으로 접해보지는 못했다. sendmail 처음 접했을 때는 가볍게 접근할 수 있지만 알면 알수록 어려운 프로그램임에 틀림없다. 설정파일인 sendmail.cf를 열어보면 default 값으로 설정파일의 Line이1838이나 되며 직접적으로 서비스를 이용하는데 큰 불편은 없지만 해킹에 대한 대비라던가 보안관련하여 세팅값을 바꾼다던가 하는등의 세세한 설정값들이 많은 편이기 때문에 숙련된 SE라도 sendmail의 세부세팅에 관해서는 잘 모르는 경우가 많다. 현업에서 sendmail을 ..
이것이 레디스다! 대용량 DB를 다루면서 불편했던 점, 혹은 잠재적인 불안요소로 작용하던 문제가 있었다. 아마 DB를 전문적으로 다뤄본 사람들이라면 한번쯤 생각해 보았을 만한 문제일거라 생각하는데 바로 'DB의 규모가 커질수록 Query time이 오래 걸리고 안정성면에서 취약점이 발생한다' 는 점이었다. 이는 현재 거의 모든 곳에서 주력으로 사용하고 있는 RDBMS가 가지는 고질적인 문제중 하나로 실제로 2000년 중후반부터 꾸준히 제기되어 오던 문제중 하나이다. 이러한 문제를 해결하기 위한 방안으로 in memory 기반의 memcached가 나오기도 했고 NoSQL이 나오기도 했다. 그리고 이 두가지의 특징을 모두 가지고 있는 redis도 존재하고 그외 많은 모델들이 존재하지만 전부 사용해보진 않았..
CentOs에는 ls 명령어에 time-style라는 옵션이 있다.(5.x의 버전에도 있는 것으로 보아 생긴지는 오래된 듯 하다.) 이 옵션은 옵션명에서도 느껴지듯이 파일의 날짜와 시간이 출력되는 방식을 설정할 수 있다. 자세한 것은 man ls 명령어로 찾을 수 있지만 귀차니즘이 있는 분들을 위해 아래에 적어놓겠다. --time-style=STYLE with -l, show times using style STYLE: full-iso, long-iso, iso, locale, +FORMAT. FORMAT is interpreted like ??date??; if FORMAT is FORMAT1FORMAT2, FORMAT1 applies to non-recent files and FORMAT2 to re..
개발자에게서 crontab 등록 요청이 왔다. php파일을 주기적으로 실행해 달라는 요청이었는데 솔직히 이 부분을 잘 몰라서 살짝 고민했으나 구글링의 도움으로 해결했다. ================================================================================ * 서버에서 php 실행하기 - php 관련 패키지 중 php-cli라는 패키지가 있다. 이는 php-CommandLine, 즉 command line에서 php를 실행할 수 있게끔 해주는 패키지로써 이 패키지가 설치되어 있다면 crontab에 php 'php파일 절대경로' ex) php /home/good/script.php 로 설정해주면 된다. ==========================..
약 3일전부터 마스터 DB쪽에서 실행되는 쿼리들의 이상현상이 보이면서 회사가 발칵 뒤집어졌다. 원인을 찾아보기위해 이것저것 찾아보고 뜯어보고 고민해보고, 최후의 수단으로 서비스를 잠시 중단하고 서버 자체를 재부팅했음에도 불구하고 이상증상이 계속 되었던 것이다. (자세한 이야기는 차후 포스팅에서 이야기하겠다.) 여차저차해서 서비스의 메인을 담당하고 있는 서버 한대를 재설치하게 되었다. 직접적으로 서비스에 관계되는 서버인지라 IDC에 연락하여 급하게 os 재설치를 요청했고 재설치가 완료되자마자 서버설정에 들어갔다. "어라?" yum update가 되지 않는다. 뿐만 아니라 ping 테스트도 아웃바운드 ping이 안되는 것이다. yum update를 실행하면 pycurl error 6 - couldn't re..
authentication : 입증 웹서버를 다뤄본 사람이라면 친근한 단어일 것이다. 풀신텍스는 아니더라도 'auth'라는 단어는 꽤 익숙한 단어일 것이다. authentication(이하 줄여서 auth)는 웹 상에서 특정경로나 파일에 접속하려고 할 때 거쳐야 하는 인증과정이라고 볼 수 있다. auth는 다음과 같은 경우에 자주 쓰인다. web root는 /home/public_html이고 /home/public_html/admin 에는 관리자 권한이 있는 유저들만이 접근이 가능해야 한다. 이럴 경우 인증과정을 거쳐서 관리자 권한이 있는 유저들이 접근 가능하게 해주는 것이 바로 auth이다. nginx의 auth설정 방법은 아파치와 비슷하지만 .htaccess 파일을 생성하는 과정이 없기 때문에 오히려..
어제 두대의 서버를 새로 입고하여 설치를 진행했다. 웹서버와 DB서버였는데 두대의 세팅을 고객사의 요청에 따라 세팅을 마무리했다. 그중 웹서버에 대한 추가 요청이 들어왔는데 ftp서버를 구축해 달라는 것이었다. 흐음... 그러고보니 난 리눅스에서 ftp서버를 따로 구축해 본적이 없다. 이미 서비스가 구축되어 있는 서버에 ftp client를 이용하여 사용만 해봤을 뿐, 직접 구축해 본적이 없었기 때문에 "전 ftp 서버를 구축할 줄 모르니 이 요청은 거부하겠습니다." 라고 대답했...다면 아마 백수가 되었을 것이다. 몰라도 어쩌겠는가?하라면 해야지. 일단 구글에서 검색을 해보니 리눅스에서 vsftpd를 최근에 많이 사용한다고 한다. 그리고 친절하게 설치하는 방법이랑 간단한 세팅방법까지.(사실 세팅 방법이..
이번 포스팅은 제목 그대로 DNS가 헷갈린 이야기다. 엄밀히 이야기해서 DNS의 개념에 대해 헷갈린 이야기라고 할까? 이번에 관리하는 서버가 늘어나고 관리영역 또한 신규로 늘어나는 부분이 생겼다. 그에 맞추어 어제 DNS 설정에 대한 지시를 받았는데 내가 알고 있던 DNS의 개념과 약간은 다른듯해서 의문점이 생겼다. 서버단에서 DNS설정이란 간단하게 이야기해서 nameserver를 설정하는 것으로 /etc/resolv.conf에서 설정하는 값을 이야기한다. bind를 설치하고 어쩌고 저쩌고는 뒤로 하고서라도 간단하게나마 저런 개념으로 알고 있었는데 이 아이피를 이 도메인으로 연결되게 하라는 등의 이야기가 나와서 좀 당황했다. 모르는게 있으면 검색하고 그래도 모르면 업무지시자에게 물어보라. 배움에는 부끄러..