finderway의 등록된 링크

키자드에 등록된 총 501개의 포스트를 확인하실 수 있습니다.

Naver Blog

[C 언어 기초] 포인터 변수로 구성되어 있는 배열 - 포인터 배열

현재까지는 기본 타입의 변수를 인덱스로 가지는 배열만 선언 했었다. 하지만 포인터 변수도 변수의 일종이니 이를 대상으로 배열을 선언하는 '포인터 배열'에 대해서 학습해 보자. 포인터 배열의 이해 포인터 배열은 포인터 변수로 구성되어 있다. 그래서 주소값의 저장이 가능한 배열을 가리켜서 '포인터 배열'이라고 하는데 이러한 배열의 선언 방식은 다음과 같다. int * arr1[10]; // 길이가 20인 int 타입 포인터 배열 arr1 double * arr2[30]; // 길이가 30인 double 타입 포인터 배열 arr2 위의 명령에서 보이듯이 포인터 배열의 선언 방식은 기본 타입의 배열의 선언 방식과도 동일하다. 배열의 이름 앞에 배열 인덱스의 타입 정보를 선언하면 끝이다. 즉, 배열 이름 arr1의 앞에 선언된 int *가 int 타입의 포인터를 의미하며, arr2의 앞에 선언된 double *가 double 타입의 포인터를 의미한다. 그럼 다음의 코드를 실행해서 포인터 배열

Naver Blog

2013년 디시인사이드 정치 사회 갤러리 살인사건

이번에는 2013년 7월에 디시인사이드 정치/사회 갤러리(이하 정사갤)에서 발생한 살인사건에 대해서 알아보려고 한다. 여기서 가해자인 남자는 광주, 피해자인 여자는 부산 사람이라서 지역 감정 및 보수와 진보의 대립, 이념 갈등으로 벌어진 살인 사건이라고 인터넷에서 보도되었었는데 이번에 자세하게 조사를 해 봤다. 범행 및 검거 2013년 7월 10일, 디시인사이드 구 정사갤(정치 사회 갤러리)의 유동닉이었던 남성 갤러 백씨가 여성 갤러인 김씨를 살해한 사건인데 가해자의 주장에 따르면 처음에는 둘 다 진보 성향을 가지고 있었기 때문에 어느 정도 친분을 쌓았다. 하지만 가해자가 피해자의 사생활이 문란하다면서 이를 까는 글을 올렸고 피해자가 3~4개월 전에 진보와는 대립되는 보수로 전향하면서 둘 사이가 급속도로 악화되어 막말 싸움을 하는 단계까지 이르렀다고 한다. 당시 정사 갤러리에 올라온 글 그러자 피해자는 가해자에게 사이버 모욕죄 및 명예훼손 등으로 고소미를 시전했고 이에 꼬리를 내린

Naver Blog

[C 언어 기초] 함수의 매개변수로 배열 인자 전달하기

