2013 이전/기타

[UNIX] cat 리다이렉션 주의 사항

hagulu 하구루2017.02.25 16:43

간단한 파일 입출력을 위해서 cat을 이용하는 경우가 종종 있을 것이다. 간단한 명령어기 때문에 별 생각 없이 써왔던 명령어였는데, 실수를 통해서 좀 깊이 알게되어 정리 해보려 한다.


 내가 했던 실수는 다음과 같다.
 
 test1.txt 와 test2.txt의 내용을  test3.txt에 저장하려고 하였다.
그런데 실수로 아래와 같이 해버렸다.

$cat test* > test3.txt

위 문장은 풀어서 쓰면 다음과 같다

$cat test1.txt test2.txt test3.txt > test3.txt

 위처럼 자기 자신 까지 포함해서 test3.txt에 저장이 되게 한 것이다. 그래도 test3.txt가 내용이 존재 하지 않기때문에 별 문제없을 것이라고 생각했다. 그런데, 신기하게도 무한 루프가 걸리면서 test1과 test2의 내용이 반복해서 test3.txt에 저장되고 있었다. 무슨일이 일어난 것일까?
 대충 생각하면, 자기자신에게 저장이 되다보니 그럴수도 있을것 같은데, 명확한 이유를 알고 싶었다. 직접 cat명령어의 소스도 찾아서 분석하고, Linux를 잘다루는 친구에게 물어봐가며 어럽게 답을 찾아 내었다.

 cat의 input output 방식의 문제이다. cat에서는 파일을 읽을때, 일정한 byte를 메모리에 읽어와서 파일에 쓰고, 그 나머지를 다시 읽어와서 파일에 쓰는 방식이다. 요쯤 되면 조금 감이 잡히는 분도 있을 것이다. 위의 예로 적용하면 test1.txt test2.txt test3.txt의 내용을 일정 byte를 메모리로 가져와서 test3.txt에 저장을 하게 된다. 그리고 다시 cat은 가져온 일정 byte이후의 내용을 확인하고 가져오려고 할것이다. test1.txt와 text2.txt의 내용은 더 이상 가져올 것이 없으므로 이대로 끝이다. 하지만 test3.txt는 다르다. 방금 test1.txt와 test2.txt의 내용이 써졌기 때문에 처음에 가져왔던 byte(파일이 새로 만들어지기 때문에 0byte) 이후의 내용이 존재한다. 그래서 이를 가져와서 다시 test3.txt에 쓰게 된다. 그러면 또 다시 test3.txt의 내용이 늘어나고 이전에 썻던 byte이후의 내용이 존재하여 이를 계속 반복하게 된다.
 cat이 한꺼번에 모든 파일의 내용을 읽어 올 수 없기 때문에, 일정 byte씩 읽어 와서 일어나는 현상이다.

 그리고 참고로, 위에서도 잠깐 언급했지만 일반적인 '>' 의 리다이렉션은 항상 결과 파일을 새로 생성한다. 그리고 그 생성하는 타이밍은 파일을 읽어서 메모리에 올리기전 가장 먼저 수행된다.
 이를 확인 할수 있는 예로
 test1.txt에 "test1.txt 파일입니다" 라는 내용이 있다고 해도,
 
$cat test1.txt > test1.txt

위와 같이 수행하면 test1.txt의 내용이 사라진다. test1.txt의 내용이 메모리에 올라가기 전에 test1.txt의 파일이 새로 생성되기 때문에 파일은 비어져 버리고 이를 test1.txt에 쓰게 되기 때문에 비어지게 된다.

위 두가지의 cat의 특성만 알더라도 사용하는데 좀더 도움이 되지 않을까 싶다.


신고

댓글

댓글쓰기 폼

2013 이전/기타

옛날 웹페이지를 찾아 보자!

hagulu 하구루2017.02.25 16:40

