반응형

● 성욕과잉 행동으로 옮기고 외부 환경도 성적 해석
● 탄원서에 ‘피해자와 대면하겠다’… 범죄 책임 부정하는 태도
● ‘화학적 거세’도 당사자 의지 있어야 실효… 조두순에 효과 없을 것
● 실효성 없는 조치로 스트레스 커지면 재범 가능성만 높아져
● 치료 없으면 재범 가능성 높아… 정신과 진단 어려울 정도
● 나영이 ‘나 알아볼까 무섭다’ 눈물 흘려

 

2010년 3월 경북 청송군 경북북부제1교도소 독방 CC(폐쇄회로)TV 화면 속 조두순. [뉴시스]아동 성범죄자 조두순(68)이 징역 12년의 형기를 마치고 12월 12일 출소한다. 2008년 성폭행 사건 당시 피해자 나영이(가명·당시 8세, 현재 20세)의 주치의이던 신의진(56) 연세대 의대 정신건강의학과 교수는 “적절한 치료와 관리가 없다면 조두순의 재범 가능성이 매우 높다”고 우려했다. 

신 교수는 2008년 사건 당시 피해자 나영이의 정신건강의학과 주치의로, 피해자에 대한 치료·상담 과정에서 조씨의 폭력적 심리 상태를 직간접적으로 확인할 수 있었다. 9~11월 신 교수는 나영이 일가의 이사에 필요한 전세자금 3억여 원을 모금해 전달하기도 했다. 조씨가 출소 후 원래 살던 경기 안산시 자택으로 돌아갈 것으로 알려지자 나영이가 두려움에 떨었기 때문이다. 

신 교수는 12월 8일 ‘신동아’와 전화 인터뷰에서 “사건 직후 나영이는 ‘저 사람이 12년 후에 날 알아보고 찾아오면 어떡하느냐’는 공포에 시달렸다. ‘그 사람이 너를 어떻게 알아보겠느냐’고 달래도 쉽게 안심하지 못했다”며 “최근 부모님의 얘기를 들어보니 조씨가 출소한다는 사실에 나영이가 많이 울었다고 했다”고 말했다. 신 교수에게 조씨의 심리 상태와 재범 가능성에 대해 물었다.

 


“일방적 성교육으론 심리 치료 안 돼”


신의진 연세대 의대 정신건강의학과 교수. [안철민 동아일보 기자]

-법무부는 조씨가 수감 중 550시간 동안 심리치료를 받았다고 하는데. 

“해당 심리치료 프로그램의 개요를 살펴볼 기회가 있었다. 법무부가 구체적 내용을 밝히지 않았으나, 치료라고 하긴 곤란한 내용이었다. 단순 성교육이라고 하면 모를까. 그 정도로 조두순의 심리를 치료하기는 어려울 것이다. 성범죄자는 보통 사람과는 이질적 집단이다. 폭력 성향이 발현되는 이유와 방향 모두 제각각이다. 가령 어린 아이만 성폭행하는 범죄자가 있는가 하면, 조두순처럼 대상을 가리지 않고 무시무시한 폭력을 휘두르는 이도 있다. 범죄자마다 특성에 맞게 치료해야 한다. 치료 결과 범죄로 이어질 폭력적 성향이 낮아졌는지도 평가해야 한다.” 

-조씨가 치료를 통해 죄를 뉘우칠 가능성은. 

“조씨는 술 마신 탓에 범행 당시 상황이 기억나지 않는다고 주장했다. 여러 차례 피해자를 직접 만나고 싶다고도 했다. 전형적으로 자신의 범행을 부인하는 태도다. 성범죄자의 잘못된 인지(認知) 상태를 치료하는 핵심은 바로 이런 태도부터 깨는 것이다. 조씨는 자기 책임을 회피하는 심리적 ‘디나이얼(denial·불쾌한 기억에 대한 회피·부정)’ 증상을 보이는 듯하다.” 



