본문 바로가기
반응형

분류 전체보기672

브라우저 tab에서 notification사용하기 요즘과 같은 비동기, 실시간 웹에서는 웹에서 업데이트된 소식을 사용자에게 바로바로 전달해야 되는 경우가 많다. 예를 들어 페이스북에 새로운 알림이 있다면 사용자가 페이스북을 보고 있지 않더라도 알림이 왔다고 알려줘야 한다. 이럴때 사용 하는 방법 중 Title을 이용한 notification이 있다. 시간 관계상 바로 full source code 올림 var orgnTitle = "U And I Talk"; var count = 0; var onFocus = true; var title = document.title; function increaseNoti() { if(onFocus) return; count++; var newTitle = '(' + count + ') ' + title; docume.. 2016. 4. 5.
[Unitalk.xyz] nodejs를 이용한 랜덤채팅 프로젝트 http://unitalk.xyz/ nodejs, websocket(module), php, mysql을 이용해 만든 간단한 랜덤채팅 프로그램입니다.연습삼아 만들어본게 제일 크구요, 이런 저런 사람이랑 대화하는걸 좋아하는데 기존의 랜덤채팅이 너무 비매너, 광고, 변태들로 난무하는것 같아 깨끗하게 운영되려면 어떻게 하면 좋을까 싶어서 만들어본 실험적인 프로젝트입니다. 기존의 랜덤채팅과 다른게 있다면 성별을 선택해서 진행된다는 것입니다.본인의 성별, 원하는 상대의 성별을 선택하면 그에 맞는 상대와 연결이 됩니다. 물론 여자를 원하는 남자는 많고 남자를 원하는 여자는 적기 때문에 과부화된 쪽에선 순서를 기다려야 합니다. 이 대기열 시스템은 Queue를 통해 구현되었으며 자신이 얼마나 기다려야 하는지도 화면에 .. 2016. 1. 4.
CentOS환경에 phpMyAdmin 설치 epel Repolist 추가 # yum install epel-release# yum repolist..(생략)..epel Extra Packages for Enterprise Linux 6 - x86_64 ..(생략).. 위와 같이 epel이 확인되면 정상적으로 설치 된 것이다. phpMyAdmin 설치 # yum install phpMyAdmin# service httpd reload웹브라우저에서 http://서버주소/phpMyAdmin 으로 접속 확인 403에러가 떨어진다면 conf파일을 수정해 주어야 한다. # vi /etc/httpd/conf.d/phpMyAdmin.conf core와 setup의 접근 권한이 아래와 같이 되어 있을 것이다.Order Deny,AllowDeny from AllA.. 2016. 1. 1.
iptables 가장 간단한 사용법 하나 리눅스 서버에서 가장 흔하게 쓰이는 iptables. 명령어 종류도 많고 명령어를 사용하기도 정말 복잡하다. 하지만 이런 복잡한 명령어에 의해서 생성된 규칙들은 의외로 간단명료하게 아래 파일에 저장돼 있다. 뭔가 복잡한 새로운 규칙을 추가 하려면 iptables의 명령어를 숙지 해야 할테지만 단순히 이미 사용하던 규칙 그대로 포트 하나만 열어주는 등의 간단한 작업이라면 아래의 방법이 가장 사용하기 쉽다. iptables파일을 직접 열고 수정한 뒤 리스타트 시켜 주는것이다. #cd /etc/sysconfig/#vi iptables(iptables 내용)#service iptables restart#/etc/init.d/iptables save 2015. 12. 22.
CentOS 환경에 nodejs 설치하기 1. node 유저 생성# useradd -m node# passwd node 안전하고 원활한 관리를 위해 nodejs의 권한 자체는 별도의 아이디를 만들어서 이양하는 것이 좋다. 설치는 root아이디로 하고 나중에 권한을 변경하도록 한다. 2. nodejs, 뭘 다운 받을 것인가https://nodejs.org/en/ 에 들어가서 기본적인 릴리즈 정보들을 확인해 본다. 다운로드 전용 URL에 대한 안내도 모두 저 메인 홈페이지에서 확인할 수 있다.그냥 최신 버전을 다운받을 생각이거나 설치하고자 하는 특정 버전을 정해두었다면https://nodejs.org/dist/ 로 바로 들어간다. 모든 버전에 대한 다운로드 경로가 있다.2015년 12월 기준으로 안정버전은 v4.2.3, v5.x.x버전은 지속적으로.. 2015. 12. 22.
height 100%가 제대로 적용이 안될 때 html, body에 모두 height:100% 속성을 준다. 작은 사이즈로 열었다 큰 사이즈로 리사이즈 했을때 height가 100%로 안따라 올 경우 min-height:100% 속성을 준다. 참고 : https://csscreator.com/node/12629 2015. 12. 8.
Javascript는 Call by reference인가 Call by value인가 변수를 넘기면 call by value이고오브젝트를 넘기면 call by reference이다. 비슷한 개념으로, 변수에 오브젝트를 할당하면 변수는 그 오브젝터의 레퍼런스(C로 따지면 포인터?)를 가진다. ex)Q = new Queue();var nowQ = Q;nowQ.enqueue('values'); console.log(nowQ.getList());console.log(Q.getList()); 이렇게 하면 두 로그에서 같은 리스트가 출력된다. 즉, nowQ는 단순히 Q를 할당받는 변수였지만, 변수를 오브젝트처럼 사용하면 원본 오브젝트도 바뀌게 된다는 것이다. http://emflant.tistory.com/64 2015. 11. 21.
분산처리 시스템의 투명성과 구조 분류 분산 처리 시스템의 목적과 장단점 여러 자원을 공유하고 속도 및 용량 등의 효율을 높이기 위한 시스템이다.자원 사용 관점에는 모든 면에서 장점을 가지지만구축의 난이도나 비용적인 측면은 단점이다 분산 처리 시스템의 투명성 투명성(Transparency) : 사용자가 분산된 여러 자원의 위치 정보를 알지 못하고 마치 하나의 커다란 시스템을 사용하는 것처럼 인식하도록 하는 것 위치 투명성 : 분산된 시스템이 어디 있는지는 알 필요 없다. 시스템적으로 알아서 통신해서 돌아가니깐이주 투명성 : 내부적으로 데이터가 이동하는걸 사용자는 알 필요가 없다. 그냥 필요한걸 불러다 사용만 할 뿐복제 투명성 : 내부적으로 데이터가 복제 되는걸 사용자는 알 필요가 없다. 그냥 필요한걸 불러다 사용만 할 뿐병행 투명성 : 병행제.. 2015. 10. 21.
RAID-0, RAID-1, RAID-5, RAID-0+1, RAID-1+0 ※ 이 포스팅은 주로 많이 쓰는 레이드 구성에 대해서만 언급하였다. 거의 모든 구성에 대해 포스팅 된거는 여기를 클릭하면 된다. RAID는 여러개의 하드디스크를 함께 사용하는 방식을 말한다. 속도를 위해 함께 사용 할 수도 있고 안정선을 위해 함께 사용 할 수도 있고 둘다를 추구할 수도 있다. 정말 많은 방식의 RAID가 있지만 대표적으로 쓰이는 몇가지만 알아보자 RAID-0속도 추구만을 위한 레이드 구성이다. 단순히 하드 여러개에 데이터를 분산시켜서 한꺼번에 입출력을 수행하는 것이다. 예를 들면 1~10까지의 숫자를 저장하는데, 하드1에는 1 3 5 7 9, 하드2에는 2 4 6 8 10을 저장한다. 1~10까지의 숫자를 읽고자 한다면 두개의 하드에서 동시에 읽게 되므로 이론적으론 하드가 한개 있는 것.. 2015. 10. 20.
Instruction Set Architecture : RISC와 CISC RISC와 CISC는 개념만 알면 쉽게 구분할 수 있다. RISC의 R은 Reduced이고 CISC의 C는 Complex이다. RISC는 간단한 명령어를 많이 사용해서 명령을 처리하는 프로세서이고 CISC는 복잡한 명령어를 조금 사용해서 명령을 처리하는 프로세서이다. 장단점이 있을 수 있다. 아래 비교 내용을 보면서 그 장단점을 파악해 보자. Reduced Instruction Set Computer (RISC)- 간단한 명령어의 집합으로 이루어져 있다.- 명령어들의 동작이 간단하다- 프로그램을 작성하는데 많은 명령어 사용- 모든 CISC명령은 RISC 명령 조합으로 만들어 낼 수 있다.- CISC명령어 하나 수행할 시간에 몇배의 명령을 실행 할 수 있다.- 호환성이 떨어진다.- 명령어 하나당 하나의 연.. 2015. 10. 20.
BCD코드와 3초과(Excess-3) 코드 BCD 코드는 Binary-coded decimal code라는 뜻이다. 뜻을 보면 알겠지만 BCD는 그냥 BCD이지 BCD 코드라는 말은 쓰지 않는다. 여튼 BCD는 말 그대로 2진수로 표현한 10진수라는 말이다. 11을 2진수로 표기 하려면 1011이라고 표현하는게 일반적인 2진수이지만, 11을 BCD로 표현하면 0001 0001 이다. 이렇게 각 자리의 10진수를 각각 4bit의 2진수로 표현하는게 BCD인 것이다. 8, 4, 2, 1로 이루어진 4bit의 2진수열을 사용하므로 8421코드라도로 불린다. 28192을 BCD로 표현하면? 0010 1000 0001 1001 0010 이 될것이다. 이렇게 10진수를 표현 하는데는 최고다. 아주 옛날 컴퓨터에서 10진수를 편하게 입출력 하기 위해 쓰였다... 2015. 10. 20.
회선 제어 방식(Contention, Polling, Selection) 경쟁(Contention) 방식 회선 접속을 하기 위해 경쟁한다고 해서 경쟁 방식이다. 접속이 되고 나면 송신 요구를 먼저 한 쪽에서 송신권을 가진다. 정보 전송이 종료되기 전까지는 종결이 이루어지지 않는다.결국 싸워서 이긴자가 필요한만큼 쓰고 패배자에게 주겠단 식이다.대표적인 시스템으로 ALOHA가 있다. 위 방식은 주로 포인트 투 포인트 방식에서 사용된다.아래는 주로 멀티 포인트 방식에서 사용된다. 폴링(Polling) 단말기 -> 주컴퓨터Polling이란 '여론조사'라는 의미이다. 두루두루 물어보고 다닌다는 것이다. 이는 주 컴퓨터에서 여러 단말들에게 자신에게 전송할 데이터가 있는지 반복적으로 물어보는 회선 제어 방식을 말한다. 단말기에서 주컴퓨터로 정보를 전송할때 쓰인다. 아니, 정확히 말하면 주.. 2015. 10. 19.
럼바우의 분석 기법 모델링 - 소프트웨어 구성 요소를 그래픽 표기법을 이용하여 모델링하는 기법 - 순서는 객체 모델링, 동적 모델링, 기능 모델링 순으로 이루어짐 1. 객체 모델링(Object Modeling) 정보 모델링이라고도 하며, 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 클래스 다이어그램으로 표현한 것. 가장 중요하며 가장 선행되어야 하는 단계이다. 2. 동적 모델링(Dynamic Modeling) 상태도를 이용하여 시간의 흐름에 따른 객체들 사이의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현 한 것 3. 기능 모델링(Fucntional Modeling) 자료 흐름도(DFD) 를 이용하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정을 표현한 것. 2015. 10. 18.
결합도(Coupling)과 응집도(Cohension) 모듈의 독립성을 판단하는 두 가지 지표이다. 결합도는 모듈과 모듈간의 상호 의존 정도, 응집도는 모듈 내부의 기능적인 집중 정도라고 할 수 있다.좋은 모듈화는 용도에 맞게 잘 구분된 기능을 가신 모듈들로 세분화 하는 것이다. 즉, 개별 모듈은 독립적으로 자신에게 주어진 기능만을 수행하고 명확한 결과값을 내 놓아야 하고 다른 모듈에 의존성이 높아선 안된다. 즉 결합도는 낮을 수록 응집도는 높을 수록 이상적인 모듈화이다. 물론 결합도가 극단적으로 낮고 응집도가 극단적으로 높다고 다 좋은건 아니다. 데이터베이스 정규화와 마찬가지로 이론적으로 이상적일 수록 현실적으로 적합한건 아니다. 상황에 맞게 적절히 낮고 높을 수록 좋은 것이다. 결합도의 종류 자료 결합도 < 스탬프 결합도 < 제어 결합도 < 외부 결합도 .. 2015. 10. 18.
DFD(Data Flow Diagram)와 DD(Data Dictionary) 요구사항 분석에서 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법으로 버블차트라고 부르기도 한다.프로세스, 데이터베이스, 호스트간 자료 흐름과 처리를 중심으로 하는 구조적 분석 기법에 이용된다. 자료 흐름도의 일반적인 모습은 아래와 같다. 호스트와 프로세스, 데이터베이스가 노드이고 간선으로 데이터의 이동을 표현한다. 자료 흐름도상에 있는 자료를 더 자세히 정의하기 위해 자료사전(DD)라는 것을 같이 사용한다. 주문서 파일주문번호 = 주문년도 + 일련번호주문회원 = (회원번호) *회원인 경우만 회원번호*회원등급 = [미등급 | 일반회원 | VIP] *회원이 아닐경우 미등급*주문이력 = {주문서} 이런식으로 된, 데이터를 설명하는 데이터로 메타 데이터(Meta Data)라고도 불린다. 2015. 10. 18.
그레이 코드(Gray code)를 사용하는 이유? 이론적으로 암기한 그레이 코드. 어떻게 만드는지는 알겠지만 왜 이걸 쓰는지 이해가 안갈 수도 있다. 이는 그레이 코드를 죽 나열해 보면 이해하기가 쉬울 것이다. 10진수 2진수 그레이코드 1 00001 00001 2 00010 00011 3 00011 00010 4 00100 00110 5 00101 00111 6 00110 00101 7 00111 00100 8 01000 01100 9 01001 01101 그레이코드의 특징이 보이는가? 2진수와 달리 그레이 코드는 신기하게도 앞의 수와 뒤의 수가 딱 1비트씩 밖에 차이가 안난다. 2진수는 숫자가 커지면 1이 증가함에도 여러개의 비트가 동시가 바뀌어야 하는데 그레이코드는 순차적인 진행이라면 항상 한 비트씩만 바꾸면 되는 것이다. 이런식의 특징은 순차적으.. 2015. 10. 17.
간트 차트(Gantt Chart)와 PERT/CPM 간트차트와 PERT/CRM은 모두 프로젝트의 진척을 관리하는데 도움을 주는 도식화 방법이다. GANTT CHART 간트 차트는 위와 같이 생겼다. 실제로 학교나 회사에서 프로젝트를 진행할때 계획서나 보고서 양식에서 많이 볼 수 있는 차트이다. 달리 설명이 필요 없을 정도로 간단한데 세로축에는 작업들을 나열하고 가로축엔 시간을 표시하여 칸들을 색칠해 주면 된다. 시간선(Time-Line)이라고 쓰기도 하며 일정을 계획하거나 일정이 어떻게 진행되고 있는지 파악하는 용도로 사용할 수 있다. 위 그림은 간단한 모형이지만 부가적인 정보들을 덧붙여 문제 관리 및 예산, 지출관리를 하는데 까지 활용할수도 있다. PERT/CPM 원래 PERT는 미해군이 무기 시스템 개발 프로젝트 진행을 관리하기 위해 만들었고 CPM은.. 2015. 10. 17.
[시험대비] 실무적으로 보는 데이터베이스 설계 순서 데이터베이스의 설계 단계는 아래와 같다 요구 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현 대부분은 이 단계가 구체적으로 뭘 하는 단계인지 모르고 단순암기 하는 경우가 많다. 학교나 회사에서 실제로 여러번 데이터 베이스 설계를 해봤음에도 개념 스키마 설계, 트랜젝션 모델링, 물리적 구조로 변환 등의 용어가 너무 와닿지 않기 때문이다. 이론적으로 먼저 알아보자요구분석 : 요구조건 명세서 작성개념석 설계 : 개념 스키마, 트렌젝션 모델링, E-R 모델 작성논리적 설계 : 스키마 설계, 트렌젝션 인터페이스 설계, 논리적 자료 구조로 변환물리적 설계 : 논리적으로 표현된 데이터를 물리적 저장장치에 저장할 수 있는 구조의 데이터로 변환 무슨 말인지 알아듣기 힘들다. 좀 더 실무적으로 이해해.. 2015. 10. 17.
반응형