인터넷을 예전 모뎀시절 부터 사용해 왔다면, 예전 hanmail, empas 등의 예전 웹페이지들이 그리울때가 있을 것이다. 또는 자료 수집이나 참고용으로 예전 90년대 후반 2000년대 초반의 웹페이지가 필요할 때가 있을 수 있다.

 혹은. 백업 해놓지 않았었던, 웹 페이지 관련 리소스를 날려 버렸을때, 기존 웹 페이지가 어딘가 보관되어 있다면, 필요한 리소스들을 얻어 낼 수 있을것이다.(본인 체험)
 
 놀랍게도 이를 저장해 놓고 기록하는 곳이 있다. 도메인을 연결만 해놓은 것이 아니라, 리소스를 저장하고 이를 기록해 놓고 있다. 무려 1996년 이후부터 기록이 되어 보관중이다. 웹 페이지 설명에서는 무려 240 billion(2400억)의 페이지가 보관되어 있다고 한다.

이곳이다. 유명한 몇몇 사이트 뿐만 보관하는 것이 아니다. 본인이 2000년도 초반 학창시절에 재미로 만들었던, 추억의 hihome 홈페이지도 보관이 되어 있다. 예전에 만들었다가 보관해놓지 못했던 페이지가 있다면, 한번 재미삼아 찾아보는것도 좋을 것 같다. 찾는다면, 그때의 추억이 새록새록 떠오를 것이다.

사용법은 간단하다.



페이지에 접속하여 위 사진에 표시된 부분에 주소를 입력하면 다음 화면 처럼 수집된 기록과 함께  표시되고 수집된 날짜를 선택하면 그때의 페이지를 볼수가 있다.







국내 인터넷 초창기에 가장 많이 사용되었던 야후 코리아 페이지 이다.



무려 구글의 베타 시절 모습도 볼수 있다.




다음의 모태가 되었던 한메일의 모습이다.



네이버의 초창기 모습도 볼수있다.

일부 소실되거나 제대로 나오지 않는 리소스들도 있지만, 그때 페이지를 기억하는데는 크게 문제가 없는 수준이다.  지금 보기에는 촌스럽고 텍스트 위주였지만, 그때 당시에는 너무나도 신기하고 놀라운 세상이었다. 여러분들이 기억하는 페이지를 통해서 시간여행을 해보는 것도 재미있을것 같다.


신고

댓글

댓글쓰기 폼

2013 이전/기타

손쉽게 개발서버 구축하기

hagulu 하구루2017.02.25 16:24

예전에 우분투 환경에서 웹서버를 구축하고 이용을 하였었다.


그때 당시 필요에 의해서 ruby on rails 와 redmine을 셋팅하려고 하였는데.. 몇일을 삽질하다가 포기한적이 있다.

리눅스 셋팅에 아직 서투른가보다 하고 고배를 마셨다가,

최근 다시 필요로 해서 Mac환경에서 Redmine을 설치하려고 하였다.

Mac은 더 어려우면 어쩌지하고 찾아 보고 있다가 엄청난 것을 발견하였다.

바로 Bitnami 라는 프로그램이었다.


위 링크를 보면 알겠지만 redmine을 비롯해서 서버 개발자들이 좋아하는 툴들이 모아져 있다.

해당 툴들을 이용하기위한 모든 설치와 셋팅을을 간단한 설치 하나로 해결해 준다.  

더욱 엄청난 것은 윈도우, 리눅스, 맥OS 등의 os에 설치 파일을 제공할 뿐 아니라 vmware을 위한 이미지와 cloud Amazone machine 에서 사용할 수 있는 Amazon AMI 또한 제공해준다.

게다가 일부 메뉴는 설명에 한국어까지 지원되니.. 감격일 따름이다.

본인의 경우 redmine에 mysql, php, svn 등 패키지로 설치가 되어, redmine만 사용하려다가 svn 까지 적용해서 사용하게 되었다.

그외에도 많은 서비스와 툴들이 숨어 있으니 한번 훑어 보는것도 좋을것 같다.



신고

댓글

댓글쓰기 폼

2013 이전/기타

내 도메인을 활용한 무료 ddns 설정 dnsEver

hagulu 하구루2017.02.25 16:23

유동 ip를 사용하는 집에서 서버를 이용하려면 언제 바뀔지 모르는 ip 때문에 힘든점이 많다.


이떄 사용하는 것이 ddns 라는 방법이다.

ddns에 대해서는

http://terms.co.kr/DDNS.htm 를 참조해 보기 바란다.

일반적으로 공유기에서 제공해주는 기능을 이용하는 것이 간편하다.

ipTime의 경우 아래의 링크를 확인해 보기 바란다.