조씨는 공판 과정에서 재판부에 총 12건의 탄원서를 냈다. “술 마시고 일어난 일을 술 깨면 기억하지 못한다”며 “(나는) 어린 아이를 강간하는 파렴치한 인간이 아니다”라고 범행을 부인했다. “억울하다. 피해자를 직접 만나게 해달라”고 여러 차례 주장한 것으로도 알려졌다. 12월 5일 JTBC ‘스포트라이트’는 조씨와 교도소에서 3년간 수감 생활한 동료 재소자의 증언을 보도했다. 해당 동료 재소자는 “조두순이 CC(폐쇄회로)TV에서 전파가 나온다며 그로 인해 성적욕구를 느낀다고 했다더라. 음란 행위를 하다가 걸린 적도 있다“고 주장했다. 신 교수는 조씨의 이런 행동에서 정신 병리적 문제가 엿보인다고 지적했다. 

-동료 재소자의 증언을 어찌 보나. 

“사실이라면 조씨가 보인 언행은 충분히 위험한 사인(sign)이다. 아직까지 성욕이 과잉한 것으로 보인다. 심지어 증언에 따르면, 성욕을 직접 행동으로 옮긴다. 외부 환경을 이상하게 해석하는 것도 우려된다. ‘전자파가 성욕을 자극한다’는 식으로 말했다고 하지 않나. 조씨는 전자파마저 성적(性的)으로 인식하는 것으로 보인다. 자신의 이상 성욕을 정당화하기 위한 태도다.” 

-전문가로서 조씨의 정신 상태를 분석하자면. 

“정신 병리적 문제가 있어 보이는 것은 분명 사실이다. 과거 검찰 수사과정에서 자인했듯이 조씨는 자신이 기르던 개도 잔인하게 죽이지 않았나. 다른 사람, 다른 존재의 고통에 전혀 공감하지 못한다. 공감능력의 유무는 사이코패스인지 판단하는 핵심 기준이다. 조씨가 범죄 당시와 이후 보인 행동을 보면 정신 병리적 문제가 한두 가지가 아닌 듯하다. 우선 자신의 힘을 억제 못해 폭력적 성향을 보인다. 범행 수법의 잔혹성에서 사이코패스 성향이 강하게 드러난다. 알코올 의존증은 물론, 술을 마시면 특히 더 포악해지는 문제도 있다. 정신의학적 진단이 어려울 정도다.”


“조씨, 다른 존재의 고통에 공감 못해”


-출소 후 재범 가능성은. 

“대단히 높지 않을까. 적절한 치료와 관리가 꼭 필요하다. 출소 후 조씨를 방치하면 재범 가능성이 매우 높다.” 

출소 후 조씨에 대한 감시·관리는 어떻게 이뤄질까. 조씨는 출소일로부터 7년 동안 ‘위치추적 전자장치(전자발찌)’를 부착하고 여성가족부 ‘성범죄자 알림e’에 신상정보가 공개된다. 10월 30일 법무부와 여성가족부, 경찰청은 관계부처 합동 공동대응방안도 내놨다. 조씨의 거주지 반경 1㎞에 폐쇄회로(CC)TV 35대를 설치해 감시하고 조씨만 감독하는 전담 보호관찰관을 두는 것이 뼈대다. 검찰은 10월 16일 수원지법 안산지원에 조씨를 대상으로 음주 금지(혈중알코올농도 0.03% 이상)와 심야 시간대 외출 제한 등 특별준수사항을 신청했다. 

-정부의 대책이 재범을 막을 수 있을까. 

“지금까지 나온 대책은 조씨에 대한 감시·통제를 강화하는 것이다. 사람들이 간과하는데, 대부분 범죄자가 스트레스에 상당히 취약하다. 스트레스가 계속되다가 어느 순간 정신이 ‘아웃’될 수 있다. 그때 다시 범죄를 저지를 가능성이 높다. 조씨를 필요 이상 잘 대해주자는 것이 아니다. 그에게 가해지는 스트레스를 스스로 견딜 수 있을 정도로 관리해야 한다.” 

-일각에서 ‘성 충동 약물치료(화학적 거세)’가 필요하다는 주장도 나온다. 

