목록 Computer Science (93)
Slack으로 Github 알림 받기 / Github 앱 설정하기 팀 프로젝트를 진행하면서 깃헙의 알림을 메일이 아닌 자주 사용하는 메신저로 받을 수 있는 방법을 찾게 되었다. 특히 이슈를 올렸을 때 즉각 확인할 수 있도록 하고 싶었다. 슬랙의 Github 앱을 사용하면 지정한 레포지토리의 이벤트를 알림으로 받을 수 있다. 또는 슬랙 내에서 issue를 close하거나 새로운 이슈를 등록할 수 있다. 특히 레벨3에서 협업 미션을 진행하고 있는 다른 우테코 팀들에게 추천하고 싶어 글을 작성하게 되었다. Github App 설정하기 1. Slack Github App을 추가한다. 2. 알림을 받을 채널을 선택한다. 슬랙 앱 추가할 때 Select Channels 설정에서 알림 받을 채널을 설정할 수 있다. ..
IP 주소가 부족하진 않을까?2018년 말 기사를 보니, 010으로 시작하는 휴대폰 번호의 80% 이상이 이미 사용되어 고갈 시를 대비하고 있다고 한다. IP주소도 비슷하다. 엄청난 양의 노드가 생겼고, 앞으로는 더 많이 생길 것이다. 그렇게 되면 IP 주소가 부족하진 않을까? 서브넷팅IPv4 주소는 네트워크 주소와 호스트 주소로 영역이 분리되어 있다. 32비트 중 일부는 네트워크 영역, 일부는 호스트 영역인 것이다. 이를 서브넷팅이라고 한다. 한 네트워크에 속하는 호스트의 개수를 줄여 라우팅 정보를 줄이기 위함이다. 다음과 같은 상황을 생각해보자. 한 택배 회사가 배송지를 분담하려고 한다. 지금까지는 '시', '구' 단위로만 택배를 처리해야 했다. 지금까지는 그렇게 불만이 없었는데, 어느 날 어떤 구가..
웹 사이트에 접속하는 과정구글에 접속하는 방법은 쉽다. 주소창에 https://www.google.com 만 입력하면 된다. google.com 이 ip주소가 아니라는 건 안다. 우리가 봐온 ip주소는 192.168.151.112 같은 숫자 꼴이었으니 말이다. 이런 google.com, naver.com처럼 ip 주소를 문자로 표현할 수 있도록 하는 서비스를 DNS(Domain Name System)이라고 하고 그 문자열을 도메인이라고 한다. 이번 포스팅에서는 대충 DNS 서버로부터 ip주소를 얻어 서버에 페이지 리소스를 요청하고 응답받는다는 대답 말고, 조금 더 깊게 데이터를 요청하고 응답하기까지의 과정을 TCP/IP 모델의 역할과 함께 설명하고자 한다. 1. 목적지 ip 주소 확인도메인 주소가 입..
질문1. 현재 member의 소속 여부에 대한 처리 이를 테면 "Order" 엔티티 클래스에서, member가 orders에 현재 속하고 있는지 확인하고 만약 그렇다면 해당 Orders에서 member를 제거 후 변경된 member를 추가해야하는 것은 아닌지.public void setMember(Member member){/*if(this.member.getOrders() != null){this.member.getOrders().remove(this);}*/this.member = member;member.getOrders().add(this);} 그렇지 않으면 특이사항 이겠지만, Order의 member를 변경할 때 member.orders에서 문제가 생기지 않은가 싶어서 주석 부분을 패스하신 이..
Introduction구글 검색 시, 엄청난 수의 정보 속에서 어떤 알고리즘으로 자료의 우선 순위를 매겨 사용자에게 보여주는지 궁금하여 알아보다가 좋은 포스트를 발견하여 나름대로 정리해보았다. PageRank구글이 검색 엔진에서 정보의 우선 순위를 할당하는 방식이다. 결과부터 말하면, 페이지의 우선도는 해당 페이지를 링크하고 있는 페이지들의 우선도 값으로 결정된다. 사람을 평가하기 위해, 잘 어울려다니는 친구들을 평가하는 느낌이다. 세르게이 브린과 래리 페이지는 웹 안에서 인덱싱을 통한 기존의 검색 방식이 문제가 있고, 텍스트 그 자체를 통한 검색이 아닌, 하이퍼텍스트를 이용하여 링크 구조와 링크 텍스트를 이용하면 보다 유용한 정보를 제공할 수 있다고 생각하였다. 이 구조를 이용하면 페이지 마다의 영향력..
Disk scheduling - 어떤 알고리즘으로 헤드를 움직여야 가장 효율적인 방식으로 디스크 큐의 request를 처리할 수 있을지에 대한 고민. FCFS (first come, first served) - 먼저 온 것부터 처리하면 간편하고, 공정하지만 다음 요청을 무시한 체 헤드를 왔다 갔다 움직여 비효율적이다. SSTF (shortest seek time first) - 현재 헤드의 위치에서 가장 가까운 위치의 요청부터 처리한다. - 큐에 요청이 계속 들어오고, 한 쪽으로 헤드가 편향되면서 starvation이 발생한다. SCAN - 헤드를 디스크 전체를 스캔하는 방식으로 큐의 작업을 처리해간다. - SCAN, C_SCAN, Look Scan, C_look Scan 방식이 있다. 1. SCAN :..
Disk Sector, Disk Cluster, Disk Block - Sector : 자체적으로 주소를 갖고 있는 스토리지 단위이다. 하드디스크의 섹터 크기는 보통 512byte이고, 소프트웨어적으로 접근할 수 있는 가장 작은 단위가 된다. - Cluster : Sector의 집합으로, 파일을 할당할 수 있는 항당 단위이다. 파일이 할당 될 수 있는 가장 작은 디스크 공간이다. - Block : 운영체제가 디스크를 접근하는 기본 단위이다. 즉 1개 이상의 섹터를 갖는다. 블록 단위의 크기가 커지면 한번에 참조하는 양이 많아지므로 속도는 빨라지지만, 낭비되는 메모리가 많아 메모리 활용에서는 떨어진 성능을 보인다. Allocate and Free - Disk에 파일을 할당하고, 해제하는 방식을 결정한다. ..
Thrashing - CPU utilization 과 degree of mulit-programming은 비례할 것지만 실제로는 그렇지 않다. multi-programming 정도가 커지면서 page in-out 빈도가 늘어나고, 비교적 많이 느린 메모리와 보조 메모리를 사용하는 시간동안 cpu의 활용이 줄어들기 때문이다. 이런 페이지 결함이나 그로 인한 과도한 페이징 작업을 thrashing 이라고 한다. - thrashing은 페이지 수에 크게 의존하고, thrashing만을 생각한다면 global 보다는 local replacement가, 더 나아가 한 프로세스 당 페이지 수를 적절하게 할당하는 것이 좋다. Techniques to handle - thrashing을 예방하기 위해 적절한 수를 할당..