하지만 자신의 도메인을 이용할 수 없어서 그닥 땡기지가 않는다.

일반적으로 호스팅을 사용하는 사용자는 dns를 이용해서 ddns를 활용할 수 있는 방법이 없기때문에 한계가 있다.

그러던 중 알게된 무료! 서비스를 하나 소개하려고 한다.

dnsEver 라는 곳인데, 간단히 이야기 하면 간단한 dns를 제공하고 웹으로 손쉽게 셋팅을 할 수 있게 해주는 서비스다.

주소는 http://dnsever.com 이다

무엇보다 좋은것은 ddns를 제공하고, 해당 ip를 http 리퀘스르를 통해서 쉽게 변경 할 수 있다.

즉, ddns를 자동화 하기가 쉽다는 것이다.

심지어는 윈도우에서는 자동화 프로그램까지 배포 하고 있다.

기본적인 사용 방법은 아래 링크에 너무나도 잘 설명되어 있다.



나같은 경우 지금 보고 있는 블로그는 cafe24의 호스팅을 hagulu.com으로 유지하고

ddns로 mini.hagulu.com을 추가하여 이용하도록 설정하였다.


이를 위해서는 먼저 도메인의 네임 서버를 dnsEver에서 제공해주는것으로 교체를 하고,





메뉴 중에서 호스트 ip 관리를 통해서 메인 ip를 등록하고(본인의 경우 cafe24 내 ip),

다이나믹 dns 관리를 통해 위에 링크에서 설명하는데로 설정해주면 된다.

기존에 메일을 다른쪽으로 돌려서 쓰고 있더라도 메일서버(MX)도 가능해서 걱정할 필요가 없다.

이외에도 위에 보이듯이 여러 작업을 할 수 있으며

 현재, 웹 포워딩 외에는 모두 무료로 사용 할수 있다.


네임서버를 변경하면 몇일은 안정적이게 도메인이 작동하지 못하니 이점은 고려하고 작업을 진행해야 할것이다.


신고

댓글

댓글쓰기 폼

2013 이전/기타

iOS6의 화려한 변신은 국내 사용자에겐 그림의 떡(?)

hagulu 하구루2017.02.25 16:15

 한국시간 9월 20일 iOS6가 정식 출시 되었다.
그에 맞추어 전에 썼던 글을 수정해 보았다.
베타 때와 달라진점과 그래도 여전히 부족한 점에 대해 중점적으로 소개해 보겠다.


이번 iOS6에서 중점적인 부분은 구글 맵을 버리고 새롭게 도입한 맵과 좀 더 다양한 기능이 추가된 시리 이다.

먼저 맵, 발표할때만 보더라도 우와~ 우와~ 하면서 보았다. 3D형식의 일반 맵과 FlyOver라는 심시티 스러운 뷰들이 놀라울 다름이었다. 더군다나 tomtom의 네비게이션 기능까지 추가되어 화려하고 완벽한 지도앱으로 탈바꿈 되었다.


베타 때보다는 생각 보다는 많은 것이 지원되었다. 일단 독도! 가 제대로 표현이 되었고, 턴바이턴 네이게이션이 국내에서 동작을하고, 도로명과 상호가 한글화 되었다.

 하지만, 아직도 세세한 골목길같은 길이 표시가 미흡하고, 특히 지방의 경우는 그 정도가 심각하다. 그리고 건물들의 표시가 전혀 되어 있지 않아서 보기에 불편하다. flyover 기능은 전보다 더 악화 되었다. 확대비율이 현저하게 줄어서 위성 지도는 사용하기 조차 힘들어 졌다. 또한, 턴바이턴 네비게이션은 간결하기는 하지만 국내 네비게이션 앱에 길들여진 사용자들에게는 불편하게 다가올 것이다.

앞으로 지도가 좀더 상세하게 되길 바랄 뿐이다.


        