“화학적 거세는 본인의 의지만 있다면 효과가 좋다. 남성을 대상으로 한 약물의 경우, 여성 호르몬을 기초로 만들어 성욕이 적어진다. 다만 이런 성 충동 억제 약물은 심리치료도 병행해야 제대로 된 효과를 거둘 수 있다. 약물·심리치료보다 더 중요한 것이 스스로 변하겠다는 당사자의 의지다. 그런 점에서 조씨에게는 효과가 없을 것이다. 억지로 약물을 투여해 성 충동을 줄이자는 것은 현실을 모르는 비(非)전문가적 발상이다.” 

-당장 필요한 대책은. 

“조씨는 전과 18범이다. 1980년대 여성을 성폭행하고 1990년대에는 살인도 저질렀다. 이 사람의 범죄 ‘트리거(trigger·방아쇠)’는 술이더라. 기저에 깔린 폭력 성향이 음주를 계기로 폭발하는 것이다. 다른 치료에 앞서 알코올 의존증 치료가 급선무다. 알코올 의존증 전문가의 지속적 관리가 필요하다.”

“조두순 코앞에 왔는데 정부는 실효성 없는 대책만”조씨의 출소를 앞두고 시민들의 공분이 커지고 있다. 온라인 커뮤니티에 조씨에게 사적(私的) 제재를 가하겠다는 글이 여럿 게시됐다. 이를 두고 신 교수는 “사적 제재는 범죄 예방에 아무 도움이 안 된다. 범죄자를 치료하는 것이 재범을 막고 우리 사회를 지키는 일”이라며 다음과 같이 덧붙였다. 

“조두순이 우리 코앞에 왔다. 사람들은 조씨가 이웃에 살게 된 것에 분노하고 두려워한다. 정부는 실효성 없는 대책만 내놨다. 그럼에도 ‘눈에는 눈, 이에는 이’ 방식의 대응은 아무 것도 해결할 수 없다. 범죄로부터 사회와 이웃을 안전하게 지키려면 역설적으로 범죄자를 케어(care)해야 한다. 여기에 돈과 시간도 써야 한다. 조씨가 아니라 주변 사람의 안전을 위해서다. 본인이 스트레스를 견딜만한 상황을 만들어주는 한 편, 범행을 막을 심리적 제압도 필요하다.”


“조두순 코앞에 왔는데 정부는 실효성 없는 대책만”


조씨의 출소를 앞두고 시민들의 공분이 커지고 있다. 온라인 커뮤니티에 조씨에게 사적(私的) 제재를 가하겠다는 글이 여럿 게시됐다. 이를 두고 신 교수는 “사적 제재는 범죄 예방에 아무 도움이 안 된다. 범죄자를 치료하는 것이 재범을 막고 우리 사회를 지키는 일”이라며 다음과 같이 덧붙였다. 

“조두순이 우리 코앞에 왔다. 사람들은 조씨가 이웃에 살게 된 것에 분노하고 두려워한다. 정부는 실효성 없는 대책만 내놨다. 그럼에도 ‘눈에는 눈, 이에는 이’ 방식의 대응은 아무 것도 해결할 수 없다. 범죄로부터 사회와 이웃을 안전하게 지키려면 역설적으로 범죄자를 케어(care)해야 한다. 여기에 돈과 시간도 써야 한다. 조씨가 아니라 주변 사람의 안전을 위해서다. 본인이 스트레스를 견딜만한 상황을 만들어주는 한 편, 범행을 막을 심리적 제압도 필요하다.”

 

출저 : shindonga.donga.com/3/all/13/2267230/1

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

새로 경로 변경하고 싶은 곳에 data 폴더 만들기

나는 c드라이브 밑으로 해보겠음.

기존의 data 폴더 안에 있는 파일들을 새롭게 지정하고 싶은 data 폴더에 옮겨줌(my.conf는 옮기지 않는다.)

아래 그림과 같이 해주면 된다.

 

my.conf에 새롭게 지정하고 싶은 datadir를 설정해준다.

나는 c드라이브 밑에 있는 data로 설정해주었다.

datadir=C:\data

서비스를 재시작 해준다.

Mariadb 서비스를 재시작 하면 로컬 컴퓨터에서 MariaDB 서비스를 시작하지 못했습니다. 라고 뜬다.

에러 로그를 살펴보면

에러 로그를 살펴보면 privilege(권한) 문제이다.

my.cnf와 새로 만든 /data 폴더의 권한을 허용해준다.