보통 다른 프로그래밍 언어를 봐도 함수에는 '매개변수'라고 인자를 전달받도록 할 수 있는 기능이 있다. 여기서는 배열도 함수의 인자로 전달할 수 있는데 그 전에 우선 함수의 인자 전달 원리에 대한 이해부터 짚고 가자. 인자전달의 기본 방식은 값의 복사 함수 호출 시 전달되는 인자의 값은 매개변수에 복사가 된다. 이게 인자를 전달하는 원리인데 여기서 가장 핵심이 되는 단어가 바로 '복사'이다. 즉, 복사가 되는 것 뿐이기 때문에 함수가 호출되고 나면 전달되는 인자와 매개변수는 별개로 취급된다. 이와 관련해서 다음의 샘플 코드를 보자. int SimpleFunc(int num) { . . . . } int main(void) { int age = 30; SimpleFunc(age); // age에 저장된 값이 매개변수 num에 복사되는 원리 . . . . } 위의 코드에서 SimpleFunc 함수는 호출을 통해서 인자로 age르 전달하고 있다. 그런데 여기서 실제로 전달되는 것은 변수

Naver Blog

[한국 역사상 최악의 연쇄 성폭행 사건] 대전 발바리 사건

이번에는 대한민국 역대 최악의 전대미문 연쇄 성폭행 사건에 대해서 알아보려고 한다. 사건의 범인인 이중구(영화 신세계가 생각나네)는 1998년 2월부터 2005년 10월까지 7년 동안 대전을 중심으로 일어난 연쇄 강간 사건의 가해자로 확인된 성폭행 피해자만 184명에 달한다. 사건 전개 및 수사 과정 TV 프로그램 알쓸신잡에서 1996년부터 대전광역시 일대에는 흉흉한 소문이 돌기 시작한다. 혼자 사는 여성들이 즐비한 원룸촌을 노린 성범죄가 들끓고 있다는 소문이었다. 수많은 신고가 이어지고 이에 경찰은 1999년부터 피해자들에게서 채취한 범인의 정액과 체액을 채취하여 데이터베이스를 구축한 다음 유전자 감식을 통해 이 시기에 발생한 수십 건의 성범죄 사건의 범인이 동일인물이라는 것을 알아내게 된다. 사건의 범인 이중구의 몽타주 모든 데이터베이스를 구축해 놨지만 범인 검거는 쉽지 않았다. 범인은 워낙 몸놀림이 날렵하여 신출귀몰하고 증거를 남기지 않는 치밀함까지 보였다. 대전 일대에서는 누

Naver Blog

미성년자 사형 판결 - 일본 이시노마키 일가족 살인사건

일본에서는 우리나라의 K-pop이나 영화, 드라마의 퀄리티를 보고는 한국의 문화를 인정하고 배우고 도입해야 한다고 주장하고 있다. 그러나 우리나라도 마찬가지다. 우리나라도 일본에게 배울 점이 상당히 많다. 일본에서는 헤이세이 시대 이후 사상 처음으로 미성년자에게 사형 판결을 내린 희대의 사건이 있었다. 이시노마키 일가족 살인사건 사건의 가해자이자 사형수 치바 유타로 이름 : 치바 유타로(千葉祐太郎) 출생 : 1991년 7월 2일, 일본 미야기현 이시노마키시 직업 : 건물 해체공 체포 : 2010년 2월 10일(만 18세) 죄명 : 살인 및 상해치상 흉기 : 칼날 18cm 식칼 '소도(牛刀)' 피해자 : 사망 2명, 부상 2명 판결 : 대법원에 의한 사형 판결 사건의 희생자 2명 사건의 주범인 유타로는 당시 만 18세 미성년자였던 2010년 2월 10일, 여자친구인 A양의 집에 침입하여 자신의 여자친구와 그녀의 언니를 칼날 18cm 짜리 소를 도살하는데 쓰이는 식칼인 '소도(牛刀)'를

Naver Blog

[C 언어 기초] 배열의 이해와 선언 및 초기화 방법

이번에는 C 언어에서 '배열(array)'에 대해서 알아보자. 사실 파이썬을 공부하면서 배열에 대해서는 학습한 적이 없다. 그런데 생긴 꼬라지를 보니까 파이썬의 '리스트(list)' 타입과 뭔가 흡사한 듯한 느낌이 든다. 배열이란? C 언어에서 '배열(Array)'은 다수의 데이터를 저장하고 처리하는 경우에 유용하게 사용할 수 있다. 머신러닝에 사용할 수 있는 파이썬 판다스(pandas)의 데이터프레임과 비슷한 구조를 가지는 것 같은데 더 디테일한 이해를 위해서 위의 이미지와 같이 좋은 아파트의 가구별 가족 수를 저장 및 갱신하는 프로그램을 만든다고 가정해 보자. 해당 아파트는 10층까지 있으며, 각 층에는 네 가구씩 살고 있다. 그렇다면 가구별 가족 수의 기록을 위해서는 총 40개의 변수를 선언해야 하는데 배열을 학습하기 전에는 아마 다음과 같이 무식하게 코드를 작성할 것이다. int main(void) { int floor101, floor102, floor103, floor10

Naver Blog

[C 언어 기초] 배열을 이용한 문자열 데이터 표현

이번에는 배열을 이용해서 문자열 데이터를 표현해 보자. 사실 문자열 같은 경우에는 기본적으로 scanf 함수에서 큰 따옴표(" ") 안에 문열을 넣어서 입력 받고 printf( ) 함수로 출력할 수 있었다. 이는 기본적인 사항에다가 이미 짚고 넘어간 부분이다. 그런데 문자열을 출력만 했지, 변수에 저장해서 가지고 논 적은 없었다. 그런데 char 타입의 배열을 이용하면 문자열 데이터의 저장 뿐만 아니라 변경도 가능해진다. 즉, 변수 형태의 문자열 선언이 가능해 진다는 뜻이다. char 타입의 문자열 저장과 '널(null) 문자' 위에서도 언급했듯이 C 언어에서는 큰 따옴표(" ")를 이용해서 문자열을 표현한다. 따라서 다음과 같이 문장을 구성하면 배열에 문자열 데이터가 저장된다. char str[14] = "Good morning!"; 위의 선언을 통해서 메모리 공간에는 char 타입의 배열이 할당되고 이 배열에는 다음의 구조로 문자열이 저장된다. 문자열 배열 위의 경우에는 배열의

Naver Blog

[인간의 본성] 성선설과 성악설에 대해서 알아보자

사람들이 선동을 당하는 이유와 군중심리에 관한 고찰 보통 이 시간에는 해외 각국의 사건이나 사고 정보들을 조사해서 포스팅을 해야 하는데 오늘은 조금 다른 ... blog.naver.com 이전에 인간의 '군중 심리'에 대한 글을 작성한 적이 있었다. 글을 작성하면서 군중 심리에 휘말리지 않고 자신만의 길을 가는 사람이 있는 반면에 군중에 합세하여 사람을 죽이는 사람 등 다양한 사람이 있는 경우가 있는데 여기서 한 가지 의문점이 생겼다. "인간의 본성은 과연 선할까? 악할까?" 이에 대한 고찰을 하기 위해서는 당연히 성선설과 성악설에 대해서 조사를 해 봐야겠다는 생각이 들었다. 인간의 본성은 원래 선하다, 악하다에 대해 뭐라 결론을 내릴 수는 없지만... 본래 사람이라는 사회적 동물의 타고난 성품은 다양하다. 그런데 옛날부터 인간의 본성은 크게 두 가지로 구분했다. 뭐 '성무성악설' 등 다양하게 있지만 여기서는 크게 인간의 본성은 선하다는 '성선설(性善說)'과 인간의 본성은 악하다는

Naver Blog

[C 언어 기초] 포인터(pointer)를 이용한 주소값 저장

이번에는 많은 코딩 초심자들이 C 언어를 접게 만드는 장본인인 포인터(pointer)에 대해서 알아보자. 포인터는 C 언어가 저급 언어(Low level)의 특성을 가진다고 말하는 장본인이기도 하다. 포인터를 이용하면 메모리에 직접적으로 접근이 가능하기 때문에 나온 말인데 이제 천천히 살펴보자. 포인터 변수 포인터의 이론을 본격적으로 학습하기 전에 우선 변수가 메모리상에 어떻게 존재하게 되는지 복습도 할 겸 살펴보자. 우선은 다음의 샘플 코드를 보면서 변수가 다음과 같이 선언되었다고 가정해 보자. int main(void) { char ch1 = 'A', ch2 = 'Q'; int num = 7; . . . . } 위의 변수들은 1바이트 짜리 char 타입 2개, 4바이트 짜리 int 타입 하나로 총 6바이트가 메모리 공간에 할당되어 있는 상태가 된다. 이를 메모리상의 구조적으로 표현하면 다음과 같다. 변수 선언과 메모리의 할당 위의 그림에서 메모리 블록의 상단에 표시된 파란색 글자

Naver Blog

[미군의 민간인 학살] 아프가니스탄 메이완드 구 민간인 살인사건

이번에는 2010년에 발생했던 미군의 아프가니스탄 민간인 살인사건에 대해서 알아보자. 민간인을 학살했으니 전쟁범죄이며, 최소 3명 이상의 무고한 민간인을 살해한 것으로 조사되었다. 이 잔혹한 전쟁범죄 사건은 일명 "킬 팀(Kill Team)" 사건으로도 불린다. 전쟁범죄 사건의 주범들 해당 사건은 미국 육군 2사단인 스트라이커 여단 소속의 캘빈 깁스 하사(Staff Sergeant Calvin Gibbs) 하사를 포함한 7명의 주동자 및 가담자가 2010년 1월과 2월, 5월에 세 차례 아프가니스탄 민간인 세 명을 수류탄과 총으로 공격하여 살해한 사건이며, 일부는 죽은 사람의 손가락을 기념품으로 보관했다가 압수되었다고도 한다. 베트남 전쟁 당시 한국군의 만행 물론 미군이 아프가니스탄에서만 이러한 전쟁범죄 행위를 한 것이 처음은 아니다. 1차 및 2차 세계대전은 물론이고 이라크 전쟁이나 베트남 전쟁에서도 민간인 학살은 비일비재하게 발생 했었다. 베트남 전쟁의 경우에는 연합군으로 파병된

Naver Blog

[C 언어 기초] 포인터 관련 & 연산자와 * 연산자

이번에는 포인터 관련 연산자인 '&' 연산자와 '*' 연산자에 대해서 알아보자. 일반적으로 '&' 연산자와 '*' 연산자를 가리켜서 '포인터 연산자'라고 하는데 흔하게 '*' 연산자는 곱셈 연산자라고도 불린다. 일반적으로는 곱셈을 하는 연산자로 많이 쓰이지만 곱셈의 경우에는 피연산자가 두 개인 이항 연산자인 반면에, 여기서 언급할 '*' 연산자는 피연산자가 한 개인 단항 연산자이다. 변수의 주소값을 반환하는 '&' 연산자 이전 포스팅에서 한 차례 '&' 연산자에 대해서 학습한 적이 있었다. 피연산자의 주소값을 반환하는 역할을 하는 이 연산자는 다음의 형태로 패턴을 구성해야 한다. int main(void) { int num = 5; int * pnum = # // num의 주소값을 반환해서 포인터 변수 pnum을 초기화 . . . . } 이렇듯 '&' 연산자의 피연산자는 변수가 들어가야 하며, 상수는 피연산자가 될 수 없다. 그리고 다음과 같이 변수의 타입이 많지 않는 포인터

Naver Blog

[의문의 사건] 일본 쿠마모토 살인 유기 사건

비교적 최근인 올해 5월에 발생한 일본 쿠마모토시 츄오구 미나미츠보이마치(南坪井町) 지역에 위치한 한 빌딩에서 피해자인 타츠시마 아리사(辰島ありさ, 당시 29세)가 담요에 쌓인 채 살해당한 사건이다. 이 사건의 핵심은 건물 내부에 있는 폐쇄된 7층 엘리베이터라는 점이다. 살인 사건이 발생한 장소 2023년 5월 29일 밤 20시 45분 경, 일본 쿠마모토시의 번화가에 위치한 빌딩에서 콜센터 직원인 타츠시마 아리사가 사망한 채 발견되는 사건이 발생했다. 타츠시마는 전날 오전 1시경 음식점에서 투잡으로 일하던 아르바이트를 마치고 퇴근한 뒤 동거하는 남성에게 "집에 돌아갈게"라는 라인 메시지를 남긴 뒤 실종되었다. 사건 발생 건물 입구에 놓여져 있는 추모 물품들 그녀와 동거하는 남성은 이 사실을 그녀의 가족들에게 알렸으며, 가족들이 경찰에 신고를 하여 퇴근 후 동선을 추적해서 감시 카메라에 비친 마지막 행적을 파악하고 그녀의 시신을 발견하게 된다. 사인은 질식사였고 별다른 외상은 없었으며

Naver Blog

얼굴이 못 생겨서 욕을 먹고 있는 AV 배우 카가미 슈나(加賀美シュナ) 이야기

오랜만에 AV 배우에 관한 글을 작성해 보고자 한다. 좀 오래 전에 활동한 배우이긴 하지만 알만한 사람들은 아는 그런 AV 배우가 있다. 지금도 공식 은퇴 선언은 하지 않아서 현역으로 표기되어 있기는 하지만 사실상 은퇴가 맞는듯. 이름 : 카가미 슈나(加賀美シュナ) 다른 이름 : 카케이 히토미(筧ひとみ) 출생 : 1995년 1월 20일(현재 28세) 신체 : 145cm / B80 / W54 / H81(B컵) 소속사 : ツートッププロ(투톱 프로) 활동 기간 : 2014 ~ 2016년(은퇴 선언만 없었지 사실상 은퇴) 두부집 효녀 모모타니 에리카와 함께 출연한 작품 카가미 슈나는 2014년에 AV 배우로 데뷔했는데 지금은 어떻게 변했을 지는 모르겠지만 저 당시에 빈유에 극 슬랜더 몸매로 로리계의 AV 배우로 활동했었다. 그 당시에는 사람들도 잘 몰랐지만 두부집 효녀인 모모타니 에리카와 함께 자매 컨셉으로 출연한 작품으로 인해 한국에서도 많이 알려지게 되었다. 사실 그 전에도 단독으로 찍

Naver Blog

[C 언어 기초] 지역변수(local variable)에 대해서

이번에는 함수 파트에서 빠질 수 없는 지역변수와 전역변수에 대해서 알아보자. 아마도 함수나 반복문 내에 선언되는 변수가 지역변수인 것 같긴한데 파이썬 같은 경우에는 비지역변수를 의미하는 nonlocal, 전역변수 global 명령이 따로 존재했다. C 언어는 어떨지 모르겠으니 우선 지역변수부터 학습해 보자. 지역변수(local variable) 변수는 선언되는 위치와 관련해서 함수와 깊은 관계가 있다. C 언어는 크게 전역변수와 지역변수로 나눌 수 있는데 이 둘은 메모리상에 존재하는 '기간'과 변수에 접근할 수 있는 '범위'라는 차이점을 가지고 있다. 여기서 말하는 지역변수에서 '지역(local)'은 중괄호에 의해 형성되는 영역을 뜻한다. 즉, 함수나 반복문 같이 중괄호의 영역이 있는 곳에 선언되는 변수라는 뜻이다. 물론 프로그램의 실행 흐름에서 함수나 반복문을 벗어나는 순간 지역변수는 메모리 공간에서 소멸된다는 특징이 있다. 이와 관련해서 코드 하나를 실행해 보자. #include

Naver Blog

[C 언어 기초] 전역변수, static 변수, register 변수

이번에는 전역변수와 static(정적) 변수, register 변수에 대해서 알아보자. 전역변수(global variable) 전역변수는 지역변수와는 반대되는 개념으로 메모리 공간에 할당되면 프로그램이 종료될 때 까지 소멸되지 않고 어디서든 접근이 가능하다는 특징을 가지고 있다. 그럼 다음 코드를 실행해서 전역변수의 특성을 살펴보자. #include <stdio.h> void Add(int val); int num; // 전역변수 int main(void) { printf("num : %d \n", num); Add(3); printf("num : %d \n", num); num++; // 전역변수의 값 증가 printf("num : %d \n", num); return 0; } void Add(int val) { num += val; // 전역변수의 값을 val만큼 증가 } 실행 결과 num : 0 num : 3 num : 4 위의 코드에서 세 번쨰 라인에 선언된 변수는 main

Naver Blog

1996년 중국 난징시 댜오아이칭 토막 살인사건

이번에는 중국의 장쑤성 난징시에서 발생한 유래 없는 토막살인 사건에 대해 알아봤다. 오원춘은 명함도 못 내미는 수준의 잔혹함으로 대륙 전체를 충격에 빠뜨린 이 사건은 정확한 피살 시간을 알 수 없어서 시신을 발견한 1월 19일을 따서 '난징 1.19 사건', '난징대학 1.19 사건'이라고도 부른다. 사건을 조사하면서 사건과 관련된 사진을 구하는데 러시아 식인부부 사건 이후로 상당히 충격을 먹었다. 별의 별일이 다 발생하는 중국이라 그러려니 하겠지만 이 사건은 진짜 충격이 상당하다. ※ 모자이크가 되어 있긴 하지만 다소 충격적인 사진들이 있으니 심약자나 비위가 약하신 분들은 뒤로가기를 눌러주시기 바랍니다. 피해자와 사건 일지 사건의 희생양인 댜오아이칭(刁爱青)은 1976년 3월생으로 중국에서 태어나 난징대학에 다니던 1학년 학생이었다. 농촌에서 갓 올라온 대학생이었으며, 난징시에 올라오기 전에 그녀와 가까이 지냈던 고향 친구의 증언에 따르면 키는 165cm에 쌍꺼풀이 없고 말을 빠르

Naver Blog

[C 언어 기초] 재귀함수에 대한 이해와 디자인 사례

만약 처음 프로그래밍 언어를 공부한다면 상당히 부담스러운 함수 중 하나가 재귀함수였는데 다행히도 나 같은 경우에는 파이썬을 먼저 선행한 덕분에 재귀함수에 대한 이해는 크게 어렵지 않다. 파이썬을 C 언어로 개발했다고 해도 궁극적으로는 작동하는 기능 자체가 다르기 때문에 재귀함수도 어떻게 돌아갈지 모른다. 재귀함수의 기본적인 이해 재귀함수는 다음과 같이 함수 내에서 자기 자신을 다시 호출하는 알고리즘을 가진 함수를 말한다. void Recursiv(void) { printf("재귀함수 호출 \n"); Recursive(); // 자기 자신을 재호출 } 그렇다면 위의 형태를 가진 재귀함수는 어떻게 이해할까? 언뜻보면 안에서 다시 호출한 다음 다시 함수의 진입 지점으로 돌아가는 모양새가 반복문과 상당히 유사하다. 그래서 그림으로 표현하면 아마 다음과 같지 않을까? 재귀함수의 호출 과정? 따지고 보면 위의 그림이 잘못된 그림은 아니다. 그런데 완료되지 않은 함수를 다시 호출하는 것이 가능할

Naver Blog

도시전설 - 대표적인 자장가 동요 '섬집아기'의 섬뜩한 괴담

어렸을 때 했던 놀이 중에 '우리집에 왜 왔니'의 괴담에 관한 글을 쓴 적이 있었다. 그런데 글을 다시 읽다가 동요 섬집 아기에 관한 괴담도 같이 생각났다. 일단 새벽에 들으면 뭔지 모르게 좀 소름 끼치기도 하고 도시전설까지 생겨난 것을 보니 꽤 흥미로워서 찾아보기로 했다. ※ 과몰입 하지 마시고 재미로 읽으셔야 정신 건강에 덜 해롭습니다. 초등학교 당시에 음악 교과서에서 배우고 어렸을 적 엄마가 자장가로 많이 불러줬던 동요 중에 '섬집 아기'가 있다. 그런데 나이를 먹고 밤에 이 노래를 들으니까 좀 소름이 끼쳤다. 이 노래는 1946년 전인 일제시대 말기에 가사가 쓰여졌고 민들레 시집에 발간되어서 1950년에 이흥렬 작곡가에 의해 만들어졌는데 노래는 다음과 같다. 1. 엄마가 섬그늘에 굴 따러 가면 아기가 혼자 남아 집을 보다가 바다가 불러주는 자장 노래에 팔 베고 스르르르 잠이 듭니다 2. 아기는 잠을 곤히 자고 있지만 갈매기 울음소리 맘이 설레여 다 못찬 굴바구니 머리에 이고

Naver Blog

열혈 C 프로그래밍 - 도전! 프로그래밍 1

이번에는 윤성우 저자의 열혈 C 프로그래밍 책에 있는 코딩 테스트인 '도전! 프로그래밍'의 문제를 풀어보려고 한다. 책에 답지도 없어서 참고할 만한 것들은 하나도 없다. 수학적인 머리만 가지고 풀어야 하는데 의외로 2번 문제를 제외하고는 그럭저럭 잘 풀렸다. (보통 뒤로 갈수록 난이도가 올라가지 않나...?) 도전 1 문제 : 10진수 정수를 입력 받아서 16진수로 출력하는 프로그램을 작성해 보자. 이는 서식문자의 활용에 대한 문제이므로 쉽게 해결할 수 있을 것이다. #include <stdio.h> int main(void) { int num; printf("10진수 정수 하나 입력 : "); scanf("%d", &num); printf("16진수로 출력 : %#x / %x \n", num, num); return 0; } 실행 결과 10진수 정수 하나 입력 : 35 16진수로 출력 : 0x23 / 23 훗. 이 정도는 껌이지. 다음 문제로 가자. 도전 2 문제 : 프로그램

Naver Blog

[C 언어 기초] 함수 정의 및 선언과 다양하게 함수 정의하기

이번에는 C 언어의 함수 파트로 넘어왔다. 파이썬에서도 함수 파트를 학습한 적이 있었으니 아마도 수월하게 공부를 할 수 있을 것 같다. 함수를 만드는 이유 C 언어 함수의 정의와 구조 위의 이미지를 보면 함수의 '반환 형태', '이름', '입력 형태'로 정의가 되어 있다. 'def'로 시작하는 파이썬과는 차이가 있다. 본래 수학적인 의미의 함수도 마찬가지인데 전체적인 틀로 보자면 함수는 입력과 출력이 핵심이 된다. C 언어는 클래스가 없기 때문에 함수를 자주 사용할 수 있는데 main 함수 안에서만 코드를 작성할 수는 없다. (어차피 클래스 대용으로 '구조체'라는게 있긴 하지만 이건 나중에 학습하기로 하고.) 함수가 존재하는 이유는 main 함수 안에 있는 각각의 역할을 하는 코드들을 작게 나누어서 문제의 발생 및 프로그램의 요구사항 변경으로 인한 소스코드의 변경이 불가피한 경우에 이렇게 변경할 수 있는 문제의 범위를 축소 및 제한하는 목적으로 함수를 정의하고 선언하는 것이다. 지금

Naver Blog

[C 언어 기초] return의 기능과 다양한 함수 정의

이번에는 return이 의미하는 두 가지 기능에 대해서 알아보자. 이는 파이썬에서도 가끔씩 통용되는 의미로 return을 쓰기도 하는데 여기서도 쓰이는 것 같다. return의 두 가지 기능 함수를 반환할 때 일반적으로 사용되는 return은 함수를 빠져나갈 때에도 사용된다. 즉, 값을 반환하거나 혹은 함수를 빠져나가거나 두 가지의 기능이 있다. 사실 반환 타입이 void로 선언된 함수에서는 return 명령을 사용할 수 없는 것으로 알고 있었다. 그런데 반환 타입이 void인 경우에도 다음과 같이 return 명령을 삽입할 수 있다. void NoReturnType(int num) { if(num < 0) return; // 값을 반환하지 않는 명령 . . . . } 위의 return 명령은 반환할 값이 명시되어 있지는 않은데 이런 경우에는 값을 반환하지 않고 그냥 단순히 함수를 빠져나가는 목적으로 사용된다. 그래서 void의 반환 타입을 가진 함수에서는 이러한 return 명령이

Naver Blog

일본의 전 현직 AV 배우로 구성된 신인 걸그룹 블랙 다이아몬드 이야기

유튜브 알고리즘을 통해서 한 일본 걸그룹의 뮤직비디오를 보게 되었다. 사실 내가 아는 일본 걸그룹은 AKB48이나 쵸 도키메키 센덴부, 타카네노 나데시코 말고는 하나도 모르는데 내가 아는 이 세 그룹은 지금의 K-pop 걸그룹과는 달리 전부 상큼 발랄한 컨셉을 지향하고 있다. 그런데 이번에 유튜브 썸네일을 보니까 K-pop의 분위기를 풍기는 상당히 비슷한 썸네일을 가진 일본 걸그룹의 곡을 들어봤는데 노래가 음... 괜찮긴 하지만 내가 이런 종류의 노래를 별로 좋아하지는 않아서 우선 그녀들의 정보를 찾아보기로 했다. 올해 3월에 일본에서 새로 데뷔한 신인 걸그룹이다. '블랙 다이아몬드(BLACK DIAMOND)'라는 이름을 가진 그룹인데 이들의 얼굴이 모두 낯이 익는다. 특히 가운데 미드가 엄청난 멤버가 상당히 낯이 익는데 알고보니 일본의 전 AV 배우였던 '오키타 안리(沖田杏梨)' 였다. 한국 남자들은 대부분 알아도 모르는 그녀... 그녀가 왜 갑자기 걸그룹으로 데뷔했는지는 모르겠는

Naver Blog

[C 언어 기초] for 루프에 의한 반복 실행

이번에는 프로그래밍 언어의 반복문 중에서 가장 많이 사용되는 for 루프에 대해서 알아보자. 기존의 while이나 do~while과는 구조적으로 약간 차이가 있기 때문에, 그리고 가장 많이 사용되는 반복 루프이기 때문에 여기서 확실하게 학습하고 이해해서 넘어가야 할 것 같다. 파이썬에서 for 루프를 학습한 적이 있지만 C 언어의 for 루프는 파이썬과는 약간 차이가 있었다. for 루프의 구조와 이해 for 루프의 실행 흐름 만약에 문장 "Hello World"를 총 3회 출력하고 싶다고 가정해 보자. 여기서 while 루프로 작성하려면 다음과 같은 구조로 구성할 수 있다. int main(void) { int num = 1; while(num <= 3) { printf("Hello World"); num++; } return 0; } 위의 경우에는 반복의 횟수가 총 3회로 정해져 있다. 반복을 위한 변수 선언과 이를 만족하는 조건 검사, 그리고 루프 탈출을 위해서 조건을 깨는 거

Naver Blog

[C 언어 기초] if 문 - 조건에 따른 실행 흐름과 분기

현재까지 학습하면서 작성된 코드는 모두 실행 흐름을 거쳐서 실행이 되었다. 그런데 이번에는 프로그램의 흐름을 원하는 형태로 컨트롤 할 수 있는 if 문에 대해서 학습을 해 보자. 즉, 선택에 따라 작성된 코드는 실행이 되고 다른 코드는 실행에서 제외가 될 수 있다는 뜻이다. 마찬가지로 파이썬에서 if 문을 학습한 적이 있기 때문에 수월하게 이해할 것 같다. 리눅스 시스템의 계산기 프로그램 파이썬에서 따로 언급한 적은 없지만 여기서 언급하자면 프로그램에서 실행 흐름의 분기가 필요한 이유는 뭘까? 만약에 계산이 가능한 프로그램을 구현한다고 가정해 보자. 계산기라고 하면 다른 기능은 몰라도 사칙연산은 무조건 구현되어야 한다. 하지만 사칙연산을 전부 실행하지 않고 프로그램을 사용하는 사람의 선택과 필요에 따라서 덧셈 혹은 곱셈을 선택적으로 실행할 수 있어야 한다는 뜻이다. 고속도로 분기점 고속도로의 분기점을 생각해 봐도 마찬가지이다. 누구는 서울로 가기 위해 왼쪽으로 가고 누구는 부산으로

Naver Blog

대한민국 역사상 가장 미친 도둑놈 대도 조세형 사건

이번에는 살인 사건이나 실종 사건이 아니라 대한민국 역사상 기록에 남을 수준의 희대의 미친 도둑놈인 조세형에 대해서 알아보기로 했다. 프로필 이름 : 조세형(趙世衡) 별명 : 대도(大盜) 출생 : 1944년, 전라북도 전주 가족 : 전처 - 초연 스님 신체 : 175cm 직업 : 건달, 도둑, 종교인, 강연업 종교 : 개신교 조세형은 1970년~1980년대 대한민국을 주름 잡았던 희대의 도둑이다. 총 전과 16범으로 별명은 대도였다고... 조세형의 절도 인생 조세형이 훔쳤던 물방울 다이아몬드 1944년 전북 전주부에서 태어난 조세형은 고아 출신으로 15살 때부터 먹고 살기 위해 도둑질을 시작해서 1982년 이전까지 11차례나 붙잡혀서 감옥살이를 한 전과가 있었다. 한때 김준성 전 경제부총리와 고려병원 이사장인 조운해, 장영자를 비롯하여 국회의원 및 부유층 등 유명인사들이 집단으로 거주하는 지역만 골라서 털었는데 그가 훔친 물건 중에 장영자가 소유한 엄청난 가격의 물방울 다이아몬드가

Naver Blog

[C 언어 기초] if~else를 이용한 다중 흐름의 분기와 삼항 연산자

이중 분기 if~else 구절 이중 분기 if~else 구절의 실행 흐름 이번에는 if~else에 대해서 알아보자. 파이썬 같은 경우에는 다중 분기를 표현하기 위해서는 if ~ elif ~ else 구조로 되어 있는 if 문을 활용 했었어야 했는데 C 언어는 if~else만 가지고 이중 분기 및 다중 분기까지 적용시킬 수 있다. 그리고 if~else 부분의 구조는 다음과 같다. if(num1 > num2) { printf("num1이 num2보다 크다. \n"); printf("%d > %d \n", num1, num2); } else { printf("num1이 num2보다 작다. \n"); printf("%d <= %d \n", num1, num2); } 즉, 위의 코드에서 if 구절의 조건이 '참(True)'이라면 if 중괄호 영역이 실행되고 '거짓(False)'이라면 else 부분의 영역이 실행되는 구조이다. 그럼 다음 코드를 실행해서 이를 확인해 보자. #include <s

Naver Blog

[C 언어 기초] 특정 조건의 생략과 탈출 - break와 continue 명령

이번에는 반복문에서만 사용할 수 있는 continue 명령과 break 명령에 대해 알아보자. 근데 for이나 while 루프에서 이를 학습하지 않고 왜 지금 학습을 하냐...면 if와 같이 사용되기 때문에 여기서 학습한다. break 명령 break 명령을 만났을 때의 실행 흐름 위의 실행 흐름 이미지를 봐도 알 수 있듯이 본래 반복 루프를 탈출하는 용도로 사용되지만 if 문과 함께 쓰이고 있다. 즉, if 구절의 특정 조건을 만족하게 되면 break를 만나서 가장 가까운 반복문을 탈출하는 용도이다. 파이썬에서도 언급했지만 break가 if랑 자주 쓰이다 보니 if를 탈출하는 용도로 알고 있는 사람이 많은데 정확하게는 break를 감싸고 있는 for이나 while 루프를 탈출하는 용도이다. 그럼 while에 무한루프를 적용시켜서 break 명령을 명시한 다음 탈출하는 코드를 짜 보자. #include <stdio.h> int main(void) { int sum = 0, num =

Naver Blog

딸이 범인이라는 합리적 의심 - 이혼 부부 보험금 사망 사건

예전에 궁금한 이야기 Y에서 다뤘던 사건이 생각났다. 보험금 때문에 사망한 사건이라 기억이 났는데 정확하게 언제 일어난 사건인지 모르고 있다가 이번에 우연찮은 기회로 찾아서 다시 정보를 조사해 봤다. 사건의 내용과 정황 2010년 9월 및 이듬해 2월에 각각 50대 이혼 부부의 사망 사건이 발생했다. 두 부부는 20년 전에 이혼한 상태였는데 공교롭게도 두 사건 현장에 모두 이혼한 부부의 첫째 딸인 장 씨가 있었다. 단순하게 보면 기구한 우연의 일치라고 볼 수는 있지만... 2010년 9월 14일 서울 강북수 수유동에서 박모 씨(당시 52세)의 집에 원인 모를 대형 화재가 발생했다. 결국 박 씨는 안방에서 화재로 인해 사망했는데 기이한 점은 당시 화재는 박 씨가 사망한 안방에만 집중되었으며, 박 씨의 딸인 장 씨와 그의 딸이 있던 방은 멀쩡한 상태였다는 것이다. 이 배경에는 이야기가 있는데 장 씨의 부모인 장 씨와 박 씨는 20년 전에 이혼한 상태였으며, 당시 어린 아이였던 장 씨는

Naver Blog

[C 언어 기초] 조건의 선택적 실행 - switch 명령

이번에는 if..else if..else와 유사하게 작동하는 switch 명령에 대해서 알아보자. switch 명령 switch 명령의 실행 흐름 위의 실행 흐름을 봐도 if..else if..else와 유사하게 작동한다. 그래서 경우에 따라서는 if를 switch로 대체하기도 하는데 사용할 수 있는 영역은 if..else if..else에 비해서는 제한적이라는 차이점이 있다. 우선 switch 명령의 구조나 어떻게 동작하는지 다음 코드를 실행하면서 판단해 보자. #include <stdio.h> int main(void) { int num; printf("1 이상 5 이하의 정수 입력 : "); scanf("%d", &num); switch(num) { case 1: printf("1은 하나/ONE \n"); break; case 2: printf("2는 둘/TWO \n"); break; case 3: printf("3은 셋/THREE \n"); break; case 4: prin

Naver Blog

[C 언어 기초] C 언어의 금지된 문법 - goto 명령

이번에는 C 언어나 다른 프로그래밍 언어에서 사용을 금지하고 있는 goto 명령에 대해서 알아보자. goto 명령의 실행 흐름 위의 실행 흐름을 보자. 프로그램이 실행되고 Label1 부분에 진입을 했는데 goto 명령으로 인해 Label3으로 뛰어넘어 버린다. 즉, 프로그램의 흐름을 원하는 위치로 이동시킬 때 사용하는 명령인데 과거에는 goto 명령의 필요성에 대한 논쟁도 있었지만 현재는 goto 사용을 부정적으로 보는 시각이 지배적이다. 게다가 근래에 출간되는 C 언어의 서적 중에는 goto 명령을 아예 목차에서 빼버리는 경우도 있을 정도이다. goto의 사용을 부정적으로 보는 이유는 프로그램의 자연스러운 흐름을 방해한다는 것이다. C 언어는 객체지향 언어가 아니라 실행 흐름을 순차적으로 따르는 '절차지향' 언어이기 때문에 프로그램의 흐름을 방해하거나 복잡하게 만드는 것은 아주 큰 단점이 된다. 그만큼 위에서 아래로 물 흐르듯 흘러가는 단순한 흐름이 중요하기 때문이며, goto

Naver Blog

1998년 북한의 송림제철소 노동자 시위와 민간인 학살 사건

고난의 행군이 끝나갈 무렵인 1998년 8월, 황해북도 송림시에 위치한 황해제철소(당시에는 송림제철소)에서 일어난 대규모 숙청사건이다. 이는 탈북민 이춘구 씨, 김화순 씨, 박승학 씨의 증언을 바탕으로 한 내용이다. 김일성 사망 당시 사건의 배경은 1994년 김일성의 사망 이후 송림제철소의 가동률이 떨어지고 1996~1997년부터는 완전히 가동을 멈추게 된다. 이에 따라 제철소의 노동자들은 실업자와 같은 처지가 되었고 황해도에 위치한 철광인 은률광산, 재령광산에서 철광석을 캐기 어렵게 되었으며, 설상가상으로 중국이 개혁개방을 하면서 콕스탄을 값 싼 대치물자로 주지도 않아 제련도 어려워지는 상황에 놓이게 된다. 이런 사정으로 북한에는 경제적 불황이 찾아오면서 배급마저 끊어지게 되고 그나마 송림에서는 먹을거리가 남아 있어 북한 주민들은 송림으로 몰려들게 된다. 이렇게 주민들과 노동자들이 굶주리는 모습을 보다 못한 송림제철소의 지배인과 책임비서, 물자보급업무를 하는 후방사업 담당자인 부지

Naver Blog

[C 언어 기초] 문자를 위한 표현 방식 및 자료형

이번에는 문자를 저장하고 처리하기 위한 데이터의 표현 방식과 이에 해당하는 자료형에 대해 알아보자. 대부분의 프로그램은 인간과의 상호작용이 필요하다 보니 문자의 표현은 중요할 수 밖에 없다. 그렇다면 컴퓨터는 어떻게 문자를 표현하고 처리할까? 컴퓨터는 숫자를 이용해서 무엇인가를 인식하고 표현한다. 따라서 숫자를 이용해서 문자를 표현하도록 해야 하는데 그 방법에는 뭐가 있을까? 아스키 코드(ASCII Code) 아스키 코드 목록 숫자를 이용해서 문자를 표현하도록 숫자를 문자에 매핑(mapping) 시키는 것이 유일한 방법이다. 즉, 문자 A는 65로 표현하고 B는 숫자 66으로 표현하기로 약속된 것이 '아스키 코드(American Standard Code for Information Interchange, 미국 정보 교환 표준 부호)'이다. C 언어는 미국 국제 표준 협회인 ANSI에 의해서 제정된 아스키 코드라는 표준을 채택해서 문자를 표현할 수 있다. 그리고 이러한 코드는 알파벳과

Naver Blog

[의문의 사건] 인천의 산낙지 보험 사망 사건

예전에 궁금한 이야기 Y에서 이 사건을 본 적이 있었다. 상당히 옛날에 시청해서 기억만 하고 있었는데 이번에 정보를 조사해서 사건을 다시 정리해 보려고 한다. 사건의 개요 및 의문점 2010년 4월 19일, 인천광역시에서 당시 22살의 여성인 윤혜원 씨(1988년 생)가 남자친구인 김모 씨와 술에 취한 채 모텔에서 산낙지를 먹다가 질식사하는 사건이 발생했다. 여기까지는 평범한 사고사로 볼 수도 있지만 다수의 의혹이 있는 의문점이 발견되기 시작했다. 그들에게 산낙지를 판매한 상인들의 증언에 따르면 두 사람은 4마리의 낙지를 샀는데 그 중 2마리는 자르지 않고 통째로 구매했다. 세발낙지 등 크기가 작은 낙지는 통으로 먹기도 하지만 그들이 구입한 것은 낙지볶음이나 연포탕에 사용될 정도로 큰 낙지였다. 이것도 산채로 먹기도 하지만 보통은 잘게 다져서 먹어야 먹을 수 있으며, 통째로 먹는 것은 불가능에 가깝기 때문에 술까지 취한 두 사람이 낙지를 통으로 산 것은 상식적으로 이해할 수 없는 일

Naver Blog

[C 언어 기초] 상수에 대한 이해와 이름이 없는 리터럴(literal) 상수

이번에는 변수와는 상대적인 개념을 가지는 '상수(constant)'에 대한 이해와 이름이 존재하지 않는 '리터럴(literal)'상수에 대해서 알아보자. 보통 상수는 크게 이름이 있는 상수와 이름이 없는 상수로 나눌 수 있으며, 나머지는 이전 포스팅에서 학습했던 int 및 double과 같은 자료형(type)을 근거로 표현이 된다. 리터럴(literal) 상수 '상수'는 위에서도 언급 했듯이, 데이터 값 변경이 불가능한 데이터를 뜻한다. 상수와 관련해서 다음의 샘플 코드를 살펴보자. int main(void) { int num = 30 + 40; // 30과 40은 상수 . . . . } 위의 코드에서 30과 40의 합을 요구하는 결과를 변수 num에 저장하는 코드가 존재한다. 이 과정에서 대입연산 보다는 덧셈연산이 우선적으로 이루어진다. 즉, 덧셈을 우선적으로 연산한 다음 그 결과로 얻어진 값을 변수 num에 저장해서 값을 초기화하게 된다. 그리고 30 + 40이라는 연산은 CPU

Naver Blog

[C 언어 기초] 자료형의 자동 및 강제 형 변환(type casting)

이번에는 다른 프로그래밍 언어에도 존재하고 불가피하게 자주 사용되는 '자료형의 변환(type casting)'에 대해서 알아보자. 예를 들어서 char 타입으로 표현되어 있는 데이터의 저장 방식을 int 타입으로 바꾸거나, int 타입으로 표현되어 있는 데이터의 저장 방식을 double 타입으로 바꾸는 것이 '자료형 변환(type casting)'이다. 즉, 자료형 변환이라는 것은 데이터를 표현하는 방식을 바꾸는 것이다. 이러한 자료형 변환은 크게 두 가지로 나뉜다. 자동 타입 변환(묵시적) 강제 타입 변환(명시적) 첫 번째의 '자동 타입 변환'의 경우에는 이름 그대로 프로그램을 컴파일 후 실행 했을 때 자연스럽게 자동으로 발생하는 타입 변환이며, '강제 타입 변환'은 코드를 짜는 프로그래머가 타입 변환을 명시하여 강제로 타입 변환을 발생시키게 하는 행위이다. 대입 연산에 의한 자동 타입 변환 대입 연산자의 왼쪽과 오른쪽에 존재하는 두 피연산자의 타입이 일치하지 않을 경우에는 왼

Naver Blog

[최연소 출산 기록] 5살 짜리 애가 임신하여 출산한 초유의 사건

이번에 미국의 월스트리트 저널과 뉴욕포스트, 영국의 BBC 기사를 둘러보면서 영어 공부(?)를 좀 하고 있다가 아주 골 때리는 초유의 사건 기사를 발견했다. 이름 : 리나 메디나(Lina Marcela Medina de Jurado) 출생 : 1933년 9월 23일, 페루 파우랑게(Paurange) 아들 : 헤라르도(Gerardo), 1939년 5월 14일 생 만삭이던 5살 당시의 리나 리나 메디나는 페루의 파우랑게의 지역에서 태어났다. 그런데 그녀가 5살이던 무렵에 점점 배가 부풀어 오르기 시작했다. 그걸 본 그녀의 어머니는 아이의 배에 복수가 찼거나 종양이 생긴 것이라고 짐작하여 곧장 병원으로 데려가게 되었다. 그러나 의사도 처음에는 복부에 종양이 생긴 줄 알았으나 당시 임신 7개월이라는 사상 초유의 진단이 나오게 된다. 의사는 큰 충격을 받고 몇 번이나 다시 확인 후 어머니에게 초음파 사진을 보여주면서 조용히 사실을 말했으나 어머니는 충격을 받아 그 사실을 받아들이지 못했다.

Naver Blog

[C 언어 기초] printf와 scanf의 디테일한 내용

이번에는 printf 함수와 scanf 함수에 대해서 디테일한 내용을 파고 들어보자. 아마도 파이썬에서 print( ) 함수를 학습할 때 처럼 이스케이프 시퀀스 특수문자나 출력 양식 같은 내용이 나올 것 같은 느낌이 든다. printf 함수 - 문자열 출력 함수 제목 그대로 printf 함수는 문자열을 출력하는 함수이다. 그런데 C 언어는 파이썬과는 다르게 큰 따옴표를 사용해서 문자열을 출력할 수 있다. 따라서 다음과 같이 큰 따옴표로 묶인 문자열을 전달하면서 printf 함수를 호출하면 전달된 문자열이 표준 출력장치인 모니터에 출력된다. #include <stdio.h> int main(void) { printf("Hello world \n"); printf("인생은 B와 D 사이의 C다. \n"); printf("세상의 변화를 보고자 한다면 자기 자신부터 변해라. \n"); return 0; } 실행 결과 Hello world 인생은 B와 D 사이의 C다. 세상의 변화를 보고자

Naver Blog

북한 공작원에 의한 일본인 요코타 메구미(横田 めぐみ) 납북 사건

이번에 북한의 정치범수용소에 관한 글을 쓰려고 정보 수집을 하고 있다가 우연찮게 얻어걸린 북한 정권의 추악하고 비열한 짓거리에 대해서 조사를 해 봤다. 프로필 이름 : 요코타 메구미(横田 めぐみ) 출생 : 1964년 10월 5일, 일본 니가타현 니가타시 사망 : 1994년 4월, 평양시 승호구역 49 예방원(북한 측 주장) 가족 : 父 - 요코타 시게루 / 母 - 요코타 사키에 / 남편 - 김영남 / 딸 - 김은경 상세한 사건 내용 1977년 11월 15일, 당시 13세의 중학생이었던 그녀는 하교길에 실종된 것으로 알려졌으며, 당시 일본 경찰은 단순 실종으로 처리하여 20년이 넘는 세월 동안 의문의 실종 사건으로만 치부되었다. 그러다가 1997년 1월에 망명한 북한 공작원이라고 주장하는 안명진으로부터 메구미는 실종이 아닌 납북된 것이라는 주장을 제기하면서 세상을 떠들썩하게 만들었다. 귀순 경로를 설명하는 북한노동장 작전부 소속 대남공작 특수요원 안명진 안명진의 주장에 따르면 요코타

Naver Blog

[C 언어 기초] while 루프에 의한 반복문

꽤 빠른 시간 안에 진도를 끝냈다. 이번에는 while 루프에 의한 반복문에 대해 알아보자. 사실 파이썬에서 while과 for 루프를 학습한 적이 있기 때문에 좀 수월하게 C 언어의 반복문을 학습할 수 있을 것 같다. 다른 프로그래밍 언어에서 사용하는 반복문도 같은 원리이겠지만 여기서도 반복문의 기본적인 구조와 원리에 대해서 잠깐 짚고 넘어가 보자. 반복문 while 루프의 원리 C 언어의 while 루프 흐름도 만약에 특정 문자열을 열 번 반복해서 출력하고 싶다고 가정하자. 파이썬을 학습해서 알고는 있지만 모르는 척 진도를 나가보자면 지금까지 학습한 내용대로라면 printf 함수를 총 10번 삽입해서 호출해야 하는데 이는 상당히 비효율적인 방법이다. 출력의 양에 비해서 프로그램 코드의 양도 같이 늘어나는 뻘짓이기 때문에 반복적인 실행은 주로 for이나 while 루프를 이용한 반복문을 이용하게 된다. C 언어에서는 while과 for, do~while 총 3가지의 반복문이 있다.

Naver Blog

[C 언어 기초] 중첩 while 루프와 do~while 루프

이번에는 중첩 while 루프와 do~while 루프에 대해서 알아보자. 파이썬에서는 중첩 for 루프에 대해서 학습을 했었는데 여기서는 중첩 while 루프를 학습한다. 그리고 파이썬에는 지원하지도 않는 do~while 루프에 대해서도 학습을 한다. while과 do~while이 어떤 차이가 있는지는 아직 자세히 모르겠다. 중첩 while 루프 파이썬의 중첩 for 루프 흐름도 사실 위의 이미지는 파이썬에서 사용되는 중첩 for 루프이다. 어차피 while과 똑같은 구조이기 때문에 위의 흐름도를 참고해서 원리를 파악해도 크게 문제는 없을 것 같다. 그림을 보면 알 수 있듯이 중첩 while 루프는 while 루프 안에 또 다른 while 루프가 포함된 구조를 말한다. 중첩 while 루프는 그냥 while 루프를 하나 더 추가하면 되니까 새로운 이해를 요구하지는 않는다. 구조가 복잡한 경우에는 흐름을 이해하는데 좀 시간이 걸리겠지만 매우 흔하게 사용된다. 파이썬에서도 학습을 했었는

Naver Blog

[문재인 변호사 시절] 부산 엄궁동 2인조 살인사건

이번에는 문재인 전 대통령의 변호사 시절인 부산 엄궁동 2인조 살인사건에 대해 알아봤다. 해당 사건의 공범으로 지목되어 1993년 대법원에서 유죄 판결을 받은 장씨 1990년 1월 4일 새벽 1시 30분, 부산 사하구 신평동 인근에서 한 남녀가 차를 주차해 놓은 후 여성은 차에서 내리고 남성은 뒷좌석에 누워서 휴식을 취하고 있었다. 그러던 중 갑자기 괴한 2명이 강제로 차 문을 열고 피해 남성의 얼굴을 돌로 가격하였다. 그때 여성이 돌아오고 괴한은 "남성을 살릴려면 차에 타라"라고 말했다. 차는 엄궁동으로 향했으며, 괴한들은 피해 남성의 손을 뒤로 묶어서 입을 막은 다음 피해 남성을 죽이기 위해 낙동강에 밀어 넣었다. 피해 남성은 겨우 테이프를 풀고 물 속에서 나와 괴한과 격투를 벌이다가 방심한 사이에 여성에게 도망치라는 소리를 지른 후 피투성이가 된 몸을 이끌고 도망쳐 나와 근처 공장에 숨어 있었다. 후에 공장 직원에게 발견되어 병원으로 이송되었다. 해당 사건의 주범으로 지목되어

Naver Blog

[C 언어 기초] C 언어의 기본 내장 자료형 이해하기

이번에는 자바와 파이썬 등의 다른 프로그래밍 언어에도 존재하는 '자료형(data type)'에 대해서 알아보자. 자료형에 관해서는 이전 포스팅에도 잠깐 언급을 했었는데 개념적인 부분은 언급하지 않고 대략적으로 어떤 형태로 사용되는지만 언급했었다. 데이터를 표현하는 방법 C 언어의 기본 내장 자료형(data type) 보통 C 언어에서 자료형은 데이터를 표현하는 기준이자 변수와 상수는 자료형에 근거한다고 답을 많이 한다. 그리고 변수는 데이터의 저장을 위해서 할당된 메모리 공간에 붙여지는 이름이라고 언급한 적이 있었는데 만약 메모리 공간의 할당에 앞서 정수를 저장할지, 혹은 실수를 저장할지 결정이 미리 되어 있어야 한다는 점이다. 이전 포스팅에서도 정수의 저장 방식과 실수의 저장 방식은 근본적으로 다른 것을 언급했다. 따라서 메모리 공간을 할당할 때에는 그에 맞는 용도가 결정되어야 하는데 만약 정수를 저장하기로 가정해 보자. 그렇다면 정수를 저장하기 위해서는 몇 바이트를 할당해야 할까

Naver Blog

[C 언어 기초] 컴퓨터가 데이터를 표현하는 방식에 대해서

이번에는 컴퓨터가 데이터를 표현하는 방식에 대해서 알아보자. 컴퓨터는 내부에서 0과 1로 구성된 2진수를 기반으로 데이터를 표현하고 연산도 진행한다. 따라서 2진수를 이해해야 C 언어를 정확하게 이해할 수 있다. 2진수와 16진수 0과 1, 두 개의 숫자 기호를 이용해서 데이터를 표현하는 방식을 가리켜 '2진수'라고 한다. 이와 유사하게 우리가 일상 생활에서 사용하는 아라비아 숫자 열 개의 기호를 이용해서 데이터를 표현하는 방식을 '10진수'라고 한다. 그럼 16진수는 16개의 기호를 이용해서 데이터를 표현하는 방식이라 할 수 있겠다. 즉, 여기서 말하는 'n진수'에서 n은 데이터를 표현하는데 사용하는 숫자 기호의 갯수를 의미한다. 보통은 n진수라고 하면 '수(number)'를 표현하는 도구로만 생각할 수 있지만 2진수나 10진수를 이용해서 숫자 말고 다른 것들도 표현할 수 있다. 그러나 여기서의 목적은 진법 자체의 이해이니 숫자를 대상으로 제한해서 학습해 보자. 진법 별로 사용되는

Naver Blog

사람들이 선동을 당하는 이유와 군중심리에 관한 고찰

보통 이 시간에는 해외 각국의 사건이나 사고 정보들을 조사해서 포스팅을 해야 하는데 오늘은 조금 다른 얘기를 해보려고 한다. 예전부터 생각했던 주제이기도 하고 블로그를 시작할 때 부터 반드시 이 글을 쓰고 싶었는데 이제서야 쓰게 되었다. 원래는 [개인적인 생각] 게시판에 쓰려고 했지만 여기저기 정보를 찾아다니면서 '정보 취득'이라는 것을 했기 때문에 [정보와 이야기] 게시판에 이 글을 쓴다. 조사를 하고 내 생각을 넣다 보니 좀 길게 쓴 면도 있다. 엘리아스 카네티(1905~1994) 우리는 살면서 '군중심리(群衆心理)'라는 말을 들어봤을 것이다. 노벨 문학상을 수상한 불가리아 출신의 작가 '엘리아스 카네티(Elias Canetti)'는 자신의 저서인 <군중과 권력>이라는 책을 쓰면서 독자에게 군중에 대한 다각도의 성찰을 보여줬다. 나치 독일의 선전 및 선동 장관이었던 '파울 요제프 괴벨스(Paul Joseph Goebbels)'는 선동에 방해가 되는 깨어 있는 지식인들을 저격하면서

Naver Blog

[C 언어 기초] 컴퓨터가 정수와 실수를 표현하는 방식

이전 포스팅에서 컴퓨터가 데이터를 2진수로 표현한다는 사실을 학습했다. 그런데 정수나 실수, 그리고 문자와 같은 데이터는 2진수로 어떻게 표현하는지는 모르고 있다. 여기서 확실하게 짚고 넘어가 보자. 정수의 표현 방식 컴퓨터가 정수와 실수, 그리고 문자를 표현하는 방식에는 두드러지는 차이점이 존재한다. 먼저 정수의 표현 방식에 대해 알아보자면, C 언어는 보통 하나의 정수를 4바이트로 표현하는데 이에 대해서는 추후에 알아보자. 여기서는 1바이트를 기준으로 정수의 표현 방식을 짚어본다. 크기가 4바이트에서 1바이트로 줄어도 달라지는 것은 없다. 4바이트면 비트(bit) 단위로 환산했을 때 32비트가 되는데 길어져서 1바이트로 줄였다. 그래서 1바이트를 그림으로 그리면 다음과 같다. 정수의 표현 방식 위의 그림을 보면 정수를 표현하는데 있어서 가장 왼쪽에 존재하는 비트를 가리켜서 'MSB(Most Significatn Bit)'라고 하는데 가장 중요한 비트를 의미한다. 이 비트가 0이냐

Naver Blog

[C 언어 기초] 비트 연산자(Bitwise operator)

이번에는 이전 연산자에서 학습하지 못했던 '비트 연산자(Bitwise operator)'에 대해서 알아보자. 비트 단위로 연산을 진행하는 비트 연산자는 주로 하드웨어와 관련된 프로그래밍에 활용되지만 그 외의 영역에서도 사용되면서 메모리의 효율성을 높이고 연산의 수를 줄이는 요인이 되기도 한다. 그런데 이 연산자의 활용적인 측면을 C 언어 기초 부분에서 언급하면 이해하는데 많은 부담이 따르기 때문에 여기서는 연산자의 기능을 이해하는데에만 초점을 맞춰보자. 다음은 비트 연산자를 하나의 표로 정리했다. 연산자 기능 연산 방향 & 비트 단위로 AND(논리곱) 연산을 한다. 예) num1 & num2; → | 비트 단위로 OR(논리합) 연산을 한다. 예) num1 | num2; → ^ 비트 단위로 XOR(배타적 논리합) 연산을 한다. 예) num1 ^ num2; → ~ 단항 연산자로서 피연산자의 모든 비트를 반전시키며, 2의 보수법을 취할 때 사용할 수 있다. 예) ~num; // num은

Naver Blog

[미스테리 미제 사건] 수원역 노숙 소녀 살인 사건

주로 일본 혹은 대만이나 제 3국의 사건사고들을 조사하면서 돌아다녔는데 이번에는 국내의 사건을 조사해 봤다. 사건의 전말 2007년 5월 14일 경기도 수원시 팔달구 매산로 1가 수원역에서 살인사건이 발생했다. 이 사건에는 무려 7명이 용의자로 지목되었으나 모두 무죄 판결을 받았고 끝내 진범은 잡히지 않은 미스테리한 미제 사건으로 남았다. 사건 당일 아침에 수원고등학교에서 10대 중반으로 보이는 소녀가 살해된 채 발견되었는데 학교에서 10대 소녀가 살해 당한 사건이라 이후 시간이 지났음에도 언론에서도 이 사건을 집중적으로 다루게 된다. 처음에는 소녀가 그 학교 학생이 아닌가 했으나 조사하고 말 것도 없이 애초에 그곳은 남학교였기 때문에 불가능한 일이었다. 그런데 문제는 죽은 소녀의 신원을 특정할 만한 단서가 없었고 여기서부터 사건의 수사는 꼬이기 시작한다. 미성년자이기 때문에 지문 조사를 했지만 여기서도 단서를 알아내지 못했다. 당시 싸늘한 주검으로 발견된 소녀의 시신 신원 파악이

Naver Blog

[C 언어 기초] C 언어의 역사와 장단점에 대해서

드디어 방대한 양의 파이썬 학습을 내 마음대로 줄여서 자체학습을 끝마쳤다. 블로그를 시작하고 두 달 조금 지나서 이룩한 나름의 업적인 듯 하다. 그래서 이번에는 C 언어를 공부해 보려고 한다. 사실 프로그래밍 언어에 대해 무지하고 알지도 못하던 시절에는 C++에 자바, 펄, 루비에 어셈블리어 등 지구상에 존재하는 프로그래밍 언어들을 무식하게 다 배우려고 했지만 파이썬 같은 객체지향 언어 하나에 C 언어와 같은 절차지향 언어 하나 씩만 알아도 문제 없을 것 같아서 바로 C 언어를 공부해 보려고 한다. 원래는 이렇게 생긴 국민 C 입문서인 '윤성우의 열혈 C 프로그래밍'이라는 책을 바탕으로 공부를 하려고 했지만 책에 오개념이 될만한 내용이 포함되어 있다는 정보를 조사하면서 이 책은 패스하게 되었다. 그래도 이 책 안에 '도전 프로그래밍'이라는 문제를 푸는 구간이 있는데 그건 나중에 숙달되면 스스로 풀어보려고 한다. 그럼 이제 본격적으로 C 언어의 진도를 나가보자. 초반에는 간단하게 언어

Naver Blog

[분노 주의] 1975년 이팔국의 아내 토막 살인사건

이번에도 한국의 사건을 조사해 봤다. 상당히 옛날인 1975년 사건인데 정보를 조사하면서 글을 쓰다가도 이렇게 열 받은 적은 처음이었던 것 같다. 사건 정황 사건의 가해자인 이팔국(李八國) 아내를 토막내 살해한 사건의 범인인 이팔국(당시 47세)은 1928년 경상북도 영천군 신녕면에서 태어났다. 일찍 부모를 여의고 고아처럼 지내다가 1958년에 전처와 결혼하여 4남매의 아버지가 되었다. 그러나 1969년에 전처가 사망하면서 무직인 상태였던 그는 집에 있던 식모를 강간하고 사기를 치는 등 포악한 성격을 드러내면서 폭력 행위 등으로 얼룩진 엉망진창의 인생을 살아가고 있었다. 이미 주위 사람들에게 변태 성욕자로 평판이 좋지 않았던 이팔국은 1972년에 자택 가정부를 성폭행하여 형사 입건되면서 처벌을 받은 전과가 있었으며, 이후에도 두 차례나 더 가정부와 문제가 된 전적이 있었다. 평소에 사기를 치는 기질이 있어 일정한 직업도 없이 허가업무 등의 알선을 해주는 등 늘 그늘 속에서 살아오다가

Naver Blog

[C 언어 기초] Hello world 출력 코드 살펴 보기

파이썬이든 자바든 펄이든 루비든 프로그래밍 언어를 처음 배우면 가장 먼저 하는 일이 있다. // C 언어의 컴파일 및 실행 테스트 코드 #include <stdio.h> int main(void) { printf("한글 테스트 \n"); printf("Hello world \n"); return 0; } 실행 결과 한글 테스트 Hello world 바로 'Hello world'라는 문장을 출력하는 것이 일종의 국룰이다. 파이썬 같은 경우에는 print( ) 함수 한 줄이면 문자열을 바로 출력할 수 있는데 C 언어는 뭔가 많다. 그래서 C 언어의 'Hello world' 문자열 출력을 하면서 코드가 어떤 식으로 구성되어 있는지 살펴보기로 했다. 우선 첫 줄의 '#include <stdio.h>' 부분부터 살펴보자. C 언어의 가장 처음에 들어가는 '#include'라는 키워드는 '전처리기(preprocessor)'라고도 한다. 여기서 include라는 영어 단어는 사전적인 의미로 '포

Naver Blog

[C 언어 기초] 주석(comment)과 printf 함수의 이해

주석(comment) 파이썬도 그렇고 자바, 펄, 루비 등의 프로그래밍 언어에는 공통적으로 '주석(comment)'이라는 것이 존재한다. 이는 프로그래밍 언어에서 없어서는 안될 핵심적인 존재이다. 주석의 정의라고 하면 프로그램 내에 삽입된 사람들이 알아볼 수 있는 일종의 메모를 뜻하는데 파이썬도 마찬가지였지만 C 언어 또한 특정 코드가 주석 처리되면 컴파일의 대상에서 제외되어 프로그램 실행에 영향을 끼치지 않게 된다. C 언어는 기존에 사용했던 어셈블리어나 그 위의 언어에서 사람이 이해하기 쉬우라는 목적으로 개발된 이유도 있기 때문에 코드의 양이 많아지면 그 내용을 분석하는데 오랜 시간이 소모된다. 개발자 자신이 구현한 코드라도 주석은 필수이며, 다른 사람이 구현한 코드라면 100줄이 안 되는 분량의 코드를 분석하는데에도 적지 않은 시간이 걸리게 마련이다. 그래서 주석은 프로그램을 분석하는 이들을 배려하는 수단으로 사용되기도 하지만 프로그램을 개발한 자기자신을 배려하는 수단으로도 사

Naver Blog

[전대미문 미제사건] 1982년 미국 시카고 타이레놀 독극물 주입 사건

이번엔 한국도 아니고 일본도 아닌 미국에서 일어난 사건을 조사했다. 1982년 미국의 시카고에서 발생한 진통제인 타이레놀에 대한 전대미문 미제사건이며, 아직도 진범을 잡지 못했다. 사건 전개 타이레놀 독극물 사건에 희생된 7명의 시카고 주민 1982년 미국의 일리노이 주 시카고에서 7명의 주민이 갑자기 사망하는 사건이 발생했다. 그들의 공통점은 모두 타이레놀(Tylenol)을 복용했다는 점이다. 이에 전 미국은 공포에 빠졌고 약 250건 이상의 추가 사망사례가 타이레놀 때문으로 의심 받으면서 약품 판매량은 땅을 치기 시작했다. 당시 타이레놀 약품을 개발한 '존슨앤존슨(Johnson & Johnson)'은 FBI 연방 당국의 수사 끝에 소매 단계에서 고의로 타이레놀을 청산가리로 오염시켰다는 사실을 밝혀내면서 용의자에 현상금을 걸게 되었고 피해자들에게 위로 편지를 보냈었다. 당시 뉴스 속보 또한 이미 판매가 완료된 타이레놀이 위험할 수 있다는 사실을 언론을 통해 알렸으며, 소비자에게 판

Naver Blog

[C 언어 기초] 변수 선언과 자료형(data type)에 대한 기본적인 이해

이번에는 C 언어에서 변수를 선언하는 방법과 자료형(data type)의 기본적인 이해에 대해서 알아보자. 우선 변수를 선언하기 전에 대충 연산자에 대해서 잠시 짚고 넘어가 보자. 연산자(operator) 수학의 연산자가 수학적 연산을 위한 약속된 기호를 의미 하듯이, C 언어의 연산자 또한 C 언어에서 제공하는 다양한 연산을 위해 약속된 기호를 의미한다. 사칙연산 중에서 '덧셈' 하면 흔하게 생각하는 것이 바로 '+' 기호이다. 이 기호가 C 언어의 코드 상에서 그냥 존재한다면 어떻게 받아들여 질까? #include <stdio.h> int main(void) { 3 + 4; // 3과 4의 합을 명령 return 0; } 겉모습만 봤을 때 위의 코드는 크게 문제가 없어보이고 컴파일 또한 문제 없이 진행된다. 그리고 이는 C 언어가 '+' 기호를 지원한다는 뜻이 되는데, 여기서 '+' 기호를 '연산자(operator)'라고 부른다. 그런데 컴파일이 되었다면 실행도 되지 않을까? 실

Naver Blog

[C 언어 기초] C 언어의 연산자와 우선 순위에 대해서

이번에는 양이 좀 많은 C 언어의 연산자와 우선순위 및 연산 방향에 대해서 알아보자. 아무래도 대부분의 연산자가 수학적 연산기능과 똑같이 나오기 때문에 쉽게 이해할 수 있다. 산술 연산자 이전 포스팅에서 대입 연산자(=)에 대해서 잠깐 언급했다. 대입 연산자는 '=' 기호 하나만 사용하면 되지만 여기서도 대략적으로 짧게 언급해 보자. 두 개의 피연산자를 요구하는 연산자를 가리켜서 '이항 연산자(Binary operator)'라고 하는데 여기서 학습할 대입 연산자와 산술 연산자는 모두 피연산자가 두 개이기 때문에 이항 연산자라고 부른다. 연산자 기능 연산 방향 = 연산자 오른쪽에 있는 값을 연산자 왼쪽에 있는 변수에 대입한다. 예) num = 20; ← + 두 피연산자의 값을 더한다. 예) num = 4 + 3; → - 왼쪽의 피연산가 값에서 오른쪽의 피연산자 값을 뺀다. 예) num = 4 - 3; → * 두 피연산자의 값을 곱한다. 예) num = 4 * 3; → / 왼쪽의 피연산

