분류 전체보기
-
JAVA 디자인 팩토리 패턴JAVA 2019. 12. 30. 17:45
추상 팩토리 패턴 ( Abstract Factory Pattern ) 추상 팩토리 패턴이라는 이름만 봐서는 팩토리 메서드 패턴과 비슷해보이지만, 명확한 차이점이 있습니다. 팩토리 메서드 패턴 조건에 따른 객체 생성을 팩토리 클래스로 위임하여, 팩토르 클래스에서 객체를 생성하는 패턴 ( 링크 ) 추상 팩토리 패턴 서로 관련이 있는 객체들을 통째로 묶어서 팩토리 클래스로 만들고, 이들 팩토리를 조건에 따라 생성하도록 다시 팩토리를 만들어서 객체를 생성하는 패턴 추상 팩토리 패턴은 어떻게 보면, 팩토리 메서드 패턴을 좀 더 캡슐화한 방식이라고 볼 수 있습니다. 예를 들어, 컴퓨터를 생산하는 공장이 있을 때, 마우스, 키보드, 모니터의 제조사로 Samsung과 LG가 있다고 가정하겠습니다. 컴퓨터를 생산할 때 ..
-
TCP PSH 플래그네트워크 2019. 12. 23. 11:30
PSH 플래그 PSH 플래그의 기능을 이해하려면 우선 TCP가 데이터를 버퍼링하는 방법을 이해해야 한다. 기본적인 이야기 부터 해보자. TCP는 OSI Layer 4에서 동작한다. 그것은 패킷 기반 통신의 복잡성을 감추고, 들어온 데이터를 읽어내거나, 혹은, 내보낼 데이터를 쓸 수 있는 간단한 소켓 인터페이스를 상위 Layer에 제공한다. 그리고 TCP는 응용 프로그램(OSI Layer 7)이 언제든지 이 소켓으로부터 읽거나 쓸 수 있도록 버퍼를 제공한다. 버퍼는 TCP 연결 양쪽(송신자와 수신자)의 들어오고 나가는 양쪽 방향 모두에서 구현된다. 말이 헷갈린다면 간단히 생각하자. 송신자의 TCP도 read buffer, write buffer 를 가지고, 수신자의 TCP도 read buffer, writ..
-
네트워크 Zero Window 발생 원인네트워크 2019. 12. 23. 11:27
실서버에서 운용중인 애플리케이션에서 서버와 통신중에 TCP 세션이 지속적으로 끊어지는 현상이 발생하여 패킷을 떠보았다. 패킷을 떠보니 클라이언트에서 TCP ZeroWindow 전송을 통한 데이터 흐름 중지를 서버측으로 요청하고있었다. 처음엔 애플리케이션이 돌아가고있는 서버의 커널 파라미터의 문제라고 생각하여 커널 파라미터를 수정하고 해당 애플리케이션을 재실행 하여 테스트를 해보았다. 하지만 동일한 증상이 발생하였다. TCP ZeroWindow가 발생하는 이유는 소켓 버퍼가 가득차서 더이상 수신측에서 받는 TCP 패킷을 제대로 처리하지 못해서 발생하는 경우가 대부분이라고 한다. 상대방이 보내준 패킷을 처리하지 못하고 계속 TCP 스택에 담고있다가 어느 정도 임계치를 벗어 나게 되면 더 이상 패킷을 못받겠다..
-
리눅스 패킷 Overrun시스템 2019. 12. 18. 11:03
x86 시스템을 운영하면서 과도한 네트워크 부하가 발생하게 되면 해당 서비스를 진행하는 이더넷 인터페이스 에서는 Packet Overrun이 발생될수 있다. 패킷 Overrun 이 발생되면, incomming/Outgoing 되는 패킷들의 Frame Loss 가 발생되기 때문에 여러모로 모니터링이 필요한 항목이기도 하다. 1. 패킷 Overrrun의 원인 지금까지 프레임 손실 (Frame Loss) 에 대한 가장 일반적인 이유는 큐 오버런입니다.커널은 큐의 길이에 제한을 설정하고 있기 때문에 때로는 대기열의 배수보다 더 빨리 채워집니다. 이 현상이 오래 지속이 되면 Frame Loss 가 발생되는 것입니다. [root@/ ~]# ip -s -s link ls p4p2 11: p4p2: mtu 9000 q..
-
인터넷 속도 단위 Mbps와 MB와의 관계네트워크 2019. 11. 14. 10:14
요즘 기가 인터넷이 유행입니다. 인터넷 속도가 기가라고 엄청나게 광고를 하죠. 그 광고를 보면 1초당 1기가의 파일을 전송할 수 있는 것처럼 느껴집니다. 하지만, 절대 그 정도의 속도가 나오지 아닙니다. 이유는 파일 송수신할 때의 단위와 인터넷 속도의 단위가 다르기 때문입니다. 인터넷 속도의 단위는 Mbps입니다. Mega Bits Per Second의 약자로, 1초당 전송하는 Mega Bit의 양입니다. 예를 들어 인터넷 속도가 100Mbps라고 하면 1초당 100 Mega Bits를 전송한다는 뜻입니다. 그런데 파일의 크기는 Byte를 단위로 사용합니다. 예를 들어 3MB 크기의 파일이라고 하면 3 Mega Bytes를 의미합니다. 따라서 인터넷 속도에서의 100메가와 파일 크기에서의 100메가는 크..
-
리눅스 계정 잠금 임계값 설정시스템 2019. 11. 11. 17:54
파일 경로 : vi /etc/pam.d/system-auth 추가 auth required /lib/security/pam_tally.so deny=5 unlock_time=120 no_magic_root account required /lib/security/pam_tally.so no_magic_root reset 옵션 설명 no_magic_root root에게는 패스워드 잠금 설정을 적용하지 않음 deny=5 5회 입력 실패 시 패스워드 잠금 unlock_time 계정 잠김 후 마지막 계정 실패 시간부터 설정된 시간이 지나면 자동 계정 잠김 해제 (단위: 초) reset 접속 시도 성공 시 실패한 횟수 초기화
-
리눅스 shadow 구조시스템 2019. 11. 11. 17:26
유닉스를 기반으로 파생되어진 모든 리눅스 시스템은 암호화 된 패스워드를 포함하여 사용자 계정 정보를 /etc/passwd 파일에 보관합니다. 그러나 이 파일은 수정은 못하지만 누구나 볼 수 있습니다. 이런 이유로 해커들이 crack과 같은 툴로 사용자들의 패스워드를 알아낼 수 있습니다. shawdow 패스워드를 사용하게 되면 /etc/passwd 에 있는 패스워드 부분을 /etc/shadodw 에 두고 root만이 읽을 수 있는 퍼미션(400)으로 설정해 두게 됩니다. 기존의 /etc/passwd 누구나 읽을 수 있지만 /etc/shadow 는 root만 읽을 수 있습니다. /etc/passwd/ 파일이 암호화되어 저장되어있지만 누구나 읽을 수 있기 때문에 암호를 해독하고 사용하는게 어렵지 않습니다. 이..