새롭게 설정한 경로가 잘 되는지 테스트하기

create database test2;

서비스를 재시작하고 Mariadb를 실행해서 test2라는 DB를 만들면 새로 설정한 /data 폴더에 잘 들어가는 것을 확인할 수 있다.

- 끝 -

 

다음은 응용 버전으로 data 폴더를 새로 만든 암호화된 디스크로 설정해보겠다.

새로운 디스크에 할당하고 싶으시면 볼륨을 만들고 사용할 수 있게 마운트 하시면 됩니다.

여기서는 암호화된 디스크를 미리 만들어 놓은 상태입니다. 암호화된 디스크의 이름은 K입니다.

방법은 위와 같이 동일합니다.

암호화 볼륨에 data 폴더를 만들고 기존 data 폴더에 있는 것을 복사하기.

-       기존의 data 폴더 안에 있는 my.conf 파일 빼고 삭제하기

-       복사한 data 폴더 안에 있는 my.conf 파일을 삭제하기

결론은 아래 아래 그림과 같습니다.

my.conf를 이용해서 암호화된 디스크의 data로 경로를 변경합니다.

datadir를 암호화된 볼륨 밑에 data디렉토리로 설정.

Mariadb 서비스를 다시 시작하면 마찬기지로 아래와 같은 오류가 뜬다.

옮긴 data의 사용권한 허용

기존의 data 폴더에 있는 my.conf 파일에 대해서도 권한 허용

DB를 생성해보면 새로 설정한 data 폴더에 생성되는 것을 확인할 수 있다.

 

다음에는 log 경로도 변경해봐야겠다 ~~ byebye~

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

앞선글에서는 램디스크를 통해 MariaDB를 최적화 했다면 이번에는 InnoDB의 설정을 변경해서 최적화를 진행해보도록하겠다.

먼저 변경해줄 파일은 MariaDB 설정파일인 /etc/mysql/my.cnf 파일이다.

먼저 [mysqld]에 아래 두줄을 추가시켜주자.

skip-host-cache
skip-name-resolve

변경 전

mysql에서 접속시 ip에 대한 resolving을 진행하는데 대부분의 IP의 경우 등록되지않아 쓸데없는 리소스를 사용하기 때문에 skip해준다.

추가

그다음 내리다보면 Tuning이라고 된부분이 보일것이다.

여기서는 max_connections와 아래잘렸는데 key buffer size만 올려주도록하겠다.
max connections이 너무 낮으면 동시접속자가 많거나 한번에 많이쿼리하면 에러가 나기때문에 최소 1000이상은 줘야할거같다.

변경 전

변경 후

그리고 [mysqld] 아래에 있는 InnoDB부분을 찾아가자
이쪽을 수정해줄 예정 innodb_buffer_pool_size만 수정해주자. 값은 메인 메모리에 50%정도가 적당하다
다른 서비스들을 많이올려서 메모리가 부족하면 Swap 까지 끌어쓸수도있기때문에 그거보다는 조금 낮춰서..

기본설정이다

나같은경우 wordpress 전용 웹서버기 때문에 총 4G중 2G를 할당해줬다.

변경 후

옵션을 모두 변경 완료했으면 service mariadb restart로 재시작

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