Naver Blog

[일본판 엄여인 사건] 카케히 치사코(筧千佐子) 연쇄 살인사건

이번에는 일본에서 일어난 사건에 대해 알아보자. 한국에서는 '일본판 엄여인 사건'으로 불리기도 하고 자국인 일본 내에서는 '할머니 살인사건'으로 유명하다. 이 사건은 힘이 없는 노인이라고 해서 살인을 저지를 수 없다는 편견을 개박살 냈던 전형적인 언더도그마 사건으로도 유명하다. 이름 : 카케히 치사코(筧千佐子) 출생 : 1946년 11월 28일, 일본 우리나라에서는 뉴스까지 나왔을 만큼 유명한 사건이다. 미국의 로라 룬드퀴스트라는 98세 살인마 할머니와 더불어서 러시아의 타마라 삼소노바(Тамара Митрофановна Самсонова), 한국의 상주 농약 사이다 사건 및 보성 어부 살인 사건 등과 언더도그마의 대표적인 사건으로도 유명하다. 카케히는 돈에 미친 나머지 남성들을 청산 화합물 등으로 독살하고 보험금과 유산 등 10억 엔(한화 약 100억 엔 상당)을 상속 받은 혐의로 일본에서 사형이 확정되었다. 종업원이 10명 정도인 작은 인쇄소를 운영하던 그녀의 첫 남편은 1994

