전체 글 354

[02-3] Python - 문자열 (Strings)

Python 문자열(String)은 숫자와 더불어 가장 많이 쓰이는 자료형 중에 하나이다. 문자열 표현문자열 접근문자열 수정문자열 자르기 - split()문자열 양옆 공란 지우기 - strip(), lstrip(), rstrip()문자열 합치기/반복하기 (concatenate/repeat)문자열 찾기 - find(), index()문자열 바꾸기 - replace()문자열 대/소문자 바꾸기 - upper(), lower()문자열 연결하기 - join()문자열 갯수 세기 - count() 1. 문자열 표현 문자열은 큰 따옴표 " "나 작은 따옴표 ' ' 로 표현이 가능하고 예시는 다음과 같다. >>> str1 = "I am string." >>> type(str1) >>> str2 = 'I am string..

Language/Python 2016.08.08

[02-2] Python - 숫자 (Numbers)

Python에서 숫자(Numbers) 자료형은 가장 기본이되는 자료형이다. 숫자 표현숫자 계산을 위한 연산자Type casting (형 변환)미리 메모리에 할당되어진 숫자들 (-5 ~ 256) 1. 숫자 표현 Python에서 숫자는 크게 4가지의 형태로 표현이 가능하다. int (plain integers) : 정수long (long integers) : int 보다 범위가 큰 정수float (floating point numbers) : 실수complex (complex numbers) : 복소수 [int 의 표현] 범위 : -9223372036854775808 ~ 9223372036854775807 (-sys.maxsize-1 ~ sys.maxsize) C언어의 long을 이용하여 구현된 자료형이다...

Language/Python 2016.08.07

[02-5] Python - 튜플 (tuple)

기존에 C와 Java 위주로 코딩을 하다 보니 python에서의 tuple이 새로웠다. 튜플의 정의를 알아보고 다양한 예에 대해 알아보기로 하자. 튜플(Tuple) 의 정의 A tuple is a sequence of immutable(불변의) Python objects. 위와 같이 python의 tuple은 python에서 사용가능한 object의 수정 불가능한 나열이라고 정의가 가능하다. python의 list와 매우 유사하지만 포함된 object의 수정이 불가능하다는 점, 튜플은 괄호 "(", ")"로 표현되는 반면 리스트는 대괄호 "[", "]" 로 표현된다는 점이 다르다. (참고로 괄호 없이 콤마 "," 로만도 튜플의 표현이 가능하다.) 좀 더 상세한 사용 예에 대해 알아보자. 튜플의 표현 # ..

Language/Python 2016.08.07

Linux/Ubuntu, Samba 설정하기.

Windows 와 Linux 간에 파일을 공유하기 위해서는 흔히 Samba 를 사용하곤 한다. Linux에서 Samba를 설정하여 Windows 에서 해당 Samba를 사용하는 방법에 대해 UI를 이용한 설정 위주로 정리해 보았다. 대상 OS는 Ubuntu 16.04, Windows 10 를 기준으로 하였지만, 버전이 조금 다르다고 해서 큰 차이는 없다. Samba 의 설정 on [Linux]1. samba, system-config-samba 를 설치 한다. (root 권한 필요) samba를 설치하게 되면 samba의 기본이 되는 smbd를 포함하여 각종 의존성이 걸린 package들을 자동으로 설치하게 된다. # apt-get install samba system-config-samba 는 samb..

OS/Linux 2016.08.04

VirtualBox, 멀티코어 설정하기. (다중 CPU)

Virtualbox내 설치한 Ubuntu에서 코드를 컴파일할 일이 있었다. 가상 머신이라는 점은 고려하였지만 그래도 그 컴파일 성능이 생각보다 너무 느린 것만 같았다. 혹시나 해서 Ubuntu 내에서 CPU Core가 몇 개가 잡혀있는지 확인해 보니, 하나 밖에 설정이 되어 있지 않았다. (별다른 설정을 하지 않았다면 하나의 CPU만 인식이 된다.) # cat /proc/cpuinfo 위와 같이 하나의 CPU만 잡혀 있다. 가상 머신에서 하나 이상의 CPU를 인식해 보자. Virtualbox 멀티 코어 설정 1. 설정하고자 하는 가상 머신을 선택 한 뒤 [머신] > [설정] 을 실행한다. 2. 설정 메뉴 내에서 "시스템" > "프로세서" 탭을 선택해 보면 프로세서 개수를 선택할 수 있다. 해당 virtu..

VirtualBox, 듀얼 혹은 다중 모니터 사용하기