이덕에 다음맵과 네이버 맵의 사용률이 좀더 많이 높아질 것으로 보인다.
기본 맵을 사용하는 앱들은 머리가 아파질 문제이다.


 다음은 시리,
 드디어 고대하던 한국어 지원이 들어 왔다. 내가 밤잠을 설쳐가면서 이번 WWDC를 지켜 본 이유도 이 기능에 대한 기대 때문이었다. 게다가 시리는 업데이트 되어서 좀더 많은 정보를 시리를 통해서 얻을 수 있게 되었다. 스포츠 스코어를 확인한다던가, 선수의 정보를 찾고 비교 한다던지, 영화 시간표, 영화 정보, 예매등을 시리로 손쉽게 확인 할수 있게 되었다. 또한 yelp를 통해서 레스토랑 정보를 얻고 예약 까지 가능하다고 한다. 위에 설명한 새로운 맵의 네비게이션 기능 또한 시리로 이용 가능하다. 참으로 반가운 소식이 아닐수 없었다.





 하지만!
 이 역시 시리의 기능은 제한적 일수 밖에 없다. 이번에 새롭게 지원되는 기능들이 모두 미국의 중심으로 이루어진 내용들이다. 국내에서는 사용할 수 없는 정보들이다. 기대를 많이 한것인지 생각보다 말을 못 알아 듣고, 억양에 따른 질문과 명령을 구분하지 못하는것으로 보였다. 베타때 보다는 좀더 나아진 것을 보였지만, 그래도 아직 인식의 문제가 심하다. 특히, 시리는 음성을 곧이 곧대로 변환하는게 아니고, 명령과 유사한 발음일경우 그 명령으로 교체하여 해석한다. 즉 인식률을 높이기위한 방법인데, 한국어의 경우 아직 제대로 자리잡지를 못한 상황이라 도리어 이때문에 인식률이 더 떨어진다. 시리가 인공지능으로 계속 발전한다고 하니 많이 사용해서 인식률이 빨리 높아 졌으면 하는 바람이다.


 다음으로 passbook 이라는 전자 지갑 앱이 새로 생겼는다. 베타 때만 해도 이 서비스가 국내에 사용이 될까 했지만, 최근 http://mypassbook.co.kr 이라는 사이트가 생겨서 이 앱을 이용한 서비스를 준비 중이다. 거래처를 모집하고, 안드로이드도 사용할수 있도록 준비 단계인 것 같은데, 외면 받지 않고 활성화 되었으면 하는 바램이다.






 그외에 페이스타임이 와이파이 이외에서도 통화가 가능하도록 변경되었지만, 현재 국내 통신사들이 3G/4G를 이용한 통화에 매우 소극적이어서 제대로 이용될수 있을지는 의문이다.
 베타 때에 비해서 조금 나아 지긴 했지만 이번 iOS6는 특히 미국 위주의 업데이트가 많은것 같아서 안타까울 따름이다.


신고

댓글

댓글쓰기 폼

2013 이전/기타

[클라우드 서비스] 클라우드 서비스별 장단점

hagulu 하구루2017.02.25 16:09

오늘부로 소문만 무성했던 google Drive 서비스가 미국을 시작으로 본격적으로 시작되었다.

한국에 정식 서비스는 5월 3일 부터 시작된다고 한다.
덕분에 지금 https://drive.google.com/start 를 들어가면 404 Not Found 에러가 보여진다.
단, 방법이 있는데
google 계정으로 로그인 후에 언어를 영어로 설정해주면 페이지가 보여진다.
그랫더니 "Your Google Drive is not ready yet" 라는 메시지가 나와서 조용히 기다리는중....
내가 요녀석을 목빠지게 기다리는 이유는... 은근히~ 딱 맘에 드는 클라우드 서비스가 없다..
그래서 간단히 클라우드 서비스의 장단점을 다분히 주관적으로 정리해보려고 한다.

Drop box
세계적으로 가장 많은 사용자를 가지고 있는 클라우드 서비스 이다.
장점 - Mac OS, windows 클라이언트가 일반 디렉토리와 싱크가되어 사용이 편리하다.
현재 써본 iPad 앱중 직관성이 가장 뛰어나다.
iPad 앱 사용시에 다른 앱과 연동이 되어서 활용도가 높다.
단정 - 기본 무료 제공 용량이 2기가 밖에 되지 않는다.
한국에서 속도가 너무 느리다.