Naver Blog

[C 언어 기초] 사용자로부터 데이터 입력을 받는 scanf 함수에 대해서

이전 포스팅에서 컴파일 후 실행한 코드들은 전부 변수에 값이 저장되어 있는 상태에서 해당 변수의 값을 출력하는 코드만 선보였다. 하지만 이번에는 데이터를 사용자로부터 데이터를 직접 입력 받는 scanf 함수에 대해서 알아보자. 이는 파이썬의 input( ) 함수와 동일한 역할을 할 것으로 보인다. 정수 입력을 위한 scanf 함수 호출 scanf 함수를 이용하면 프로그램 사용자로부터 다양한 형태의 데이터를 입력 받을 수 있다. 우선 여기서는 정수 형태의 데이터를 입력 받는 부분에 대해서만 이야기를 해보려고 한다. scanf 함수의 사용법은 printf 함수와는 유사하다. 그래서 다음의 샘플 코드를 통해서 scanf 함수의 대략적인 사용법을 알아보자. int main(void) { int num; scanf("%d", &num); // 입력된 정수를 변수 num에 저장 . . . . } 데이터를 입력 받으려면 데이터의 종류에 맞게 메모리 공간을 미리 할당해 놔야 한다. 따라서 위의 코

Naver Blog

일본의 관서원교(関西援交) 아동 성 착취물 제작 사건

내가 작성한 포스팅 중에 'Bakky 사건'을 정리한 포스팅이 있다. 해당 포스팅의 오탈자가 있는지 체크를 하다가 Bakky 사건과 상당히 비슷하면서도 Bakky 사건과 비교했을 때 더욱 질 떨어지는 사건이 예전에 한 번 있었던 것 같다는 생각을 하게 되었다. 그런데 사건의 이름을 몰라서 여기저기 찾아다니고 기억을 되살리다가 드디어 찾았다. 보통 일본의 행정구역편제는 [도, 도, 부, 현] 제도이지만 이 밖에도 지역을 구분하는 표현이 몇 가지 더 존재한다. 우리가 특별시, 광역시, 도, 시, 군과 같은 행정상의 구분 외에도 '영남지방', '호남지방' 등의 표현을 사용 하듯이, 일본에서도 수도 동경을 기준으로 반대쪽에 위치한 약 대여섯개의 현을 묶어서 부른다. 이를 '관서지방'이라고 하며, 일본어로는 사투리로 인해 여러 매체에서 많이 들어봤을 '간사이 지방'이다. 그래서 여기서 말하는 '관서원교(関西援交)' 사건은 바로 '간사이 원조교제'를 의미한다. 나는 관서원교에서 제작한 아동 영

Naver Blog

[파이썬 수학] 함수의 미분 계산

이번에는 sympy 모듈로 함수의 미분을 계산해 본다. 미분 외에도 편미분, 고차 미분과 최대 및 최소값 구하기 등에 대해서 학습을 해 보려고 한다. 함수의 미분 계산 함수 y = f(x)의 미분은 독립변수 x에 대한 종속변수 y의 변화율을 계산하는 식이다. 미분은 f'(x) 혹은 dy/dx로 표현할 수 있는데 sympy 모듈의 Derivative 클래스의 객체를 생성하면 함수의 미분을 계산할 수 있다. 이전 포스팅의 함수를 사용해서 자동차의 움직임을 표현해 보자. >>> from sympy import Symbol, Derivative >>> t = Symbol('t') >>> St = 5*t ** 2 + 2*t + 8 >>> Derivative(St, t) Derivative(5*t**2 + 2*t + 8, t) Derivative 클래스는 두 개의 인자를 전달 받아 변수 t에 대한 함수인 St와 부호 t로 이루어져 있다. 이전 Limit 클래스에 대해서는 Derivative 클

Naver Blog

일본 니가타현 아동 납치 후 9년 2개월 동안 감금한 사건

유튜브에 올라온 스펀지 영상 중 이번에도 일본에 관한 사건을 알아봤다. 유튜브에서 과거에 했던 스펀지 재방송을 보면서 이 사건을 다뤘다. 그런데 스펀지에서는 소녀가 구출되는 과정이 알려진 사실이랑은 완전 다르게 해서 방송이 되었는데 다시 제대로 조사를 해 봤다. 사건 발생 납치되어 감금된 피해자 소녀 1990년 11월 13일, 당시 초등학교 4학년이던 일본의 한 소녀가 니가타현 산조시에서 하교하던 길에 어느 30대 남성에게 납치 당하는 사건이 발생한다. 그는 울며 저항하던 소녀를 칼로 위협하며 결박한 뒤 차의 트렁크에 태우고 카시와자키시에 위치한 자신의 집에 데려가 2층의 자기 방에 무려 9년 2개월 동안 소녀를 감금했다. 당시 사건을 재구성한 만화 소녀는 9년 2개월(3,364일) 동안 집 밖으로는 한 번도 외출을 못 했다. 하지만 더 놀라운 사실은 그와 같이 사는 어머니는 이 사실을 그동안 전혀 몰랐다고 진술했다. 아들의 상습적인 폭력이 무서워서 2층에는 얼씬도 못 했다는 것이

Naver Blog

[파이썬 수학] 그래디언트 상승을 이용하여 전역 최대값 알아내기

그래디언트 상승률을 표현한 그래프 때로는 모든 지역과 전역 최대값과 최소값 대신 함수에 대한 전역 최대값을 알아내는 데 관심이 있는 경우도 있다. 예를 들어서 최대 수평거리에 도착시키기 위한 공의 투척각도를 알고 싶다고 했을 때 이러한 문제를 풀기 위해 새롭고 좀 더 실용적인 접근 방법에 대해 학습해 보려고 한다. 이러한 접근법은 1차 미분만을 이용하므로 첫 번째 미분이 계산 가능한 함수에만 적용이 가능하다. 이 메소드는 '그래디언트 상승 메소드'라고 하며, 전역 최대값을 찾아내는 데는 반복적으로 수행하는 접근법이다. 그래디언트 상승 메소드는 상당량의 계산을 수행하야 하기 때문에 수작업으로 문제를 해결하기 보다는 파이썬 프로그램으로 해결해야 한다. 투척 각도를 알아내는 코드를 대상으로 이 방법을 시도해 보자. 이전 포스팅에서 수식을 유도하여 각도 세타(θ)에 속도 u로 던진 투척 물체의 비용시간을 계산한 적이 있었다. 투척한 공이 이동한 총 수평거리인 R은 ux × tflight의

Naver Blog

[도시전설] 영화 숨바꼭질이 모티브가 된 도시 초인종 괴담 사건

오늘 영화 숨바꼭질을 봤는데 이 영화의 모티브가 된 도시 초인종 괴담 사건에 대해 알아보자. 2009년 12월, 서울특별시 관악구를 시작으로 자신의 집 초인종 옆에 'α, X... β, XX... J... K' 같은 의미를 알 수 없는 그리스 문자와 라틴 문자가 적혀 있다는 주민 신고가 동시다발적으로 속출한 직후에 화제가 되었다. 서울 관악구 봉천동의 한 오피스텔 현관문 옆에 누군가가 쓴 의문의 기호 더욱이 CCTV에도 벽에 뭔가를 적는 사람이 확인되지 않은 탓에 정체불명의 라틴 문자를 벽에 적고 사라진 사람에 대한 공포만 커져가는 상황이었다. 범인이 아직도 특정되지는 않았지만 최소한 CCTV의 위치를 의식해서 피할 줄 아는 지능범이라는 것은 확실했다. 영화 숨바꼭질 중 추측하기로는 인터넷에서 남자는 'α', 여자는 'β'이고 x는 혼자 있는 걸 목격한 횟수이거나 집 안에 거주하는 사람의 수를 표시하고 있다는 해석이 떠돌고 있다. 물론 가능성이 높은 심증일 뿐이며, 정확하지는 않다.

Naver Blog

[파이썬 수학] 함수의 적분 계산과 확률밀도 함수

이번에는 파이썬 수학 부분의 실질적인 마지막 포스팅인 함수의 적분 계산법과 확률밀도 함수에 대해서 알아보자. 함수의 적분 계산 정적분 좌표 공식 함수 f(x)의 무한적분 혹은 미분의 반대는 함수 F(x)이다. 따라서 F'(x) = f'(x)가 되는데 함수의 적분은 다른 함수가 되며, 적분함수의 미분 결과는 원래 함수의 원형이 된다. 수학적으로 이 함수는 F(x) = ∫f(x)dx와 같이 표현한다. 다른 측면에서 정적분은 ∫(f(x)dx로 실제 F(b) - F(a)이며, F(b)와 F(a)는 각각 x=b와 x=a에서 함수의 역미분 값이 된다. 두 개의 적분은 Integral 클래스의 객체를 생성해서 계산이 가능한데, 적분 ∫kxdx를 계산할 수 있는 방법은 다음과 같다. 이 경우에 k는 상수가 된다. >>> from sympy import Integral, Symbol >>> x = Symbol('x') >>> k = Symbol('k') >>> Integral(k*x, x) Inte

Naver Blog

[파이썬 수학] 반즐리의 고사리 그리기

이전 포스팅의 기하학적 프랙탈을 형성해서 반즐리의 고사리를 그려보도록 하자. 반즐리의 고사리 '반즐리의 고사리'는 영국의 수학자인 마이클 반즐리(Michael Barnsley)가 점으로 간단한 변환을 반복 적용하여 고사리와 같은 구조를 만드는 방법을 고안했다. 고사리 그는 고사리 모양의 구조를 만들기 위해 다음 단계를 제안했다. 즉, 점 (0, 0)에서 시작하여 다음 설정 확률을 갖는 변환 중 하나를 랜덤하게 선택하는데 변환되는 확률은 다음과 같다. 변환 1(0.85% 확률) xn+1 = 0.85xn + 0.04yn yn+1 = -0.04yn + 0.85yn + 1.6 변환 2(0.07% 확률) xn+1 = 0.2xn - 0.26yn yn+1 = 0.23yn + 0.22yn + 1.6 변환 3(0.07% 확률) xn+1 = -0.15xn - 0.28xn yn+1 = 0.26yn + 0.24yn + 0.44 변환 4(0.01% 확률) xn+1 = 0 yn+1 = 0.16yn 이

Naver Blog

[인터넷 세상의 어두운 음지] 딥웹을 탐방해 봤다

이번에 우연찮은 기회로 딥웹을 탐방해 봤다. 여기서 딥웹은 네이버나 구글 같은 민간 검색 엔진에서도 검색이 되지 않는 웹 사이트를 일컫는 말이며, 대다수가 불법 사이트들이다. 보통 국가에서 접속을 차단한 야동 사이트도 딥웹으로 보는 경우가 많은데 엑스(x) 비디오나 스팽X뱅 같은 경우에는 구글에서도 검색이 되기 때문에 이를 딥웹으로 보지는 않는다. 근데 굳이 야동 사이트가 아니라도 불법 도박 사이트나 불법으로 규정된 사이트는 구글에서 검색이 되지 않는 경우가 많다.(네이버는 말할 것도 없고...) 사실 불법적인 사이트 뿐만 아니라 기업에서 보안을 목적으로 의도적으로 감추는 사이트도 있는데 넓은 의미로 보자면 이 사이트 또한 딥웹의 영역에 해당되기는 한다. 불법이냐 아니냐 그 차이일 뿐이지. 내가 우연찮게 들어간 검색되지 않는 불법 딥웹으로 칭하는 사이트들은 다음과 같다. 부산XXX(불법 성매매 사이트) 예전에 워너크라이 랜섬웨어에 걸려서 실험을 하기 위해 관련 파일들을 찾아다니다가

Naver Blog

[파이썬 수학] 함수의 극한 계산기

이번에는 미적분 파트 중 하나인 '함수의 극한 계산기'에 대해서 알아보자. 함수의 극한 계산기 미적분에서 일반적인 업무는 변수의 값이 어떤 값에 근접할 때 함수의 극한값(혹은 극한)을 찾아내는 것이다. x의 값이 증가함에 따른 함수 1/x 그래프 위의 그림과 같은 그래프 모양을 갖는 함수인 f(x) = 1/x를 생각해 보면 x의 값이 증가함에 따라 f(x)의 값은 0에 근접한다는 사실을 알 수 있다. 극한표시를 사용하면 다음과 같이 작성할 수 있다. >>> from sympy import Limit, Symbol, S >>> x = Symbol('x') >>> Limit(1/x, x, S.Infinity) Limit(1/x, x, oo, dir='-') 무한대(양수와 음수)와 다른 특정 값의 정의를 갖는 S 클래스와 Limit, Symbol 클래스를 import 해서 Limit 클래스의 객체를 생성하는데 여기서 3개의 인자를 전달한다. 하나는 1/x, 변수 x, 극한값인 무한대 값

Naver Blog

[파이썬 수학] 사건이 발생하는 확률에 대해서

이번 포스팅은 이전 포스팅의 FiniteSet 클래스 집합과 이어지는 연장선상의 내용으로 학습된다고 봐도 될 듯 하다. 집합은 확률의 기본 개념에 대한 추론을 가능하게 해 주는데 여기서 알아보자. 사건이 발생하는 확률 집합에서 사건이 발생할 확률에 대한 추론 중 세 가지의 정의가 있다. 실험(Experiment) : 실험은 실행해 보기를 희망하는 일종의 테스트이다. 각각의 가능한 결과에 대한 확률에 관심이 있으므로 테스트를 해 봐야 한다. 주사위를 던지거나, 동전을 던지거나, 카드 묶음에서 카드를 뽑아 내거나 하는 것은 모두 실험의 예시들이다. 실험을 한 번 실행하는 것을 우리는 '시도(Trial)'라고 부른다. 표본공간 : 모든 가능한 실험 결과는 표본공간이라는 집합을 형성하며, 공식에서는 S라고 표기한다. 예를 들어서 S면의 주사위를 한 번 던지면 표본공간은 {1, 2, 3, 4, 5, 6}이 된다. 사건 : 사건은 확률을 계산하기 위한 결과의 집합으로 표본공간의 부분집합이

Naver Blog

한국 국적을 가진 일본의 AV 남배우 하나오카 짓타(花岡じった) 이야기

지금까지 여자 AV 배우에 관한 이야기를 쓴 적은 있지만 남자는 처음이다. 사실 작품에서 많이 보긴 했었지만 여자 말고는 크게 관심을 가지지 않아서 잘은 몰랐는데 이 양반이 한국 국적을 가지고 있다는 얘기는 이번에 처음 알았다. 이름 : 하나오카 짓타(花岡じった) 한국 이름 : 유광석(柳光石, 사실상 본명) 출생 : 1964년, 일본 도쿄도 국적 : 대한민국 직업 : 前 AV 남배우, 現 택시기사 활동시기 : 1989년 ~ 2013년 조총련계 가정에서 태어난 유광석은 유복하지는 않은 환경에서 자랐으며, 그의 아버지는 북한 김일성의 열렬한 추종자이자 종북주의자였다고 한다. 집에서는 가정폭력을 일삼으며, 폭력 가장이었는데 결국 아버지에 대한 반항심으로 그는 북한 대신 대한민국 국적을 선택했다고 한다. 그렇다고 딱히 한국인이나 재일교포의 자아를 가진 것은 아니며, 국적만 한국일 뿐이지 그냥 100% 일본인이라고 봐도 무방하다. 심지어 한국어를 유창하게 잘 하지도 못하며, 2011년에 촬영

Naver Blog

[파이썬 수학] matplotlib 패치(patches)로 기하학적 형상 그려보기

이번에는 matplotlib의 패치(patches)를 이용해서 기하학적 형상을 그려보자. 이와 같은 각각의 기하학적 형상을 '패치(patches)'라고 하는데 프랙탈(fractal)을 이용해서 복잡한 기하학적 형상이나 모양을 간단한 수학 공식으로부터 발생시켜서 그릴 수 있다. 예를 들어서 그래프에 원을 하나 추가하려면 원의 직경과 중심을 설정한다. 이 방법은 지금까지 점을 그리기 위해 x와 y 좌표를 설정한 맷플롯립 사용법과는 확연하게 차이가 난다. 패치의 특성을 사용하는 프로그램을 작성하기 전에 맷플롯립 그래프를 생성하는 방법을 따로 이해할 필요가 있다. 다음 코드에서 맷플롯립을 통해 (1, 1), (2, 2), (3, 3) 좌표를 표시해 보자. >>> import matplotlib.pyplot as plt >>> x = [1, 2, 3] >>> y = [1, 2, 3] >>> plt.plot(x, y) [<matplotlib.lines.Line2D object at 0x7fea

Naver Blog

리눅스의 캐시(cache) 메모리를 지워서 메모리 확보하는 방법

이번에는 리눅스에서 캐시(cache) 메모리를 지워서 메모리 공간을 확보하는 방법에 대해 알아보자. 가끔 패널에 있는 시스템 모니터링을 해 보면 실행 중인 프로세스도 많지 않은데 사용 가능한 공간이 43% 밖에 안 남는 경우도 있다. 나름 RAM 용량이 16기가인데 이런 현상 때문에 PC가 버벅거리면서 한 번씩 재부팅을 하는 경우가 생길 때도 있다. 컴알못이기도 하고 리눅스를 현재 공부하는 입장에서 왜 이런 현상이 발생하는지 알아보기 위해 정보를 좀 검색해 보니 캐시 메모리(Cache Memory)가 문제였다. 메모리 만큼도 중요한 게 CPU인데 4개의 코어에 3.6GHz 속도를 내고 있다. 그런데도 아무런 행위도 없이 가만히 있는데도 저렇게 왔다갔다 하는 것도 문제지만 저걸 비워내서 공간을 확보하려면 실행 중인 프로세스를 전부 끄는 수 밖에 없다. 그래서 여기서 건들 부분은 바로 메모리인데, 메모리 공간이 부족하면 새로운 프로세스는 생성이 안되는 문제가 발생하기도 하지만 작은 여유

Naver Blog

[충격 칼부림] 2019년 일본 가와사키 흉기 난동 사건

요즘 칼부림 사건이 많이 일어난다. 최근에는 경기도 분당구 서현역에서 최원종이라는 미친놈에 의한 칼부림 사건이 있었다. 또 최근에는 부산 서면부터 해운대, 전국 각지에서 칼부림 예고가 일어나면서 본래 집 밖으로 잘 안나가는 내 성향을 더욱 끌어올리는 범죄들이 많이 일어나고 있다. 그리고 얼마 전에는 서울 신림동 칼부림 난동 사건으로 1명이 사망하고 3명의 부상자를 냈던 사건이 있었다. 체포된 범인의 이름은 '조선'이었는데 이미 한국에서 공론화가 된 사건을 다시 끄집어내서 작성하는 건 내 블로그 운영 성격상 맞지 않아서 일본에서 이와 유사한 사건이 있었는데 따로 조사해 봤다. 사건의 정보 및 범인의 신상 사건발생지 : 일본 가나가와현 가와사키시 타마구 노보리토역 인근 발생일자 : 2019년 5월 28일 오전 7시 45분 경 희생자 : 걸어가는 시민 및 버스 정류장의 초등학생 등 흉기 : 버드 나이프 2개 사망 : 2명(범인 미포함) 사망자 : 쿠리바야시 하나코(栗林華子, 당시 11세)

Naver Blog

[파이썬 수학] 투사체의 포물선 애니메이션 그리기

투사체의 포물선 애니메이션 예시를 돕기 위한 matplotlib - animation 적용 이전 포스팅에서 투수가 던진 공에 대한 포물선 운동 궤적을 표시하면서 학습한 적이 있었다. 여기서는 실제 상황에서 공의 움직임을 더욱 정교하고 현실감 있도록 시연하기 위해 matplotlib의 애니메이션 기능을 포물선 애니메이션으로 적용시켜서 구현해 보려고 한다. # 던진 물체의 포물선 운동으로 애니메이션 적용 from matplotlib import pyplot as plt from matplotlib import animation import math g = 9.8 def get_intervals(u, theta): t_flight = 2*u*math.sin(theta) / g intervals = [] start = 0 interval = 0.05 while start < t_flight: intervals.append(start) start += interval return interv

Naver Blog

[일요일은 101% 방송사고] 성우 장정진 질식사 사건

과거에 KBS에서 '일요일은 즐거워'의 후속 프로그램이었던 '일요일은 101%'라는 프로그램이 있었다. 내 기억상 강병규, 신정환, 이혁재 등 유재석과 더불어 '위험한 초대'라는 물 떨어지는 프로그램에서 봤던 연예인들이 나왔었던 걸로 기억하는데 여기서 희대의 사건이 터지게 된다. 이름 : 장정진(張正鎭) 출생 : 1953년 1월 24일, 경기도 수원 사망 : 2004년 10월 11일, 서울 이화여대 목동병원 취미 : 골프 종교 : 개신교(장로회) 소속 : 前 TBC 성우극회 9기 활동시기 : 1977년 ~ 2004년 어렸을 때 故 장정진 성우님의 목소리를 많이 들으면서 자라왔다. 초창기 명탐정 코난에서 '유명한' 목소리를 맡으신 것으로 유명하며, 지구방위대 후뢰시맨의 그린 후레시와 나레이션, SBS 인기가요 등 여기저기 목소리가 많이 나왔다. 그런데 앞으로 그의 목소리를 들을 수 없는 희대의 사고가 터지게 된다. 2004년 9월 13일 오후 7시, 당시 KBS의 예능 프로그램 중 하

Naver Blog

요새 한국이 너무 흉흉하네요 - 뭐냐 이건 도대체가...

네이버에 병신들 상당히 많네...;; 근데 전부다 맘카페네? "요새 한국이 너무 흉흉하네요".... 내 생각에는 누군가가 맘카페에다가 일부러 공포 분위기 조성할려고 저렇게 똑같은 글을 쓰고 다니는 것 같다. 맘카페 특성이 남이 하는 말을 잘 듣고 스스로 생각이란걸 할줄 모르는 사람들이 많으니까. 선동에 잘 당하는 집단이 맘카페 아니겠나... 맘카페가 선동하기 딱 좋으니까 사회 혼란스럽게 만들려고 특정 집단이 공포 분위기 조성하는거 딱 보인다... 근데 너무 노골적으로 선동하네 ㅋㅋㅋ 앵간한 빡대가리 아니면 저런 선동은 잘 안 통할텐데... 맘카페는 얘기가 다르려나?ㅋㅋㅋ 그리고 보통 우리나라 사람이면 "우리나라" 라고 하지. 한국이라고 안하지 않나? 그와중에 스프레이 주문한 호구년 발견ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그거 주문한다고 써먹을수나 있어?ㅋㅋㅋ 여론 조작을 할거면 좀 티를 안나게 하던가... 맘카페랑 틀딱들 제외하면 저런거 선동 당하는 사람들이 있을까... 하긴 스스로 생각이라는걸 할

Naver Blog

[파이썬 수학] 방정식 및 선형 방정식 시스템 풀기

이번에도 마찬가지로 sympy 모듈의 Symbol 클래스를 import 해서 방정식과 선형 방정식 시스템을 풀어보자. 방정식 풀기 sympy의 solve( ) 함수는 방정식에 대한 해를 찾아내는데 주로 사용된다. x와 같은 변수를 표현하는 부호를 갖는 수식을 입력하면 solve( ) 함수는 해당 부호의 값을 계산하는 원리인데 항상 입력한 수식이 0이 될 것이라고 가정해서 수식을 계산한다. 즉, 해당 부호에 입력하면 전체 수식이 0이 되는 값을 해로 출력한다는 것이다. 간단한 방정식인 x - 5 = 7을 보자. 여기서 x의 값은 누가봐도 12인데 이를 계산하기 위해 solve( ) 함수를 이용하면 방정식의 한 쪽이 x - 5 - 7 = 0 처럼 0 되도록 해야 한다. 그럼 이제 solve( ) 함수를 사용해 보자. >>> from sympy import Symbol, solve >>> x = Symbol('x') >>> expr = x - 5 - 7 >>> solve(expr) [12

Naver Blog

네이버 프리게이트 카페 도더리 사기 사건

전날 심심해서 변요한, 이주승, 류준열 주연의 한국영화 '소셜포비아'를 보게 되었다. 2015년에 개봉된 영화인데도 불구하고 트위터발 메갈리아 남혐 세력 같은 장면들이 나오는 등 미래를 내다본 작품으로 재조명 받는 영화이긴 했는데 개인적으로 눈길이 가는 장면은 추억의 이름인 '도더리'가 나온다는 것이다. 개인적으로 '도더리'하면 2006년인가 2007년 쯤 도더리 프리게이트 사건이 떠오르는데 이걸 영화에서 보니까 반갑기도 하고 옛날 추억이 떠올라서 이번에 프리게이트 도더리 사건을 다시 찾아보기로 했다. 솔직히 뉴스에 뜨거나 그럴 파급력의 사건은 아니었고 아는 사람만 아는 사건이다. 사건의 발단 코에이에서 제작한 칸노 요코의 대항해시대2 OST 스페셜 에디션 2007년 3월에 발생한 이 사건은 네이버의 대항해시대 카페 중에서 프리게이트라는 카페가 있었다. 여기서 프리게이트 사건은 우여곡절 끝에 프리게이트 카페의 운영자가 되었던 도더리가 2005년 대항해시대1, 2의 음악을 맡아 유명해

Naver Blog

[파이썬 수학] sympy 모듈을 이용하여 그래프 그려기

이번에는 sympy 모듈을 이용해서 그래프를 그려보자. 이전 포스팅에서 matplotlib 모듈을 이용해서 그래프를 그렸는데 아마도 차이점이라면 sympy 모듈은 좌표계의 직선 그래프를 그리는 것 같다. sympy 모듈로 그래프 그리기 matplotlib에서는 두 물체 사이의 거리에 대해 작용하는 인력을 그래프로 표시하기 위해 각 거리값에 대한 인력을 계산했고 거리와 힘에 대한 값의 리스트를 matplotlib을 이용하여 적용했다. 다른 측면에서 sympy 모듈을 이용하려면 여기에 표시하기를 원하는 직선의 방정식을 전달하고 그래프를 생성하는 원리인데 예를 들어서 y = 2x + 3이라는 방정식을 좌표계에 직선으로 표시해 보자. >>> from sympy.plotting import plot >>> from sympy import Symbol >>> x = Symbol('x') >>> plot(2*x+3) <sympy.plotting.plot.Plot object at 0x7f1455

Naver Blog

호빠 선수에게 집착하여 AV 배우로 데뷔하게 된 호시나 아이(星奈 あい) 이야기

이번에도 좀 기구하고 안타까우면서도 멍청한 사연을 가진 일본의 AV 배우에 대해서 찾아봤다. 이름 : 호시나 아이(星奈 あい) 출생 : 1995년 10월 29일, 일본 도쿄도 신체 : 156cm / B83 - W59 - H87(cm) / C컵 / O형 소속사 : 밤비 프로모션 전속 계약 : PREMIUM 데뷔 : 2017년 9월 Kawaii 데뷔 당시에는 청순한 이미지의 여대생 컨셉으로 데뷔 했지만 다른 키카탄 배우(특정 전속에 소속되어 있지 않고 무소속 배우로 다양한 기획 작품에 출연하는 배우)들과는 다르게 매주 2~3 작품씩 발매하는 상당히 빠른 페이스로 공장장이라는 별칭을 얻으면서 AV 판매랭킹 상위권에 이름을 올렸다. 그렇게 인기 있는 키카탄 생활을 하고 있을 때 데뷔 후 약 1년이 지났다. 호시노 아이의 자해사진 중 일부 갑자기 트위터에 자해사진을 올리면서 배우 생활을 그만하겠다고 선언하게 된다. 그 이유는 호빠 선수에게 사랑에 빠져서 AV 업계에 데뷔하였지만 현재는 정신과

Naver Blog

[파이썬 수학] sympy의 FiniteSet을 이용한 집합

이번엔 sympy 모듈의 FiniteSet 클래스를 이용해서 집합 공부를 해 보자. 사실 집합 같은 경우에는 파이썬의 기초 포스팅에서 한 번 다룬 적이 있었는데 그건 set, frozenset이라는 파이썬의 내장 클래스이다. 뭐가 다른지 차이점을 학습하면서 살펴봐야겠다. 집합은? 보통 학창시절 수학 시간에 집중을 했다면 앵간한 빡대가리가 아닌 이상 집합에 대해서는 어느 정도 이해를 하고 있을 거라고 본다. 그런데 파이썬에서 정의하는 집합은 수학적인 집합과는 약간의 차이가 있는데 여기서 집합은 개별적인 객체(요소 혹은 구성원, 멤버라고 명칭)의 컬렉션을 일컫는다. 집합을 객체 컬렉션과 구별할 수 있는 두 가지의 특성은 첫 번째, 집합이 "잘 정의 되었다."라는 것은 컬력션 내에 "특정 객체가 존재하는가?"라는 질문에 항상 룰이나 기준에 근거하여 "예" 혹은 "아니오"라고 답을 할 수 있다는 것을 의미한다. 두 번째는 한 개의 집합을 구성하는 두 가지의 원소는 같지 않다는 점이다. 집합

Naver Blog

파이썬으로 스톱워치(stopwatch) 프로그램 만들기

이번엔 파이썬으로 GUI를 활용해서 스톱워치를 만들어보려고 한다. 여기서 내가 구현한 버전이 총 2개가 있다. 버전 1(tkinter 모듈 사용) 우선 첫 번째 버전은 GUI 그래픽을 만들 수 있는 툴의 일종인 'tkinter'를 사용해서 만들어 보자. 여기서 기본 스톱워치를 만들려면 총 세 개의 라이브러리가 필요한데, 하나는 time 모듈, 하나는 tkinter, 하나는 PIL 이미지 처리모듈을 사용하기로 한다. 기본적인 틀과 함수는 다음과 같다. # Stopwatch(Version 1) import tkinter as tk import time from PIL import Image, ImageTk # stopwatch 시작 플래그 def start(): global is_running global start_time if not is_running: is_running = True start_time = time.time() update_time() # stopwatch 중지

Naver Blog

중국 유학생에 의한 일본 후쿠오카 일가족 살인사건

옛날만 해도 나는 중국이라는 나라에 대해 크게 부정적인 이미지를 가지고 있지는 않았다. 어릴 때만 해도 중국의 무협영화를 즐겨봤었다. 그런데 최근에 코로나 사태와 더불어서 다른 나라에 민폐를 주고 동북공정에 일대일로 등 기타 뻘짓 때문에 중국을 상당히 안 좋게 보고 있다. 그리고 얼마 전에 한국의 여성 BJ가 캄보디아에서 사망하는 사건이 있었는데 중국인 부부가 피의자 명단에 오르면서 갑자기 이 사건이 생각났다. 사건의 상세 내용 당시 사건의 신문 기사 2003년 6월 20일, 후쿠오카 하카타항 하코자키 부두 근처 바다 속에서 일가족의 시신이 발견되었다. 시신의 주인은 후쿠오카시 히가시구에 살던 M씨(당시 만 41세)와 그의 아내 C씨(당시 만 40세), 초등학교 6학년 생인 장남 K군(당시 만 11세), 초등학교 3학년 생인 장녀 H양(당시 만 8세)였다. 경찰은 살인사건으로 판단하고 수사를 시작했으며, 얼마 후 중국 유학생이었던 왕량(王亮, 당시 만 21세), 양닝(杨宁, 당시 만

Naver Blog

아니... 10대와 20대 여자 분들이 무슨 이유로... 도대체 왜...?

어제 블로그를 시작한 이후로 처음으로 방문자 수 1,000명을 돌파했었다. 어차피 방문자 모을려고 운영하는 블로그는 아니라서 그냥 무덤덤했는데 이상한 점이 하나 있었다. 원래 1,000명을 돌파하면 "그냥 그렇구나"하고 넘어갈 문제지만 특이점은 평소에 많아봐야 400명 언저리에서 하루 방문자 수가 찍혔는데 다음날 기하급수적으로 갑자기 1,000명이 넘게 방문해서 여기에 의문점을 갖게 되었다. 어제 방문자 수들 중 절반이 Bakky 사건을 검색해서 들어왔다. 그래서 통계를 조회해 보니 2위와는 엄청난 격차로 1위를 한 포스팅이 있었는데... 유입경로를 살펴보자. 모바일 통합검색을 보면 전체적으로 'bakky 사건'을 검색해서 들어온 사람이 상당히 많았다. 이 사건이 이제와서 TV나 뉴스로 보도될 정도의 파급력은 아닐텐데...? 그렇다고 유튜브에서 이 사건을 전문적으로 다룬 사람도 많지는 않았던 걸로 기억한다. 이 사건을 전문적으로 다룬 유튜버는 '케이짱 Kzzang'이라는 유튜버가 다

Naver Blog

[파이썬 수학] sympy 모듈을 이용한 대수와 부호 수학

현재까지 모든 코드에서 수학문제와 풀이는 숫자만 가지고 계산을 했는데 이번에는 다른 방법으로 부호와 부호 간의 연산을 하는 측면에서 수학을 배우고 연습하는 방법에 대해 알아보자. 전형적인 대수(Algebra) 문제에서 x와 y를 모두 생각해 보면 이러한 수학유형을 부호 수학(Symbolic Math)이라고 한다. math 모듈에서 x3 + 32 + 3x + 1 문제를 보면 이를 위해 부호를 포함한 수식을 작성하고 이에 근거하여 연산을 수행하기 위해 우리는 sympy 모듈을 사용할 수 있다. 참고로 sympy 모듈은 내장되어 있지 않은 경우에는 다음과 같이 터미널에서 pip 명령어를 사용하여 설치한 뒤에 진행하면 된다. $ pip install sympy Defaulting to user installation because normal site-packages is not writeable Collecting sympy Downloading sympy-1.12-py3-none-any

Naver Blog

2012년 대만의 열차 집단 성행위 난교 사건

주로 일본의 사건이나 사고에 관해서 찾아보곤 했었는데 이번에는 또 다른 섬나라인 대만으로 가 보자. 사건이 발생한 해당 열차의 행사용 전세 객차 2012년 2월 19일, 대만 타이베이에서 출발하는 열차의 행사용 전체 객차에서 집단 성행위 사건이 발생했다. 정확하게는 집단 난교인 전문용어 '갱X(Gangbang)'을 일컫는 사건이다. 위의 이미지에 적힌 한자는 '事實上每一號人物'라고 적혀 있는데... 내가 중국어 전공이 아니라서 이게 무슨 뜻인지는 잘 모르겠다. 열차 집단 난교 사건을 주도한 범인 이런 사건을 주도한 남자는 차이위린(蔡育林 당시 37세)이라는 사람이다. 이 사건을 주도한 계기는 인터넷에 일본의 AV 영상을 올리면서 이것보다 더 리얼하게 해볼 사람을 찾는다는 글을 올리게 되었고 이 글은 총 18명의 남자와 17세 여성 한 명이 이 일에 참여하기로 했다. 대만 타이베이에서 운영하는 台铁的客厅车 열차 첫 모집은 2011년 11월 차이위린은 BBS의 "Orian Art Mus

Naver Blog

[분노 주의] 부산 금정구 여자 고등학교 정다금 사망사건과 가해자 신상

유튜브 알고리즘을 통해 올해 2월에 방영되었던 SBS '그것이 알고싶다'에서 현재 잊고 있었던 사건을 다시 방송해 주면서 당시에 분노 했었던 내 기억이 되살아 나는 계기가 되 버린 사건이 하나 있었다. 최근에 종영된 넷플릭스의 드라마 더 글로리를 떠올리게 하는, 아니 어쩌면 이를 능가하는 희대의 사건인 2009년에 있었던 부산 금정구 여고생 사망사건이다. 사건 상세 내용 사건의 피해자인 정다금은 아버지가 지역에서 피부과 의사로 재직하고 있는 등 유복한 환경의 집안에서 자라나 가족들의 사랑을 받으면서 부족한 것 없이 자랐다. 게다가 예쁜 미모에 전교 50등 이내로 성적도 준수했으며, 붙임성 있는 성격까지 갖추면서 또래 친구들에게 인기가 많았다. 그러나 이런 인기와 함께 딸려오는 시기와 질투도 많았다고 한다. 그렇게 2학년이 되고 새롭게 맞이한 학기 초, 소위 일진이라고 불리는 심씨 성을 가진(사건의 주동자) 동급생의 눈에 들었는데 이게 모든 불행의 시작이자 만악의 근원이었다. ※ 우선

Naver Blog

[도시전설] 수영장 물에 있던 정자로 인해 임신한 사건

2009년에 전 세계적으로 화제가 되었던 도시전설이 갑자기 생각났다. 스토리는 이집트에 여행을 갔다온 폴란드 국적을 가진 13살 짜리 한 여자아이의 어머니인 마그달레나 크비아트코프스카(Magdalena Kwiatkowska)가 딸이 머물렀던 호텔의 수영장 물에 있던 정체 모를 남자의 사정된 정자 때문에 임신을 했다고 주장하여 파문이 일었다. 주장의 당사자인 어머니는 "나의 딸이 호텔에 머무는 동안 어떠한 남자도 만나지 않았다. 그러나 호텔 수영장에서 수영한 뒤 임신을 하게 되었다."라고 주장하고 있으며, 호텔 관리측에 과실을 물어서 고소를 진행 중이라고 한다. 당시 기사 현재까지 이 사건의 고소 진행이 어떻게 되었는지는 알려진 바가 없다. 실제로 발생한 사건이 아닐 수도 있으며, 누군가가 만든 허구의 이야기일 가능성 또한 배제할 수 없다. 사건의 실제 여부와는 별개로 실제로 이런 사건이 가능할 수도 있겠다는 묘한 현실감이 존재했기 때문에 보는 이들로 하여금 많은 흥미를 유발했기 때문

Naver Blog

[파이썬 수학] 두 데이터 집합 간의 상관관계와 산점도

이번에는 두 숫자 집합 간 관계의 특성과 강도를 알려주는 통계측정값(피어슨 상관계수)을 계산하는 방법에 대해 알아보자. 상관계수 계산 피어슨 상관 계수(Pearson Correlation Coefficient) 피어슨 상관계수(Pearson Correlation Coefficient)는 간단하게 줄여서 '상관계수'라고도 부르는데 이 값은 선형 관계의 강도를 측정한다. 두 데이터 집합이 비선형 관계에 있을 때 상관계수를 알아내기 위해서는 다른 측정값을 이용해야 한다. 상관계수는 양의 값 혹은 음의 값을 가지면서 -1 이상과 1 이하 사이의 범위를 가진다. 상관계수가 0이라면 두 데이터 간에 선형 관계가 전혀 없음을 의미하는데 이는 두 값이 서로 독립되는 것을 의미하지는 않는다. 예를 들어 두 값 사이에는 비선형 관계가 있을 수 있다는 뜻이다. 상관계수가 1이거나 1에 가까우면 매우 강한 양의 선형 관계가 있음을 의미하는데 정확하게는 상관계수가 1이면 완전한 양의 상관관계를 의미한다.

Naver Blog

[랜섬웨어 실험] 워너크라이(Wanna cry)에 감염되어 봤다

이번에는 Windows 운영체제를 대상으로 하는 바이러스의 일종인 랜섬웨어에 직접 걸려보려고 한다. 이미 유튜브에서 실험을 한 영상이 있기는 하지만 영상으로 봐서는 잘 체감이 안되서 직접 걸려보고 복호화... 까지는 만약에 가능하면 해 보려고 한다. 만약을 대비해서 가상머신에 Windows 7을 설치해서 실험해 보자. 만약 가상머신에서 랜섬웨어에 걸렸는데 호스트 pc까지 감염되면 타임시프트로 시스템을 이전 시점으로 복구하면 그만이다. 어차피 윈도우 운영체제 대상이라고 했으니 호스트 pc로 리눅스 운영체제를 사용하는 나에게는 해당사항이 안될지도 모르니까 안심해도 되겠...지? 랜섬웨어 워너 크라이 증상(Wanna Cry) 간단하게 이번에 실험해 볼 랜섬웨어에 대해서 알아보자면 여기서 가상머신에 감염시킬 '워너 크라이(Wanna Cry)'는 'Wannacrypt'라고도 불리며, 2017년 5월 달에 전 세계적으로 대규모 공격이 시작되어서 유명해 진 랜섬웨어이다. 당시에는 북한 김정은의

Naver Blog

[파이썬 수학] 중위수와 최빈값 계산하기

이번에는 중위수와 최빈값 계산을 파이썬으로 해보려고 한다. 그 전에 평균부터 알고가 보자. 평균 계산 사실 평균은 기초 교육을 받은 사람이라면 누구나 할 수 있는 계산 공식이다. 그런데 평균은 숫자의 집합을 요약하는 일반적이고 가장 직관적인 방법 중 하나이다. 'average'에는 다른 종류의 평균도 존재하지만 일반적인 실생활에서 사용하는 평균(mean)을 'average'라고 부르는데 만약 표본숫자 집합을 계산하는 평균을 내보면 어떨까 만약 위와 같이 2021년 기부금 100억 클럽이 있다고 하자. 여기서 기간 2021년을 A라고 통칭하고 기부금을 받는 학교의 자선행사가 있다고 하면 2021년에 위의 기업들을 12개로 간추려서 해당 년도에 벌어들인 기부 금액의 총액(억 단위)을 다음과 같이 표시해 보자. (기부 금액은 위의 표와는 다르게 임의로 설정했다) [100, 60, 70, 900, 100, 200, 500, 500, 503, 600, 1000, 1200] 총합을 구한 다음

Naver Blog

[파이썬 수학] 분산과 표준편차 계산

이번에는 분산과 표준편차를 계산해 보자. 그 전에 산포도 측정에 대해서 짚고 넘어가자. 산포도 측정 통계 계산 값은 산포를 측정하여 데이터 집합 내의 숫자가 어느 정도 평균에서 떨어져 있는지를 나타내는 지표이다. 산포를 측정하는 3가지 값으로는 범위(range), 분산(variance), 표준편차(standard deviation)가 있다. 이전 포스팅에서 특정 연도에 기부금 리스트를 다시 재활용 해 보자. [100, 60, 70, 900, 100, 200, 500, 500, 503, 600, 1000, 1200] 일별 평균 기부금은 477.75였다. 그러나 평균만을 보자면 모든 기부금이 좁은 범위 내에(예를 들면 400과 500 사이)에 위치하는지를 알지 못하는 단점이 있다. 또한 그 이상으로 넓은 범위 내(예를 들어 60과 1200 사이)에 위치하는지도 모른다. 범위는 숫자 리스트에 대해 가장 큰 수와 가장 작은 수 간의 차이가 된다. 우리는 평균은 동일하지만 범위는 상당히 다른

Naver Blog

[파이썬 수학] 만유인력 뉴턴의 법칙과 포물선 운동

이번에는 만유인력에 대한 뉴턴의 법칙과 포물선 운동에 대해 알아보자. 만유인력에 대한 뉴턴의 법칙 아이작 뉴턴(Sir Isaac Newton / 1643.01.04 ~ 1727.03.31) 만유인력의 법칙은 영국의 물리학자이자 수학자인 아이작 뉴턴이 연구하여 1687년 자신의 저서인 '자연 철학의 수학적 원리(프린키피아)'를 통해 기록한 운동의 법칙이다. 고전연학의 가장 기본이 되는 법칙으로 많은 과학 법칙들이 이를 토대로 만들어 졌다. 만유인력에 대한 뉴턴의 법칙에 의하면 질량이 m1인 물체는 질량이 m2의 물체를 다음 공식의 힘인 F로 끌어당긴다는 이론이다. 식에서 r은 두 물체 간의 거리이며, G는 중력 상수이다. 수식을 이용하여 두 물체 간의 거리가 증가하게 되면 힘 F에는 어떤 일이 벌어지게 되는지 알아보자. 첫 번째 물체의 질량(m1)은 0.5kg이고 두 번째 물체의 질량(m2)은 1.5kg이라고 했을 때 중력 상수의 값은 6.674 * 10-11 N m2 kg-2이다.

Naver Blog

유일신과 성전에 의해 납치되어 참수된 영국인 케네스 비글리 이야기

예전에 이라크에서 미군에 군수물자 납품 근무를 하다가 납치되어 피살된 김선일 사건과 일본의 코다 쇼세이가 전쟁 상황이 보고 싶어 이라크로 갔다가 납치되어 피살된 글에 관해서 쓴 적이 있었다. 그런데 이 사람들 말고도 이라크에서 희생된 영국인 케네스 비글리(Kenneth Bigley)가 있었는데 이 사람에 관한 정보는 어디를 봐도 한국에서는 찾을 수가 없어서 이번에 직접 해외 사이트 등지를 찾아다니면서 조사를 해 봤다. 개인적으로 궁금하기도 하고 한 달 전 쯤에 댓글을 달아 준 누군가의 요청이 있었기 때문에 직접 조사를 해 봤다. 닉 버그 피살 사건이야 나무위키에도 등재되어 있을 정도로 유명하긴 하지만 유진 암스트롱은 아무리 정보를 찾아도 안 보였다. 그래서 그와 함께 납치되었던 영국인 케네스 비글리에 대해서 찾아보려고 한다. 유진 암스트롱의 경우에는 해외 등지에서도 정보가 별로 없어서 그와 함께 납치된 케네스 비글리를 찾으면 뭔가 나올 것으로 예상된다. 안그래도 케네스 비글리 같은

Naver Blog

대한민국 사회에 학력위조 스노우볼을 굴린 희대의 사기꾼 신정아 사건

전날 밤에 심심해서 영화를 한 편 봤다. 배우 김꽃비 주연의 2015년 작 '거짓말'이라는 영화였는데 리플리 증후군을 연상시키는 공상허언증 환자의 거짓말을 바탕으로 이야기를 풀어나가는 영화였는데 상당히 소름끼치고 많은 것들을 생각나게 하는 영화였다. 내 주변에도 이런 사람들이 있을 것 같은 느낌... 내가 군대에 있을 당시에도 이런 공상허언증을 앓고 있었던 후임이 한 명 있었다. 나보다 3살이 많은 후임이었는데 그 후임은 전라도 광주에서 살던 형이었다. 3개월 차이 나는 후임이었고 그 형 맞선임이 내 맞후임이었는데 상당히 아니꼽게 생각을 해서 내가 살갑게 그 형에게 다가가서 이것 저것 대화도 하고 친하게 지냈었다. 그런데 대화를 하고 보니까 좀 많이 이상한 부분이 많았다. 부모님이 정계에 있는 사람들이며, 아버지는 옛날에 대선에도 출마한 경험이 있다고 한다. 그런데 그 형은 성이 국씨였는데 내가 알아보기로는 대선 출마한 국씨 성을 가진 정치인은 없었다. 여기서 부터 뭔가 수상한 느낌

Naver Blog

[파이썬 수학] 정수 팩터 계산 및 측정 단위 변환법

이번에는 파이썬으로 수학을 공부하기 위해서 'Python 수학'이라는 게시판을 따로 생성했다. 내가 이과 출신이긴 하지만 학창시절부터 수학이 상당히 약했다. 물론 기본적인 사칙연산이나 인수분해, 근의공식 등은 아직도 기억은 하긴 하는데 미분이나 적분, 표준편차 구하는 방식은 아직도 가물가물하다. 물론 위와 같이 덧셈, 뺄셈 등의 사칙연산은 애들 장난인 수준이고 여기서 파이썬을 활용하여 따로 공부할 수학이라는 분야는 좀 광범위 하고 방대한 내용들이다. 약간... 선형대수학이나 대학생들 기초수학 같은 느낌이라고나 할까. 잡소리 집어치우고 본격적으로 진도를 나가보자. 정수 팩터 계산 여기서 정수 팩터(Integer Factor)는 0이 아닌 정수 a가 있다고 했을 때 이를 또 다른 정수 b로 나눈다고 하고 만약 나머지가 0이라면 a는 b의 팩터(factor)라고 부른다. >>> def is_factor(a, b): ... if b % a == 0: ... return True ... el

Naver Blog

[파이썬 수학] 이차방정식의 근 구하기

이번에는 정수 팩터와 단위 측정법에 이어서 이차방정식의 근을 구해 보자. 만약 x + 500 - 79 = 10과 같은 일차방정식에 대한 해인 x를 구하기 위해 우리는 방정식 한 쪽이 상수만을 갖도록 정리하여 다른 쪽에 x만 남겨두도록 하는데 이 작업의 결과는 x = 10 - 500 + 79가 된다. 우측에 표현된 식의 값을 알아내면 x의 값을 알게 되는데, 이 값을 일차방정식의 근이라고도 한다. 그럼 위와 같은 수행들을 파이썬에서는 다음과 같이 실행할 수 있다. >>> x = 10 - 500 + 79 >>> x -411 이와 같은 문제는 선형 방정식을 해결한 사례가 된다. 일단 양쪽의 식을 재정리했다면, 수식은 충분히 간단한 상태로 풀 수 있다. 일차방정식과 다른 x2 + 2x + 1 = 0과 같은 방정식에 대해 x의 해를 찾기 위해서는 이차방정식 해의 공식으로 알려진 복잡한 수식을 계산해야 한다. 이차방정식(quadratic eqatuin)의 형태는 ax2 + bx + c = 0이

Naver Blog

프랑스에 마약을 운반한 한국인 주부 장미정 사건

중학교 다니던 시절 옛날에 KBS 추적 60분이라는 시사 프로그램에서 한국인 주부가 마약을 운반하다가 프랑스 감옥에 수감되었다는 내용의 방송을 본 적이 있었다. 사실 어린 마음에는 "만약 우리 엄마가 저런 일을 당해서 억울하게 감옥에 갇힌다고 생각하면 내 기분이 어떨까" 하는 안타까운 마음이 더 컸다. 시간이 지나서 이 사건을 모티브로 하여 만든 전도연, 고수 주연의 영화 '집으로 가는 길(2013)'을 봤는데 그 사건이 생각나서 다시 찾아보기로 했다. 장미정 사건 2004년 10월, 당시 34세의 한국인 주부인 장미정 씨는 평소에 알고 지내던 남편의 지인이 남미 가이아나에 있는 금광 원석이 담긴 가방 2개를 프랑스까지 운반해 주면 400만 원을 주겠다는 제안을 받는다. 이는 세금 문제 때문에 그런 것이며, 적발이 되더라도 그냥 현장에서 세금만 납부하면 별 문제가 없다는 것이 그의 설명이었다. 장미정 씨 또한 이 제안에 찝찝한 마음이 들어 처음에는 응하지 않았으나, 당시에 집안의 경

Naver Blog

[파이썬 수학] 카르테시안 좌표 평면 이해하기

이번에는 카르테시안 좌표 평면에 대해서 알아보자. 지금까지 모니터 화면에 코드를 실행하여 도출된 답을 출력만 했지만 이번에는 그래프를 활용해서 직접 데이터를 가시화 해보려고 한다. 카르테시안 좌표계란? 좌표 평면의 예시 다른 용어로는 '데카르트 좌표계(Cartesian Coordinate System)'라고도 불리는 카르테시안 좌표계는 임의로 지정된 차원의 유클리드 공간(혹은 내적 공간)을 나타내는 좌표계 중 하나이다. 주로 2차원 게임 개발에 많이 사용되는 수학적인 개념인데 컴퓨터 프로그램 속 화면의 위치를 가르킬 수 있도록 현재의 위치를 정수로 나타낼 방법이 필요한데 여기서 요긴하게 쓰이는 것이 카르테시안 좌표계이다. 많은 게임들이 공통적으로 겪는 문제는 게임판 상에서의 위치를 어떻게 하면 정확하게 알려줄 수 있는지에 대한 부분이다. 많은 경우에는 각 행과 열에 문자나 숫자를 기재해서 표시를 할 수 있다. 체스에서 기사(Knight)는 말머리처럼 생겼다. 하얀색 기사는 (e, 6

Naver Blog

내가 생각하는 네이버 블로그의 고질적인 문제점

※ 글을 쓰다가 감정이 격앙되어 워딩이 좀 강력하니까 보기 불편하신 분들은 뒤로 가주시기 바랍니다. [취미/잡담] 게시판의 하위 트리로 [개인적인 생각]이라는 게시판을 따로 생성했다. 원래 나는 하고 싶은 말이 있으면 그 사람에게 직접 하지는 못하지만 생각만 하고 살다보니 좀 답답해서 이렇게 내 개인적인 생각을 적으려고 이렇게 게시판을 따로 만들었다. 네이버 블로그를 운영한지 이제 대략 2개월 차로 접어들었다. 길게 운영하지는 않았지만 그 사이에 글을 100개 넘게 쓰는 등 하루에 포스팅 2개는 무조건 발행했다. 그러다가 본격적으로 이웃들과 소통을 하려고 다른 사람들이 쓴 글을 보는데 하나같이 전부다 관심도 없는 일상글에 거지같은 댓글만 달리고 있다. 내가 작성한 파이썬 관련 포스팅인데 공감은 151개를 차지했다. 아무래도 여기저기 둘러다니면서 영역 표시를 좀 해 놓으니까 150명의 사람들이 공감을 해 줬는데 문제는 댓글들이다. 포스팅 내용에 관한 댓글은 하나도 없고 전부다 되도 않

Naver Blog

네이버 블로그의 저품질에 관한 개인적인 고찰

※ 글을 쓰던 중 감정이 격앙되어 워딩을 좀 강력하게 얘기하여 일침을 놓았으니 보기 불편하거나 마음에 안들면 뒤로가기 눌러주세요. 이전 포스팅에서 네이버 블로그의 문제점과 관련된 개인적인 생각을 적은 바가 있다. 물론 그런 문제점들은 글을 작성한 나 말고도 다른 사람들도 일부 공감하는 사람들이 있을 것이라고 본다. 왜냐하면 그런 사람들은 아예 공지를 띄워놓고 "공감 막 누르지 마세요.", "공감 막 누르면 저품질 걸립니다" 등으로 아예 못을 박아버린다. 뭐 그 외에도 "쿠팡파트너스 광고 링크를 걸면 저품질에 걸린다.", "과도한 제품 광고는 저품질의 지름길이다" 등의 다양한 이유가 많으며, 아예 저품질 블로그에 안 걸리게 하는 방법 등의 다양한 글들이 많다. 그래서 이번에는 내 개인적으로 블로그 저품질 관련 생각과 고찰을 직접 적어 보려고 한다. 나 같은 경우에는 블로그를 운영한 지 2개월 차 밖에 되지 않아서 우선 '저품질'이라는게 뭔지 부터 짚어보자. 블로그 저품질이란? 블로그

Naver Blog

6.25 한국전쟁에 참전한 메이저리그 4할 타자 테드 윌리엄스 이야기

유튜브 알고리즘을 통해 컬러로 보는 6.25 전쟁 이야기와 여러가지를 보다가 한 메이저리그 선수가 생각이 났다. 이름 : 테드 윌리엄스(Theodore Samuel 'Ted' Williams) 출생 : 1918년 8월 30일, 미국 캘리포니아 주 샌디에이고 사망 : 2002년 7월 5일(향년 83세), 미국 플로리다 주 인버네스 학력 : 하버트 후버 고등학교 신체 : 190cm / 92kg 포지션 : 좌익수(우투우타) 프로입단 : 1937년 아마추어 자유계약 소속팀 : 보스턴 레드삭스(1939 ~ 1960) 테드 윌리엄스는 미국의 전 야구선수로 메이저리그(MLB) 역사상 마지막 4할 타자로 유명하다. 그리고 야구 선수로서는 유일무이하게 제 2차 세계대전 참전과 6.25 한국 전쟁에 참전했던 특이한 이력의 소유자이다. 야구의 신 베이브 루스(Babe Ruth, 1895.02.06 ~ 1948.08.16)와 함께 테드는 17살 시절 마이너리그 퍼시픽코스트 리그 소속의 고향팀인 샌디에이고

Naver Blog

파이썬으로 카이사르 암호(Caesar Cihper) 코드 구현하기

이번에는 파이썬으로 평문을 암호화하고 암호화 된 코드를 평문으로 다시 복호화하는 코드를 구현해 보려고 한다. 구현할 암호화 체계는 '카이사르 암호'이다. 카이사르 암호란? 카이사르 암호 코드는 로마의 황제였던 율리우스 카이사르(Gaius Julius Caesar, B.C. 100.07.12 ~ B.C. 44.03.15)가 고안한 암호코드이다. 그는 가족이나 친분이 두터운 신하들에게 은밀한 내용의 편지를 보낼 때 주로 암호로 이루어진 편지를 보내곤 했는데, 카이사르의 편지에 사용된 암호가 오늘날의 '카이사르 암호' 혹은 '시저 암호'라고 불리고 있다. 암호의 동작 원리 카이사르 암호의 원리 카이사르 암호는 원래의 평문에 있는 모든 알파벳의 문자를 일정한 간격만큼 왼쪽 혹은 오른쪽으로 이동시켜서 만들 수 있다. 예를 들어서 문장에 존재하는 모든 알파벳을 +1 만큼 이동시킨다면 본래 평문에 있던 문자 중 A는 B가 되고 B는 C가 되는 것이다. 즉, 다음의 문장을 보자. Iknower's

1 2 3 4 5 6