select A.TABLE_SCHEMA as DB
     , A.TABLE_NAME as Table_ID
     , A.TABLE_COMMENT as Table_NAME
     , B.COLUMN_NAME as Column_ID
     , B.COLUMN_COMMENT as Column_Name
     , B.DATA_TYPE as Data_Type

    -- B.CHARACTER_MAXIMUM_LENGTH AS Col_Length, 
     -- CHAR character type에 대해 문자 단위로 보고 싶으면 CHARACTER_MAXIMUM_LENGTH 를 사용하시면 됩니다. 
     -- B.CHARACTER_OCTET_LENGTH AS Col_Length,-- BYTE 
     , case B.DATA_TYPE  when 'varchar' then B.CHARACTER_OCTET_LENGTH
                         when 'char' then B.CHARACTER_OCTET_LENGTH
                         when 'decimal' then CONCAT('(', B.NUMERIC_PRECISION, ',', B.NUMERIC_SCALE, ')')
                         when 'numeric' then CONCAT('(', B.NUMERIC_PRECISION, ',', B.NUMERIC_SCALE, ')')
                         when 'tinyint' then B.NUMERIC_PRECISION
                         when 'smallint' then B.NUMERIC_PRECISION
                         when 'mediumint' then B.NUMERIC_PRECISION
                         when 'int' then B.NUMERIC_PRECISION
                         when 'bigint' then B.NUMERIC_PRECISION
                         when 'date' then B.DATETIME_PRECISION
                         when 'datetime' then B.DATETIME_PRECISION
                         when 'time' then B.DATETIME_PRECISION
                         when 'timestamp' then B.DATETIME_PRECISION
                         else B.CHARACTER_OCTET_LENGTH
       end as Col_Length
     , B.COLUMN_DEFAULT as Default_Value

 -- B.IS_NULLABLE AS Is_Nullables,
     , case B.IS_NULLABLE   when 'NO' then 'N'
                            when 'YES' then 'Y'
       end as Is_Null
     , case B.COLUMN_KEY when 'PRI' then 'Y'
                         else '' end as PK

from INFORMATION_SCHEMA.TABLES A
     , INFORMATION_SCHEMA.COLUMNS B
 where A.TABLE_NAME = B.TABLE_NAME
   and A.TABLE_SCHEMA = B.TABLE_SCHEMA
   and A.TABLE_TYPE = 'BASE TABLE'
   and A.TABLE_SCHEMA in ('epai')
-- AND A.TABLE_SCHEMA in ('db') 
-- AND A.TABLE_SCHEMA in ('ShopDB') 
-- AND A.TABLE_SCHEMA in ('wideshot_service') 
 order by Table_ID , B.ORDINAL_POSITION;

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

"노트패드++(Notepad++) 64-bit FTP 플러그인 nppFTP 설치하기"

 

노트패드++(Notepad++) 64-bit 버전을 설치하고 보니 Plugin Manager 가 보이지 않아 유용하게 사용하던 nppFTP 를 설치할 수 없었습니다. 구글링을 통해 64-bit 용 nppFTP를 찾을 수 있었습니다.

 

 

노트패드++(Notepad++)를 설치하면 플러그인 메뉴에 Plugin Manager가 있어서 추가 플러그인 들을 자유롭게 설치할 수 있었는데, 64-bit 버전에는 없더군요..

 

 

 

 

하는 수 없이 32-bit 버전을 설치하려다가 구글링을 통해 nppFTP 64-bit 버전을 다운받을 수 있었습니다.

 

nppFTP 64-bit 다운로드 주소는

https://github.com/ashkulz/NppFTP/releases

 

입니다.

 

 

위의 링크로 이동 후 Npp-FTP-x64.zip 파일을 다운로드 합니다.

 

"노트패드++(Notepad++) 64-bit FTP 플러그인 nppFTP 설치하기"

.

 

 

 

 

다운받은 파일을 압축을 풀면 doc, bin 폴더가 있습니다. 이 중 bin 폴더안에 'NppFTP.dll' 파일이 있습니다. 이 파일을 복사한 후

 

 

노트패드++(Notepad++)가 설치된 c:\Program Files\Notepad++\plugins 폴더로 이동하여 'NppFTP.dll' 파일을 붙여넣기 합니다.

 

이제, 노트패드++(Notepad++)를 다시 실행하면 

 

 

위와 같이 노트패드++(Notepad++)에 정상적으로 NppFTP 플러그인을 사용할 수 있습니다.

 

plugins 폴더에 플러그인 *.dll 파일을 복사하는 것으로 다른 플러그인도 64-bit 를 지원한다면 이상없이 사용할 수 있습니다.

 

 

------------

이 글의 원본 주소는 http://www.foxcg.com/369 입니다.

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

과거 ftp를 많이 사용하던 시절, ncftp는 기존 ftp 쉘 프로그램의 한계를 극복하는 훌륭한 프로그램이었습니다. 북마크, 디렉토리 포함해서 다운로드, 업로드 등 여러가지 다양한 기능이 있었죠.

