본문 바로가기
반응형

분류 전체보기655

원자기호 읽는 법 전자의 수 : 양성자 수 + (- 하전) 2013. 10. 18.
History of Cellular Systems First generation wireless system - Frequency division multiplexing을 이용해서 analog voice전송만 가능하였다. Second generation wireless system - 좀 더 효율적인 사용을 위해 Time division multiplexing을 사용하였다. - 달리는 차량에서도 무선통신을 가능하게 하는데 주안점을 두었다. - SMS 전송이 가능하게 되었다. Third generation wireless system - IMT-2000 : 2000GHz의 주파수 대역을 사용함, 전세계 표준 통일 - Global Roaming이 가능함 - 초당 2mbps의 속도를 지원하며 영상 통화가 현실화됨 2013. 10. 17.
무기 화합물의 명명법 무기 화합물이란 일반적으로 "유기 화합물이 아닌 화합물" 로 정의 된다. 이는 더 쉽게 이해하면 탄소를 골격으로 하지 않는 모든 화합물을 지칭한다고 볼 수 있다. 무기 화합물에는 이온 화합물, 분자 화합물, 산 이렇게 3종류가 있다. 모두 명명 규칙이 비슷하긴 하지만 조금씩은 다르므로 하나씩 알아보기로 하자. 1. 이온 화합물 양이온 원자는 화학 반응시 전자를 잃거나 얻어 양이온, 또는 음이온이 된다. 모든 금속은 전자를 잃고 양이온을 형선한다. 그리고 전부 다는 아니지만 대부분의 비금속은 음이온을 형성한다. 이렇게 이온화된 원소들 끼리는 전자기적 인력에 의해서 화합물을 형성하게 되는데 이를 이온 화합물이라 한다. 대게 금속과 비금속의 결합물이다. 이 화합물을 읽고 쓰는 가장 기본적인 명명법은 아래와 같.. 2013. 9. 18.
1. 물질과 측정 물질의 상태 : 기체, 액체, 고체, 플라즈마(이번 학기에서 다루지 않음) 순물질(substance) - 원소(element) : 더 간단한 순물질로 분해할 수 없는 순물질 (수소, 산소, 철) - 화합물(compound) : 두 가지 이상의 원소로 구성되어 있는 순물질 (물, 소금) H2O는 수소, 산소로 이루어져 있으며 1 : 8 : 9 라는 일정 성분비의 법칙을 가진다. 혼합물 - 균일 혼합물 : 설탕물, 소금물(용액) - 불균일 혼합물 : 나무, 대리석 * 사이다는 용액 같아 보이지만 다른 상(액체, 기체)가 섞여 있으므로 불균일 혼합물이다. * 수소 저장합금은 화학적으로 결합되어 있느 상태이므로 균일 혼합물이다. 혼합물의 분리 - 크로마토그래피가 가장 효과적이다. (여러가지를 한번에 분리 할 수.. 2013. 9. 10.
세션 관련 함수 정리 PHP4 이하 버전과 PHP5 이상 버전의 함수가 다르기 때문에 그 차이를 알고 있어야 정확한 세션 구현이 가능하다. 구형 함수를 사용 할 경우 어떤 서버에서는 아무 이상 없이 잘 동작 하지만, 어떤 서버에서는 경고가 출려되고 어떤 서버에서는 아예 에러를 출력하며 죽어버린다. PHP4부터 PHP5까지 점진적으로 사용이 중단되었기 때문인데 그 경계선은 확실히 모르겠다. 다만 그냥 최신 버전의 함수가 무엇인지 알고 그 방식 대로만 사용하면 된다. 세션의 시작 session_start(); 세션과 관련된 함수를 사용할때 항상 먼저 사용되어야 하는 함수이다. "난 이 페이지 내에서 세션을 사용하겠다" 라고 이해하면 된다. 이 함수가 호출되기 이전에 어떤 형태의 출력문도 있으면 안된다. 세션을 구동 시키는건 헤더.. 2013. 8. 16.
[CSS] 요소 내에서 초과되는 문자열 "..." 으로 자르기 .cut { width:(폭)px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis } 위 모든 옵션이 다 있어야 동작한다. 2013. 8. 10.
[에러노트] Apache: [warn] _default_ VirtualHost overlap on port 80, the first has precedence Error and Solution http://www.cyberciti.biz/faq/warn-_default_-virtualhost-overlap-port80-first-hasprecedence/ 2013. 7. 30.
한글 도메인을 DNS세팅, VirtualHost에 등록하려 할 경우 그냥 하던대로 했는데 안된다. 한글을 제대로 인식하지 못하기 때문이다. 이런식으로 영어가 아닌 외국어로 된 도메인은 퓨니 코드(Puny Code)로 변환해서 등록 해 주어야 한다. Whois 같은 곳에서 도메인 정보를 조회하면 XN-- 으로 시작하는 영어 문자열이 나온다. 이걸 사용해도 되고 아니면 http://domain.blueweb.co.kr/pop_puny.html 와 같이 변환 사이트나 변환 프로그램을 찾아서 써도 된다. 2013. 7. 30.
HTML + PHP 환경의 무료 POS 오픈소스 프로그램 외국 프로그램이긴 하지만 참고가 많이 될것 같아서 가져왔다. http://sourceforge.net/projects/opensourcepos/ 바코드 리더기도 어짜피 스탠다드 인풋이기 때문에 HTML로 구현 가능 하다는것도 알았다. 인터넷 환경이 지금보다 조금만 더 안정적이고 빨라진다면 HTML5를 이용한 괜찮은 POS 상용 프로그램도 만들 수 있을것 같다. 2013. 7. 29.
서버 로그 관리 서버를 직접 돌리는게 처음이거나, 웹 호스팅을 사용하다가 서버 호스팅, 또는 가상서버 호스팅으로 업그레이드 한 경우 직접 log파일을 관리해 주기 시작 해야되는데, 익숙하지 않은 입장에서는 어떻게 해야되는지 모르는 경우가 많다. 우선, 별도의 세팅이 없다면 로그파일은 apache폴더 내의 access_log 에 모든 로그가 다 저장이 된다. httpd.conf 파일을 보면 그 위치를 알 수 있는데 귀찮다면 그냥 find / -name access_log 라고 쳐 보면 된다. CentOS5의 경우 /var/log/httpd/access_log 로 되어 있다. 이 파일만 열어봐도 대략적인 로그는 다 파악 할 수 있다. 어떤 아이피에서 어떤 요청으로 어떤 파일에 접근했고, http 응답이 어떤식으로 나왔는지 .. 2013. 7. 18.
Stable 버전과 Legacy 버전의 차이 Jquery나 다른 라이브러리(플러그인?)을 사용하다 보면 stable와 legacy 두개의 버전으로 배포하는 것을 볼 수 있다. Stable Version 은 최종 버전 중에서 테스트가 완료되고 버그가 수정된 안정된 버전이다. Legacy Version 은 아직 사용이 가능한 예전 버전이다. 최신 버전에서 새로 생긴 기능들은 제공되지 않지만 아직까지 최신 환경에서 사용하기에 문제가 없는 버전을 가리킨다. 예를 들면, 최신 Stable 버전은 IE6, IE7, IE8 에서의 테스트를 중단하고 IE9와 IE10에서만 테스트가 완료된 버전일수도 있다. 이렇게 되면 Stable이라고 하더라도 IE8 이전의 예전 환경에선 제대로 동작이 되지 않을 수 있다. Legacy 버전은 IE6, IE7, IE8, IE9,.. 2013. 7. 14.
삭제 안되는 폴더 강제로 삭제하기 FTP에서 폴더 전체를 지우려고 했는데 유독 안지워지는 폴더들이 있다. 그 폴더를 죽 따라 들어가보면 마지막 하위 폴더에 숨김 파일들이 있는데, 숨김 파일을 지울 수는 있지만 하나하나 지우기 귀찮다. 그럴땐 rm 최상위폴더 -rf 라고 해 주면 폴더 내의 폴더, 그 안의 내용들까지 강제로 싹 다 지워준다. -f : 폴더 안에 파일이 있더라도 강제(force) 삭제 -r : 폴더 안에 하위 폴더들이 있고 그 안에 또 폴더가 있고 개판이더라도 recursive하게 다 삭제. 2013. 6. 18.
인터넷 통신 정리 half-close 1. 소켓의 우하한 종료를 위해선 shutdown함수를 이용한다. 2. 일방적인 close는 다른한쪽에서 전송할 데이터가 남았을때 문제가 된다. DNS in_addr*이 아닌 char*인 이유 : IPv4만을 위해 정의된 구조체가 아니기 때문 IPv6 1. IPv4의 주소 부족 문제를 해결하기 위한 대응책 (NAT, DHCP를 이용한 임시방편에는 한계가 있음) 2. 유무선 인터넷을 이용한 단말기 서비스의 효율적인 지원 3. 취약한 인터넷 보안 취약점 보완 4. 32비트 -> 128비트 주소 사용. 부족문제 근본적으로 해결 (주소에 계층정보, 범위정보 등을 포함할 수 있음) 5. 불필요한 헤더 필드 제거, 헤더 필드 구조의 단순화, 패킷 속도 향상 6. IPv6 패킷 구성 : 기본 헤더.. 2013. 6. 15.
소켓의 다양한 옵션 소켓은 그냥 정해진 함수 3~4개만 쓰면 사용 할 수 있는 편한 것이라고들 인식하지만, 사실 더 깊게 들어가면 정말 다양한 옵션들이 있다. 일반적으로 간단한 데이터 송수신 정도의 프로그래밍에서는 아무것도 건들일 필요 없이 그대로 쓰면 되지만 점점 고급 프로그래밍을 하게 되면 그 특성에 맞기 옵션들을 조작 해 줘야 한다. (조작 안해도 사용 할 수 있지만 조작 해 주면 더 좋은 성능이 나고, 프로그래밍하기도 편해진다.) 소켓의 옵션은 아.주. 많지만 일단 자주 사용되는 몇 가지만 뽑아 보자면 아래와 같다. Protocol Level Option Name 설명 Get Set SOL_SOCKET SO_SNDBUF SO_RCVBUF SO_REUSEADDR SO_KEEPALIVE SO_BROADCAST SO_OO.. 2013. 6. 15.
gcc권한 일반 사용자들에게도 주기 보통 리눅스 프로그래밍 실습을 할때 cygwin이나 vmware을 사용하지만, 남는 서버가 있다면 프로그램 테스트 용으로도 쓸 수 있다. 특히 소켓프로그래밍 쪽이라면 서버가 있으면 좋다. 하지만 대부분의 상용서버는 root만 gcc를 사용 할 수 있게 되어 있다. 이 권한을 일반 사용자들에게도 넘겨 주려면 # ls -l /usr/bin/gcc -rwxr-xr-x 3 root root 63376 2월 18 2000 gcc gcc의 권한을 확인 해 보면 모든 권한이 root에게만 가 있다. # vi /etc/group gcc:x:33:someone1,somone2: group을 편집해서 gcc라는 그룹을 만들어 주고 원하는 아이디를 추가 해 준다. # chgrp gcc /usr/bin/gcc gcc폴더의 의.. 2013. 6. 14.
File System Implement 하드디스크는 page array이다. 메모리와 연관지어서 생각하면 된다. 프로세스를 메모리상에 allocation 하는것과 파일을 디스크에 allocation 하는것은 같은 원리이다. Memory에서는 contiguous allocation 방식이 있었고 non-contiguous인 paging방식이 있다. 하드디스크도 똑같다. 하드디스크엔 추가적으로 한개 더 있다. fopen함수를 쓰면 파일 포인터를 return한다. 이 포인터는 OS에서 정의하는 파일 table의 인덱스정보이다. 파일을 read할땐 실제로는 두개의 자료구조가 열린다. per-process open-file table, system-wide open file table. 일단 system-wide open file table이 한개 열.. 2013. 6. 12.
가상 메모리(Virtual Memory) 이론 및 페이지교체 알고리즘 Virtual Memory 주기억장치의 부족한 physical memory를 보조기억장치를 이용해서 가상으로 늘려 준다. Demand Paging 어떤 것을 하드에 두고 어떤 것을 실제 메모리에 올릴 것인가를 판단하는 기준이다. 여러가지가 있지만 일반적으로 사용되는것이 demand paging이므로 이에 대해서만 설명한다. demand paging은 말 그대로, 어떤 알고리즘에 따라서 미리 올려 두는 것이 아니라 실제 사용되려고 할때(demand 되었을때) 메모리에 올리는 방식을 말한다. 어떻게 보면 무척이나 당연한 이야기이다. 이 방식은 아래와 같은 장점이 있다. Less I/O needed Less memory needed Faster response More users Virtual memory는 .. 2013. 6. 12.
Banker's Algorithm cf. Detection Algorithm Deadlock Avoidance는 거의 뱅커스 알고리즘이 다라고 보면 된다. 이름에서도 알 수 있듯이, 리소스 할당을 돈을 빌려주고 갚은 은행의 업무에 비유하여 고안된 알고리즘이다. 간단하게 예를 들어, 은행에 돈이 1000만원 있다. 그리고 3명의 고객이 은행에서 돈을 빌린다. 은행은 고객이 원하는 돈을 다 빌려 주면 바로 반환 받을 수 있다. 하지만 돈을 다 빌려주기 전까지는 강제로 반환받지 못한다. - 고객1이 총 600만원을 빌리고자 한다. - 고객2이 총 800만원을 빌리고자 한다. - 고객3이 총 400만원을 빌리고자 한다. 지금 현재 상태는 safe하다. 1-2-3, 1-3-2, 2-3-1 등등 모든 경우가 다 가능하다. 한꺼번에 필요한 돈을 다 빌려주고 다시 받은 후 다음 고객에게 빌려주.. 2013. 6. 11.
반응형