전체 글

초보 개발자의 지식 공유의 장
IP 프로토콜비연결형(Connectionless), 신뢰성을 고려하지 않은(Unreliable) 프로토콜로 인터넷의 대표적인 프로토콜비연결형전송순서를 보장해 주지 않는다.(연결통로가 존재하지 않는다.)비신뢰적 특성흐름제어(상대방이 받을 만큼만 전송) x오류제어(에러/손실 발생시 교정) x혼잡제어(네트워크혼잡도 고려) xIP는 목적지 주소(IP Address)를 기반으로 라우팅(Routing)을 수행한다. 라우팅은 라우팅 알고리즘을 통해 최적의 경로를 선정하여 목적지를 찾아가는 것을 말함IP 단편화(Fragmentation)IP 패킷/데이터그램은 MTU에 따라 단편화가 발생한다.MTU : 프로토콜 데이터부(payload)의 최대크기IP 프로토콜은 비연결형이기 때문에 순서를 보장하지 않는다. 따라서 offs..
ARP/RARP 프로토콜 특징논리적인 주소와 물리적인 주소 사이의 변환을 담당하는 프로토콜2계층에서 노드간의 데이터 교환은 MAC주소를 필요로함ARP 동작방식2계층 브로드 캐스트 주소 ff:ff:ff:ff:ff:ff 로 ARP Request 전송 (IP가 x.x.x.x인 노드의 MAC 주소좀 알려줘) => 동일 로컬 네트워크내의 모든 노드에 전송IP가 x.x.x.x인 노드는 ARP Reply에 자신의 MAC 주소를 담아서 전송******************************************************************************브로드캐스트 주소 - 3계층 (255.255.255.255), 2계층 (ff:ff:ff:ff:ff:ff)다른네트워크의 브로드캐스트 주소를 다이렉..
주요 용어 정리1. Node(노드)- 네트워크에 연결된 장치를 의미 (네트워크에 연결된 컴퓨터를 포함하여 프린터와 같은 주변기기, 라우터, 스위치 등 통신장비 포함)2. HOST(호스트)- 일반적인 Node 중 컴퓨터(PC, SERVER) 노드를 가리켜 호스트라고 표현3. End-Node(종단노드)- 통신의 양 끝단에 해당하는 노드로 최초 송신 노드(최초 출발지)와 최종 수신 노드(최종 목적지)4. Intermediate Node(중계노드)- End-Node 사이에 패킷 중계를 해주는 노드5. Link(링크)- 노드 사이의 패킷을 전달하기 위한 물리적인 통신경로6. sniffing(스니핑)- 도청, 엿듣기, 훔쳐보기 (sniffer => 와이어샤크, tcp dump)7. spoofing(스푸핑)- 속이는..
* syslog 설정 및 관리- syslog API를 이용하여 로그를 남길 수 있으며, API를 생성하면 syslogd(로그데몬)가 syslog.conf 설정파일을 참조하여 로그를 남긴다.(로그파일, 콘솔, 외부서버 로 로그를 남길 수 있음)syslog.conf 구성=> facility.priority;facility.priority;facility.priority;... action(로그파일 위치)514 UDP PORT(syslog 포트) 사용 facility, priority, action의 의미facility- 로그 생성 서비스priority - 로그 수준(Level) Level 내용 emergenecy(emerg) 시스템이 전면 중단되는 패닉 상태, 전체 공지가 필요한 상황System is unu..
* 시스템 로그 설정과 관리Unix - /var/admLinux - /var/log시스템의 /etc/syslog.conf 파일에서 시스템 로그파일들의 위치를 저장하고 있다.시스템데몬로그(syslogd), 메일데몬(sendmail), 웹데몬(https), 네임서버데몬(named), 슈퍼데몬(xinted) 등 다양하게 존재 * 유닉스/리눅스 주요 로그 파일로그파일이 binary 형태로 저장되어 있어서, cat 명령어 사용이 불가하고 특정 명령어를 사용하여 로그를 볼 수 있다. 1. utmp(x) 로그 파일- 현재 로그인한 사용자의 상태정보를 담고 있는 로그 파일- "w", "who", "finger" 등으로 확인 가능Linux : /var/run/utmpUnix : /var/adm/utmpx 2. wtmp(..
FizzBuzz문제 구현하기 1에서 n까지의 숫자를 출력하되 3의 배수는 Fizz라는 문자열을 출력하고, 5의 배수는 Buzz라는 문자열을 출력하고 15의 배수는 FizzBuzz라는 문자열을 출력하는 알고리즘을 작성하라. 12345678910111213141516public static List fizzBuzz(final int n){ List result = new ArrayList(n); for(int i=0; i
이진탐색(Binary Search)효율적인 검색(탐색)기법인 이진탐색에 대해 알아보겠습니다.탐색시 리스트가 정렬되어 있지 않으면 리스트 검색 시 주어진 값을 찾기위해 모두를 찾아봐야한다는 단점이 있습니다. 하지만 정렬된 리스트가 있거나 검색전에 정렬을 수행한 경우 이진 탐색(binary Search)을 사용하면 매우 효과적으로 원하는 값을 얻을 수 있습니다. => 이진탐색은 원소를 일일이 비교하지 않고도 주어진 원소를 찾을 수 있으며, 백만 개의 원소가 있어도 20번 미만의 비교로 주어진 원소를 찾을 수 있습니다. O(logn) 12345678910111213141516171819202122package algorithm; import java.util.List; public class BinarySea..
병합정렬, 합병정렬(Merge Sort)분할정복(divide-and-conquer)의 한 종류인 합병정렬에 대해 알아보겠습니다.컨셉은 리스트를 두개로 나누고 각 하위 리스트를 정렬 후 하나로 합치는 방법입니다.설명보다 그림을 보는게 이해가 더 빠를 듯 싶어서 이해가 쉽게될 만한 그림을 가져왔습니다. (그림 출처 : http://blog.naver.com/k97b1114/140163896337) 병합 정렬의 성능은 O(nlogn)이고 각각의 병합시간은 O(n)이며 각 재귀 호출은 주어진 리스트 숫자의 절반만큼만 발생합니다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647package sort; impo..
#9 정수 배열(int array)이 주어지면 0이 아닌 정수 순서를 유지하며 모든 0을 배열 오른쪽 끝으로 옮기시오. 단, 시간복잡도는 O(n), 공간복잡도는 O(1)여야 합니다. 예제)Input: [0, 5, 0, 3, -1]Output: [5, 3, -1, 0, 0] Input: [3, 0, 3]Output: [3, 3, 0] 0을 오른쪽으로 옮기는 문제이다. 일단, 0이 아닌 수가 들어갈 index를 저장해 둔다.(배열 첫번째인 0부터 시작) 그 후 for문을 돌면서 0이 아닌 숫자가 나오면 해당 index의 숫자와 0이 아닌 숫자와 교환 후 index를 증가시킨다.(숫자가 0일 때는 index를 증가시키지 않아, index가 0의 위치를 가리키게 한다.) 1234567891011121314151..
#8 정수 배열(int array)이 주어지면 두번째로 큰 값을 프린트하시오. 예제)Input: [10, 5, 4, 3, -1]Output: 5 Input: [3, 3, 3]Output: Does not exist. for문을 한번 사용해서 풀어야 한다. 2번 째로 큰 수가 존재하지 않는 경우는 2가지가 존재한다. 원소가 2개가 안될 경우와 모든 원소가 같을 경우이다. 이 부분만 잘 처리를 해주면 쉽게 풀어갈 수 있다. 1234567891011121314151617181920212223public static int solution(int[] array) { if(array.length
깡냉쓰
평범한 개발자 노트