하지만, ftp의 취약점이 널리 알려진 지금은, 기업이나 학교의 경우 망 공급원(ex. KT, SKB, LGU+ 등)의 메트로스위치에서 ftp나 smb 포트를 막는 경우가 많습니다. 특히 최근 인터넷나야나 사태를 비롯하여 에레버스(Erebus), 워너크라이, 페트야 등 악성 랜섬웨어의 창궐로 보안의 중요성이 더욱 강조되고 있습니다.

scp 도 명령어에 해당 서버의 계정정보를 적기 때문에 보안에 완벽하다고는 할 수 없지만, 주고 받는 데이터는 암호화 하기 때문에 ftp나 ncftp에 비해 안전하다고 볼 수 있습니다. 그럼 scp 사용법을 알아보겠습니다.





1. 원격서버 파일 -> 로컬서버로 전송


# scp [옵션] [원격지서버계정]@[원격지서버 IP]:[원격지서버 디렉토리] 로컬서버:[디렉토리]

실제 예제를 보시면, 이해가 쉽습니다.

예를 들어 10.10.10.1 서버에 있는 /home/backup 디렉토리를 로컬 서버의 /home으로 복사하려고 할 때, 아래와 같은 형식으로 명령어를 실행하면 됩니다.

# scp -r root@10.10.10.1:/home/backup /home/
미리 로컬파일 /home으로 이동하면 . 으로 로컬 경로를 대신할 수도 있습니다.
# scp -r root@10.10.10.1:/home/backup .

파일 하나만 전송할 경우는 -r 옵션을 빼고 실행하면 됩니다.
# scp root@10.10.10.1:/home/backup/test.tar.gz /home/
# scp root@10.10.10.1:/home/backup/test.tar.gz .





2. 로컬서버 파일 -> 원격서버로 전송


# scp [옵션] 로컬서버:[디렉토리] [원격지서버계정]@[원격지서버 IP]:[원격지서버 디렉토리]

로컬서버의 파일을 원격지로 전송하기 위해서는 로컬서버와 원격지서버 정보를 바꾸면 됩니다.

# scp -r /home/ root@10.10.10.1:/home/backup 
# scp /home/backup/test.tar.gz root@10.10.10.1:/home/backup





3. scp 옵션

scp man page에는 여러 옵션이 있지만, 실제 사용하는 옵션은 몇 개 안됩니다.


     -P port  --> ssh 기본포트인 22번 외 다른 포트를 사용할 경우, 이 옵션을 사용합니다

     -p      Preserves modification times, access times, and modes from the original file.
원 파일의 속성을 그대로 유지할 경우 사용합니다.
     -r      Recursively copy entire directories.  가장 많이 사용하는 옵션입니다. 디렉토리 전체를 scp 할 때 사용합니다.





4. sshpass 설치 및 사용법(scp 자동화)


scp로 원격지 파일을 가져오거나, 보낼 때 접속계정의 비밀번호를 입력해야 합니다. crontab 등을 이용하여 scp를 자동화, 스케줄링 하려면 비밀번호 입력절차를 scp 옵션에 포함해야 합니다. 이를 위해서는 sshpass 를 사용합니다. sshpass는 CentOS 7 의 경우, 기본 패키지에 포함되어 있지 않기 때문에, 사용하기에 앞서 yum으로 설치합니다.

# yum -y install sshpass*

설치가 완료되면, 아래와 같이 scp를 실행합니다.
sshpass -p [패스워드] scp [옵션] [원격지계정]@[원격지서버]:/[경로] [로컬서버 복사할 위치]


예제: 10.10.10.1 서버, ID: root, PW: test, /tmp/1.html 을 로컬서버 /home/backup으로 복사
sshpass -p test scp -r root@10.10.10.1:/tmp/1.html /home/backup

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

아스널과의 '북런던 더비'에서 환상적인 선제 결승골을 터트려 토트넘에 2-0 승리를 안긴 손흥민(28·토트넘 홋스퍼)이 "오늘은 겸손할 수가 없네요"라며 웃었습니다.

손흥민은 7일(한국시간) 영국 런던의 토트넘 홋스퍼 스타디움에서 열린 아스널과의 2020-2021 잉글랜드 프로축구 프리미어리그 11라운드 홈 경기에 선발 출전해 전반 13분 만에 균형을 깨는 득점포를 가동했습니다.