Sky Drive
MS 에서 만든 차세대 Windows 를 겨냥한 클라우드 서비스
장점 - Mac OS, windows 클라이언트가 일반 디렉토리와 싱크가되어 사용이 편리하다.
iPad 앱 사용시에 다른 앱과 연동이 되어서 활용도가 높다.
단정 - 최근 25GB에서 7GB로 기본 용량을 줄였다.
한국에서 속도가 너무 느리다.
UCloud
KT 에서 서비스하는 클라우드 서비스
장점 - KT 이용자는 50GB라는 큰용량을 제공해준다.
전송 속도가 빠르다.
단점 - PC용 클라이언트 사용이 불편하다.
로그인등 접속이 원할하지 못한경우가 있다.
iPad 앱에 다른 앱과 연동이 되지 않는다.

Daum Cloud

daum 에서 서비스하는 클라우드 서비스
장점 - Mac OS, windows 클라이언트가 일반 디렉토리와 싱크가되어 사용이 편리하다.
전송 속도가 빠르다
50GB라는 대용량을 무료 제공한다.
단점 - iPad 앱이 없다
iPhone 앱이 있지만 다른 앱과 연동이 되지 않는다.

N드라이브
Naver 에서 서비스하는 클라우드 서비스
장점 - 속도가 빠르다
30GB라는 대용량을 제공한다.
단점  - PC 클라이언트가 불편하다.
iPad 앱에 다른 앱과 연동이 되지 않는다.


주절 주절 몇가지를 정리해 보았는데,
외국 서비스는 플랫폼에 잘대응하고 사용이 편리한대신에, 외국 서비스라 전송속도가 느리고, 용량이 적다.
국내 서비스는 용량이 크고 속도가 빠른 대신에, 여러 플랫폼에 대응이 미흡한 점이 있다.
결론은 용량 크고 속도 빠르고 여러 플랫폼에 대응 하는 서비스가 필요하다 ㅠㅠ
그래서 구글에 용량이 좀 부족하더라도 기대를 걸어 보고 있는 상황이다.
정식적으로 한국에 서비스가 진행된다고 하니 속도도 어느정도 기대해 볼만하기 때문이다.
구글 특성상 플랫폼 지원도 깔끔하지 않을까 예상해 본다.
- 추가
구글이 최근 새로운 사용자 약관이 추가 되었는데 (아래 인용 참고)
그에 따르면, 사용자가 올린 컨텐츠에대한 권리를 구글또한 가지게 된다.
서비스의 질을 높이기위한 것이라고는 한데, 이런 방식을 처음 접한 사용자는 흠짓 놀랄만한 내용이다.
과연.. 어떻게 흘러갈지 궁금한 대목이다.
When you upload or otherwise submit content to our Services, you give Google (and those we work with) a worldwide licence to use, host, store, reproduce, modify, create derivative works (such as those resulting from translations, adaptations or other changes that we make so that your content works better with our Services), communicate, publish, publicly perform, publicly display and distribute such content. The rights that you grant in this licence are for the limited purpose of operating, promoting and improving our Services, and to develop new ones. This licence continues even if you stop using our Services (for example, for a business listing that you have added to Google Maps).(이번에 새롭게 만들어진 약관)


신고

댓글

댓글쓰기 폼

2013 이전/기타

Syntax highlighter 3.x 자동 줄 바꿈

hagulu 하구루2017.02.25 16:02

블로그에 소스를 공유하다 보니 Syntax highlighter를 설치하여 사용하게 되었다.


그런데 최신 버젼인 3.x 을 설치하였는데, 다른곳에서 쉽게 볼수 있던, 자동 줄바꿈이 되지 않았다.

셋팅이 바꼇는지 확인해보고 googling을 해보았는데,

결론은..

3.x 대에서는 기본적으로 자동 줄바꿈이 되지 않고 가로 스크롤이 생겨 버린다.

issue로 등록되었는지는 확인 되진 않았지만 지금 나온 최신 버젼까지는 지원이 안되는것 으로 확인되었다.


그래서 결국 2.x 으로 설치하여 지금은 사용중이다.

줄바꿈이 꼭 필요하다면 2.x 최신버젼을 사용해 보기 바란다.


단, 3.x 에는 2.x에서 문제 였던 선택할때 line 번호까지 선택되던 문제가 해결되어 있다.

 
따라서 버젼 선택은 사용자의 판단에 맡기겟다.


신고

댓글

댓글쓰기 폼

hagulu.com

.....

VISITED

Today : 103

Total : 119,814

Lately Comment