기존에 2대의 모니터를 가지고 있는 상황에서 Virtualbox를 사용한다면 virtualbox 또한 여러 모니터에 걸쳐 사용하고 싶은 경우가 있을 것이다. Virtualbox는 기본적으로 하나의 모니터만 지원하도록 설정되어 있기 때문에 다중 모니터를 지원할 수 있도록 설정을 바꾸어보도록 하자 기본적으로 진행하기 전에 게스트 확장 CD 이미지"를 설치해 놓아야 한다. VirtualBox, 자유롭게 화면해상도 조절하기 위 글을 참고하여 게스트 확장 CD 이미지 설치가 완료 되었다면 이후 과정은 다음과 같이 진행하면 된다. 듀얼 혹은 다중 모니터를 위한 설정 변경 [virtualbox 설정] 1. 듀얼 혹은 다중 모니터를 설정하고 싶은 가상 머신을 선택한다. 2. [머신] > [설정] 을 선택한다. 3. [..

VirtualBox, 가상머신 VM 내보내기, 복제, 그리고 스냅샷

Virtualbox를 통해 OS를 설정하고 사용하다 보면 OS 설치 직후의 시점으로 다시 돌아가고 싶을 때가 종종 있곤한다. 나같은 경우 특정 프로그램의 설치에 관한 글을 쓰는 경우가 있는데, 이 프로그램을 설치하기 전에 어떤 프로그램들을 설치했었는지, 어떤 설정을 바꾸었었는지 오랫동안 OS를 사용하다보면 도무지 그 과정이 정리가 되지 않는다. 이런 경우 OS 설치 직후로 돌아가고 싶은 생각이 들곤한다. Virtualbox에 설치한 OS는 File로된 이미지 형태이기 때문에 특정 시점을 저장하고 싶은 경우 원하는 시점의 이미지를 백업해 놓으면 되는 것으로 두리뭉실하게만 알고 있었다. (딱히 해본적은 없었다.) 이에 이번 기회에 유사 기능들을 정리해 보았다. 메뉴를 보다보면 가상머신 이미지를 백업해 놓을 ..

[03-1] Python - if (조건문)

코딩에 있어 가장 기본적인 문법 중 하나로 언어 마다 조금씩 사용법이 다르기 때문에 그 사용 방법에 대해 잘 이해하고 있어야 한다. if 구문 기본 사용법한 줄 (One line) 조건문의 특별한 사용조건 type에 따른 if 구문의 사용if 구문에서 boolean 조건if 구문에서 숫자 조건if 구문에서 문자열 조건is 와 == 차이if 구문 관련 error 1. if 구문 기본 사용법if 조건문1: 실행문1-1 실행문1-2 .... elif 조건문2: 실행문2-1 실행문2-2 .... else: 실행문 3-1 실행문 3-2 ... 주의해야할 점 if, elif, else 구문 제일 마지막에는 : (콜론)을 붙여주어야 한다. 실행문 작성시에는 들여쓰기(indent)를 꼭 해야한다. 일상 생활에서의 예와..

Language/Python 2016.08.01

자기 자신 IP Address C 코드로 확인하기.(SIOCGIFADDR)

현재 해결해야하는 미션은 자기가 쏜 Broadcast packet을 받을 경우 무시하는 코드를 작성해야만 한다. 들어오는 Packet에 대해서는 패킷을 보고 SRC IP Address 확인이 가능한데 나의 IP Address는 어떻게 확인이 가능한가. 위의 사진과 같이 ifconfig 를 통해 확인했을 때 enp0s3 이라는 이름의 interface의 10.0.2.15 라는 IP Address를 코드상으로 받아와야 한다. #include #include #include #include #include int main() { struct ifreq ifr; char ipstr[40]; int s; s = socket(AF_INET, SOCK_DGRAM, 0); strncpy(ifr.ifr_name, "en..

OS/Linux 2016.07.27

Linux 접속 차단하기. (TCP Wrapper)

Ubuntu 14.04 Server에 OpenSSH를 깔아 사용하고 있는데, 몇시간 정도 쓰다 보면 끊어지고, 한동안 연결이 안되고 뭔가 불안정한 모습을 보였다. 그래서 SSH 관련 로그를 좀 찾아보았는데, 여러 로그들을 검토해 보다 생각지도 못한 접속 시도들이 다수 일어나고 있음을 확인할 수 있었다. 검토 대상 로그 파일 : /var/log/auth.log [알수 없는 IP로 부터 root 권한 접속 시도] [알수 없는 IP로 부터 존재하지 않는 계정(orego)으로 접속 시도] 한군데서가 아니라 여러 군데에서 초 단위로 접속 시도를 계속 하고 있었다. 사실 Ubuntu sshd의 기존 Logging 은 AUTH(인증)에 대해서만 남기고 있기 때문에 내가 겪은 끊김이나 한동안 접속 안됨 문제들이 이런 ..

OS/Linux 2016.07.22