해리 케인의 침투 패스를 받아 왼쪽을 파고든 손흥민이 페널티아크 쪽으로 치고 들어가다 오른발로 감아 찬 공이 아스널의 골문 오른쪽 구석에 꽂혔습니다.

토트넘이 구단 사회관계망서비스(SNS)에 득점 영상과 함께 '이 골은 절대 질리지 않을 것이다'(This goal will never get old)라고 적었을 정도로 멋진 골이었습니다.

이날 손흥민은 전반 추가시간 케인의 득점까지 도우며 맹활약했습니다.

손흥민은 경기 후 구단 SNS에 실린 인터뷰에서 먼저 '대단한 골이었다'는 말에 잠시 머뭇거리다 "오늘은 겸손할 수가 없겠다"며 웃어 보였습니다.

인터뷰하는 손흥민 그는 이내 곧 "내가 '운이 좋았다'라고 한다면 사람들은 아니라고 할 거다"라면서 "하지만 운 좋게 들어간 골이라 생각한다"고 겸손해 했습니다.

손흥민은 "멋진 골이었다. 우리의 첫 기회에서 골을 넣었다 정말 정말 좋았다"며 기쁨을 일부러 감추지도 않았습니다.

하지만 "이런 골을 넣어서라기보다는 승점 3을 얻어 더 행복하다"면서 "우리는 경기에서 이겼고 팀의 퍼포먼스도 굉장했다"고 말했습니다.

토트넘은 이날 승리로 시즌 승점을 24로 늘리고 리그 선두 자리를 되찾았습니다.

손흥민은 맞수 아스널과의 맞대결에서, 특히 팬들이 다시 경기장을 찾은 날에 골로 팀 승리를 이끌어 더욱 만족해했습니다. 이날 약 2천 명의 관중이 토트넘의 승리를 경기장에서 지켜봤고, 토트넘 홋스퍼 스타디움에 관중이 입장한 것은 올해 3월 이후 9개월 만입니다. (사진=게티이미지코리아, 토트넘 트위터, 연합뉴스) 
출처 : SBS 뉴스
원본 링크 : https://news.sbs.co.kr/news/endPage.do?news_id=N1006109208&plink=ORI&cooper=NAVER&plink=COPYPASTE&cooper=SBSNEWSEND

반응형

'Sports' 카테고리의 다른 글

성장을 멈춘 삼성의 미래들..  (0) 2020.09.18
리버풀 FC 역대 올스타 스쿼드  (0) 2020.09.01
100만원 미만 추천 전기자전거 9종  (0) 2020.08.31
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,
반응형

CPoint, CRect, CSize 클래스는 API에서 사용하는 구조체 타입인

 POINT, RECT, SIZE 에서 파생한 클래스다.

 

클래스의 정의

 

C++ 컴파일러는 C 언어의 구조체를 클래스로 취급

예를 들어 POINT 구조체는 POINT 클래스로 간주 POINT 클래스로 파생된

CPoint 클래스는 POINT 클래스의 모든 데이터 멤버를 갖게 되므로

CPoint 객체는 POINT 객체라고 할 수 있다.

따라서 POINT 타입의 인자를 사용할 때 CPoint 객체를 대신 사용해도 상관 X

이처럼 파생 클래스 객체(CPoint)가 베이스 클래스 객체(POINT)로 간주되는 현상을

업 캐스팅(Upcasting) 이라고 함

 

업 캐스팅

void SomeFunc(RECT* rect){....}

RECT r1;

CRect r2;

SomeFunc(&r1);     // OK!

SomeFunc(&r2);     // OK! (Upcasting)

 

CPoint 객체 생성과 다루기

 

CPoint 클래스는 Long 타입의 x, y를 멤버 변수로 가짐

또 다양한 초기화 방법을 지원하고, 이 중 기본이 되고 자주 사용되는 형태는

두 개의 멤버 변수를 직접 생성자 인자로 사용하는 것

생성자

CPoint::CPoint (int x, int y);

 

생성자와 연산자 함수를 제외한 유일한 멤버 함수는 CPoint::Offset()으로 x, y에

일정한 값을 더하는 역할

연산자 종류 ( !=, ==, -, +, +=, -=)

 

예>

  CPoint pt1(10, 20);     // x, y 좌표를 생성자의 인자로 사용
  POINT pt = {30, 40}; //포인트 객체 변수 pt
  CPoint pt2(pt);   //POINT 타입의 변수를 생성자의 인자로 사용
  
  //화면에 값 출력
  cout << pt1.x << "" << pt1.y << endl;
  cout << pt2.x << "" << pt2.y << endl;

  pt1.Offset(40, 30);  //x, y 좌표에 40, 30을 각각 더한다.
  pt2.Offset(20, 10);  //x, y 좌표에 20, 10을 각각 더한다.
  
  //화면에 값 출력
  cout << pt1.x << "" << pt1.y << endl;
  cout << pt2.x << "" << pt2.y << endl;

  if(pt1 == pt2)  //두객체의 내용이 같은지 확인
   cout << "두 점의 좌표가 같습니다." << endl;
  else
   cout << "두 점의 좌표가 다릅니다." << endl;

 

 

CRect 객체 생성과 다루기

 

CRect 클래스는 LONG 타입의 left, top, right, bottom을 멤버 변수로 가짐

가장 기본이며 자주 사용되는 형태는 네 개의 멤버 변수를 직접 생성자의 인자로 사용 하는 것

 

생성자

CRect::CRect(int 1, int t, int r, int b);

 

 사각형의 폭과 높이를 곧바로 얻을 수 있도록 Width(), Height() 제공

int CRect::Width();

int CRect::Height();

 

특정 좌표가 사각형의 내부인지 외부인지 알려주는 PtInRect()

BOOL CRect::PtInRect(POINT point);

 

이밖에도 30개 이상의 함수와 연산자가 정의되어 있음

MSDN 참고해서 사용하면됨

 

예>

​  CRect rect1;
  rect1.SetRect(0, 0, 200, 100);  //사각형의 좌표를 설정
  CRect rect2(0, 0, 200, 100);  //사각형의 좌표를 생성자의 인자로 사용

  //두객체의 내용이 값은지 확인
  if(rect1 == rect2)
   cout << "두 직사각형의 좌표가 같습니다." << endl;
  else
   cout << "두 직사각형의 좌표가 다릅니다." << endl;

  RECT rect = {100, 100, 300, 200};
  CRect rect3(rect);     //RECT 타입의 변수를 생성자의 인자로 사용
  
  //사각형의 폭과 높이를 얻는다
  cout << rect3.Width() << " " << rect3.Height() << endl;

  CPoint pt(200, 150);
  
  // 해당 점이 사각형 내부에 있는지 판단
  if(rect3.PtInRect(pt))
   cout << "점이 직사각형 내부에 있습니다." << endl;
  else
   cout << "점이 직사격형 외부에 있습니다." << endl;

 

 

CSize 객체 생성과 다루기

 

CSize 클래스는 Long 타입의 cx, cy를 멤버 변수로 가짐

여러 초기화 방법을 지원 기본이며 자주 사용되는 형태는 두 개의 멤버 변수를

직접 생성자의 인자로 사용하는 것

 

생성자

CSize::CSize(int x, int y);

 

연산자

!=, +=, -=, ==, =, +

 

예>

  CSize size1(100, 200);  //폭과 높이값을 생성자 인자로 사용
  SIZE size = {100, 200};
  CSize size2(size);   //SIZE 타입의 변수를 생성자 인자로 사용
  cout << size2.cx << " " << size2.cy << endl;
  //두 객체 내용이 같은지 확인
  if(size1 == size2)
   cout << "크기가 같습니다." << endl;
  else
   cout << "크기가 다릅니다." << endl;

 

 

 

 

ps.

유틸 클래스에서 CPoint, CRect, CSize 클래스는

POINT, RECT, SIZE 클래스 파생클래스

그런데 모든 데이터 멤버를 갖고 있고

서로 같은 역할을 함 결국 파생클래스 객체가 베이스 클래스 객채로 간주 할수 있는 업캐스팅을 사용 가능

반응형
블로그 이미지

Runer

IT / 일상 / 먹방 / 꿀팁 / 유틸

,