반응형

안녕하세요. 에르의 생각발전소입니다 :)

이번 시간에 다뤄볼 주제는 " 도둑 뇌사 사건 " 입니다.

다들 기억하시나요?










2년전 3 8 새벽 3시쯤,

당시 19살이던

자신의 집에서 물건을 뒤지던

50 도둑과 마주쳤습니다.


 생명의 위협을 느껴 도둑의 얼굴과 머리를

발과 주먹으로 수차례 때리고,

빨래 건조대로도 내리쳤습니다.


평소 기증이 있던 도둑은 

뇌사 상태에 빠졌고, 결국 10개월 만에

숨졌습니다.


"정당방위냐" "아니냐" 논란이 일었던

사건에 대해 항소심 재판부는

집주인 씨의 유죄를 선고했습니다.


재판부는 선고에 앞서 이례적으로

미국과 독일 등의 판례를 예로 ,


//최 최초 폭행 이후에도

피를 흘리며 기어가던 도둑을

폭행한 점으로 방어 목적을 넘어

상대방을 공격할 의사가

상당했다고 판단했습니다.


, 여러 정황상 도둑이

도망가려고 했던 점이 인정된다며

과잉방위였다는 변호인의 주장도

받아들이지 않았습니다.//


라고 대법원에서 말했는데요.. 이게 말이됩니까?

무슨 이런 법이 다있어요?

만약 피해자가 최초 폭행 후 도둑이 도망갔거나 보복을 했다면?

그럼 피해자는 어떻게 되는건가요?

그리고 도둑이 앞으로 계속 활동하며

이로인해 피해를 입을 다른 시민들은요?

정말 이해가 안갑니다.

어떻게 이따구로 판결을 낼 수 있는지 참, 의문이에요.

오히려 집주인이 도둑을 잡았는데 반성하고

도둑 가족들한테 500만원도 줬어요.



이번 판결은 방어의 한도를 현저히 벗어난 공격행위는 정당방위의 범위를 벗어난 것으로 정당방위의 요건과 범위를 명확히 판결입니다."


"항소심 재판부는

피고인의 항소 이유를 전혀 받아들이지 않고

징역 1 6개월을 선고했습니다."


다만 피해자가 원인을 제공한 등을

고려해 형의 집행을 3 동안

유예한다고 밝혔습니다.


변호사 : " 정도가 과잉방위에 해당된다고 하면 충분히 무죄 또는 감경 처분을 받을 있을 것으로 보이는데 부분이 인정되지 않아서 추후 대법원에 상고할 예정입니다."


선고 직후 법정은 나선 씨는

돌아가신 피해자에게 죄송하다는

말씀을 드리고 싶다며 고개를 숙였습니다.


이게 정녕 말이됩니까?

그럼 도둑이 들었을 때 공격의사가 없고 도망가고자 한다면, 

앞으로 보내줘야겠네요?

또 다른 기사입니다.

자신의 집에 침입한 도둑을 때려 뇌사 상태 끝에 숨지게 만든 집주인에게 상해치사 혐의로 유죄가 확정됐다. 집주인은 정당방위라고 다퉜지만 받아들여지지 않았다. 


대법원 2부는 이른바 '원주 도둑 뇌사 사건'으로 기소된 최모(22)씨의 상고를 기각해 징역 1 6개월에 집행유예 3년을 선고한 원심을 확정했다. 씨는 지난 2014 3 새벽에 귀가했다가 빈집 서랍장을 뒤지던 김모(55)씨를 발견해 얼굴에 여러 차례 주먹을 휘둘렀다. 씨는 경찰에 신고하려다가 쓰러진 씨가 몸을 일으켜 도망가려는 모습을 보고 다시 폭력을 휘둘렀다. 씨는 자신의 발과 빨래 건조대, 허리띠 등으로 씨의 머리를 집중적으로 공격했고 씨는 병원으로 옮겨졌지만 뇌사 상태에 빠졌다. 


상해치사 혐의로 기소된 집주인 씨에 대해 1,2심은 모두 유죄를 인정했다. 씨는 절도범을 제압하기 위한 정당 방위거나 과잉 방위라고 주장했지만 받아들이지 않았다. 1심은 아무런 저항없이 도망만 가려고 했던 피해자의 머리를 장시간 심하게 때린 것은 방위로서 한도를 넘은 행위라고 판단했다. 이후 항소심 과정에 피해자 씨가 결국 숨졌고 항소심에서도 역시 유죄가 인정됐다. 항소심 재판부는 신체를 결박하는 다른 수단을 강구할 있었는데도 의식을 잃을 때까지 때린 것은 정당 방위로 없다고 밝혔다. 법원은 다만 씨가 씨의 집에 침입해서 사건 발단을 제공한 점을 감안해 집행유예를 선고했다.

1심에서 아무런 저항 없이 도망만 가려고 했던 피해자의 머리를 장시간 심하게 때린?

장난치나, 아무런 저항없이 도망가고자하면 예~ 들어가세요~ 해야되는거에요?

그럼 신체결박하는데 도둑이 내 잘 묶어주세요.

이러겠어요?

무슨 개똥같은 논리가 있어요?

대한민국 법은 국민을 위한 법아닌가?


이미 도둑은 50대에 기왕증까지 있는 상태인데,

굳이 피해자의 행동이 도둑의 사망을 야기했다고 볼 수 있는가?

역시 이맛에 헬조선합니다.

국가에 충성을 할 봉사를 할 이유가 없어요.

집에 침입한 도둑을 폭행해 뇌사상태에 빠뜨려 사망하게 사건의 피고인인 집주인에게 대법원이 정당방위를 인정하지 않고 유죄를 확정했다.


대법원 2(주심 김창석 대법관) 12 상해치사 혐의로 기소된 최모(22)씨에 대한 항소심에서 징역 1 6월에 집행유예 3, 240시간의 사회봉사도 명령한 원심을 확정했다. 


2014 3 8 강원도 원주시의 주택가에서 당시 입대를 앞둔 최씨는 친구들과 술을 마신 오전 315분쯤 귀가했고 거실에서 서랍장을 뒤지는 A(당시 55) 발견했다. 최씨는 곧바로 그에게 달려들어 얼굴 등을 수차례 폭행한 A씨가 넘어진 상태에서도 도망가려고 하자 빨래 건조대 등으로 내리치는 A씨를 추가적으로 폭행했다. 폭행당한 A씨가 의식불명상태에 빠지자 최씨는 반대로 가해자가 됐다. 


최씨는 도둑을 제압하는 과정에서 발생한 정당방위 또는 과잉방위에 해당한다며 선처를 호소했다. 하지만 폭력행위 처벌에 관한 법률위반으로 기소된 최씨는 1심에서 징역 1 6월을 선고받았다.


때문에 사건은 정당방위 논란을 가져왔다. 치료를 받던 A씨가 사건 발생 10개월여 만에 폐렴으로 숨지자 검찰은 최씨의 죄를 상해치사로 바꿨다. 


2 재판부는 "피고인은 머리 등을 필요 이상으로 과도하게 구타했다" "물건을 훔치려고 사정을 감안하더라도 저항 없이 도망가려던 피해자를 심하게 때려 사망에 이르게 행동은 경미하지 않다" 판시했다. 이어 "피고인의 행위는 공격의사가 압도적이었을 뿐만 아니라 정당방위가 성립하지 않는다" 덧붙였다. 또한 "일반적인 방위의 한도를 현저히 넘어선 것으로 사회통념상 방위행위라기보다는 적극적 공격행위로 보아야 한다" 과잉방위도 성립하지 않는다고 판단했다. 재판부는 이어 "다만 피해자가 집에 무단 침입해 절도를 하려던 것이 최초의 원인이 됐고, 피고인이 유족을 위해 500만원을 공탁한 등을 고려, 집행유예를 선고한다" 덧붙였다.


또다른 기사 발췌입니다.

완전 부실수사, 부실판결의 표본입니다.

이 케이스는 판례로 길이길이 남아 대한민국법이 얼마나 개똥철학인지 널리널리 퍼져야되요.

앞으로  징역살이할까봐 무서워서 도둑한테 네~ 맘편히 가져가세요!

이레야겠네요?

개콘이나 방송에서 따끔하게 꼬집어줬으면 좋겠고

개인적으로 무죄를 받았으면 좋겠네요. 

정말


반응형
by 밑바닥에서 글로벌로~ 발전소장 에르 :) 2016. 5. 14. 11:09
  • 에임스 2016.09.12 22:45 ADDR EDIT/DEL REPLY

    이사건 제가 예전에 댓글 무진장 달았죠 근데요 현실은 소리없는 아우성이죠
    이윤 판사나 검사가 병진이라서 저런걸 판단 못할까 저거 국민투표 해도 90%이상 무죄라고 나옴
    근데도 유죄 때리는건 첫번째 우리나라 법조계는 왠만해선 본인들의 실수를 인정하지 않음..
    오죽했음 잘못기소한 사람이 있는데 후에 진범 잡아도 사실이 밝혀질까 진범 풀어주는 나라임
    글구 원체 자신들이 계급이 어마어마한줄 알아서 자신의 판단만이 법의 공정성을 가른다고 생각함..
    그래서 유죄 때려 버림 이미 검찰이 조사가 미비하다고 인정까지 했음...피해자인 집주인 청년이 범인을
    잡고 경찰에 신고하기 까지 범죄자를 잡았다고 생각했지 자기가 범죄자가 될줄 몰랐겠죠...
    우리나라에서 잘 살려면 주위에서 누가 강간을 당하건 살해를 당하건 엮이면 병진 됩니다
    피해자가 도망 가버림 졸지에 가해자가 되버리고 상대를 제압할때도 상처 하나 없이 제압해야함...
    만약 상대가 크게 다치면 오히려 상해죄로 고소당함...참 대단한 나라죠...

반응형

안녕하세요~ 에르의 생각발전소입니다 :)

이번 시간에 다뤄볼 주제는 while구문입니다 :)

저번 시간에는 for 구문을 다뤄봤었죠?

어떤가요?  부족한 점이 있으면 피드백 기다리겠습니다 :D







// for구문과 while구문의 차이점은 or구문은 미리 정해진 실행 횟수만큼 실행되지만,

// while구문은 루프 상수나, 카운터 변수가 없고, 그냥 조건식이 false 때까지 실행됩니다.

// for구문은 횟수가 중요하며, while구문은 결과값의 true / false 여부가 중요하겠지요?

// while구문의 사용 예는 주로 1)실행 횟수를 기반으로 없는 조건 

// 2) 실행전까지는 실행횟수를 없을 3) 실행횟수가 명확치않을때


// while 조건식 {                  조건식은 반드시~ true / false 값을 반환해야합니다.

// 실행구문 

// } 


// 위와같은 타입을 가집니다 :)


var n = 2

// 변수 n 2라는 정수타입의 값을 가진다.

while n < 2000 {

    // n 2000보다 작을 때까지

    n = n*2

    // n 2 곱한다!

}

// 결과입니다 :)

// while구문은 변수가 상수를 위에 먼저 선언하시고 나서~ 


// 구문에 넣으셔야 실행이 가능합니다.


// 소소한 팁이되겠네요.

// repeat while구문


var i = 1994

repeat {

    i =  i * 2

}


while i < 1994


// repeat while구문은 조건이 무조건 false임에도 불가하고한번은 ! 무조건 한번은자동으로 실행이 됩니다.

// 고로결과값이 3988 되는거죠. while구문에 적용해보도록 하겠습니다.

var i2 = 1995

while i2 < 1994 {

    i2 = i2 * 2

}

print(i2)


// 보시면 i2 값이 그래도 1995인것을 확인하실 있습니다.

// 왜냐하면? 조건식이 false이니 한번도 실행되지않은채 남겨지는거죠.


// 감사합니다 :)


2016/04/19 - [프로그래밍발전소 ♫] - 160418 swift 란? 스위프트 언어에 대해서 알아봅시다. let과 var편

2016/04/20 - [프로그래밍발전소 ♫] - 160419 Swift part.2 String과 Numbers에 대해서

2016/04/23 - [프로그래밍발전소 ♫] - 160423 Swift Tuple, Typealias 편 ! :) 튜플과 타입얼라이어스

2016/04/25 - [프로그래밍발전소 ♫] - 160424 collection Array 편 :)

2016/05/05 - [프로그래밍발전소 ♫] - 160505 Swift Collection: Dictionary 와 Set

2016/05/05 - [프로그래밍발전소 ♫] - 160505 Swift 구문편! if, for, switch 까지!

2016/05/06 - [프로그래밍발전소 ♫] - 160506 Swift Optional 스위프트의 꽃! 옵셔널에 대해 알아보자!

2016/05/07 - [프로그래밍발전소 ♫] - 160507 Swift Optional 스위프트의 꽃 옵셔널! 마지막편!

2016/05/07 - [프로그래밍발전소 ♫] - 160507 Swift Function 이번엔 프로그래밍의 꽃! 함수편!

2016/05/12 - [프로그래밍발전소 ♫] - 160512 Swift Function 스위프트 함수편!

2016/05/12 - [프로그래밍발전소 ♫] - 160512 Swift 단순 구문 , 흐름 제어 구문 for , for ~ in구문 :)



반응형
by 밑바닥에서 글로벌로~ 발전소장 에르 :) 2016. 5. 14. 05:18
반응형

안녕하세요~ 에르의 생각발전소입니다 :)

이번 시간에 다뤄 볼 주제는 단순 구문과 흐름 제어 구문 입니다 :)

프로그램을 만들 때 더 잘 작동할 수 있도록

일종의 윤활유라고 할 수 있겠지요?

뭐 뭐든 안중요한게 있겠습니까?

다 모든 프로그래밍 지식들이 소중하지요.

어찌됬든, 시작해보겠습니다 :0






/* 프로그래밍 과정 작성하게되는 코드를 구문이라고 하며,

 

 앱하나를 개발하기위해서 수십줄부터~ 수만줄의 코드가 필요하며, 이와 더불어 디자인 음향 네트워크 등등 따지면, 많은 노력과 시간이 필요합니다.

 

 구문의 종류는 단순 구문과 흐름 제어 구문으로 나뉘는데,


 단순 구문은 말그대로 객체의 선언 정의 일반 구문인 반면


 흐름 제어 구문은 조건문이라고 있겠지요 :)

 

 대게 흐름 제어 구문은 종류로 나눌 있는데


 -반복문, 조건문, 제어 전달문으로 나눌 있습니다.

반복문은 For구문과 While구문으로 나눌 있습니다.

 

 for 반복문은 주어진 구문을 정해진 횟수만큼 실행하며,

 

 for~in구문과 for구문으로 나눌 있습니다.

 

 for 구문은 반복할 때마다 카운터를 증가시키며 조건이 충족될 때까지 반복실행하며

 for in 구문은 순서에 따른 각각의 아이템에 대하여, 반복한다는 차이점이 있습니다.

 

        for (초기값; 비교 조건; 증가값){

        

            반복 실핼 구문

        }

 

 위와같이 이루어져있습니다.

 

 

 */


//  노란색 세모는 에러가 아닙니다.


//  뭐 일종의 스위프트 언어 자체에서 제공하는 권유? 랄까요?


// 저 노란색 세모를 누르시면~

//  ++ is deprecated: it will be removed in swift 3 

//  Fix - it Replace "++" with " += 1"


//  ++는 반대되었습니다. 스위프트3에서는 제거될 문법입니다!


// ++ 대신에 += 1 을 사용하여, 대체하세요 :)


// 라고 ~ 친~절히 알려주네요 :)

// 


for ex in 0 ..< 11 {

    print("\(ex)번째 구독입니다.")

}


// 스위프트가 시키는대로 대체한 모습입니다. 

// 근데 += 1 이 아니라 아예 다른 코드가 되버렸네요?

for ex in 0 ..< 11  여기에서 0..<11 는 0부터 10까지라는 뜻이됩니다.

//  결국은 0...10 과 똑같은 뜻이지요 :)

// for 구문이 for in 구문으로 변경되었고 스위프트에 최적화된 코드로 대체되었습니다 :)

// 증가도 가능하며, 반대로 차감도 가능합니다!

 

// for 구문을 실행하여, i라는 변수를 제공하여, 2016 값을 주고 i 는 1994보다 작고 1씩 감소한다.


// 이번에는 스위프트에서 추천하는 연산자인 -=1 연산자를 사용하였습니다. :)


// for in 구문은 배열, 딕셔너리, 범위 데이터의 개별 점수 , 문자열 순번으로 관리되는 데이터 타입을 효과적으로 순회할 있는 구문입니다.


// for 루프 상수 in 순회 대상 {

//        실핼구문

// }


for loopNumber in 1...5 {

    print("2 X \(loopNumber) = \(loopNumber*2)")

}


// for in 구문을 사용하여, loopNumber라는 루프 상수를 선언하고 순회대상으로는  1...5를 지정했습니다. 1..<6도 가능하겠지요?


// 그리고 print 문법을 사용하여 실행하였습니다.


// 나이 계산이 가능하네요 :)



// 문자열 기억하시나요?

// 문자열과 문자의 차이도 기억나시는 분들은 이해가 쉬울겁니다 

//  


var lang = "swift"

for char in lang.characters {

    print("개별 문자는 \(char) 입니다.")

}


//  for char in lang.characters 에서 character는  


//  문자열을 문자로 순회 구간을 지정한다는 얘기입니다.

//  고로 swift는 5자이니 5회 순환하겠지요?

// var characters : String.CharacterView {get}

// A collection of Characters representing the String's extended grapheme clusters.

// 문자들의 콜렉션으로 문자열의 확장된 서기소의 다발을 일컫는다 라고 얘기해주네요.


var lang = "swift"

for char in lang.characters {

    print("개별 문자는 \(char) 입니다.")

}



// 고로, 위와같은 결과값을 얻으실 수 있습니다 :))))


//  또한 루프상수는 생략할 수 있습니다 :) _ 언더바를 대신 집어너어서 가능하지요


let size = 5

let padchar = "0"

var keyword = "3"


for _ in 1...size {

    keyword = padchar + keyword

    

}

print("\(keyword)")

// size = 5 ; patcher = "0" ; var keyword = "3"

//  for _ in 1...size 는 1...5까지의 의미가 됩니다.

// keyword = patcher + keyword 이면,

// padchar의 0가 다섯번 삽입된 후 3이 붙는단 얘기입니다.

//  고로, 값은 000003 이지요 :)


2016/04/19 - [프로그래밍발전소 ♫] - 160418 swift 란? 스위프트 언어에 대해서 알아봅시다. let과 var편

2016/04/20 - [프로그래밍발전소 ♫] - 160419 Swift part.2 String과 Numbers에 대해서

2016/04/23 - [프로그래밍발전소 ♫] - 160423 Swift Tuple, Typealias 편 ! :) 튜플과 타입얼라이어스

2016/04/25 - [프로그래밍발전소 ♫] - 160424 collection Array 편 :)

2016/05/05 - [프로그래밍발전소 ♫] - 160505 Swift Collection: Dictionary 와 Set

2016/05/05 - [프로그래밍발전소 ♫] - 160505 Swift 구문편! if, for, switch 까지!

2016/05/06 - [프로그래밍발전소 ♫] - 160506 Swift Optional 스위프트의 꽃! 옵셔널에 대해 알아보자!

2016/05/07 - [프로그래밍발전소 ♫] - 160507 Swift Optional 스위프트의 꽃 옵셔널! 마지막편!

2016/05/07 - [프로그래밍발전소 ♫] - 160507 Swift Function 이번엔 프로그래밍의 꽃! 함수편!

2016/05/12 - [프로그래밍발전소 ♫] - 160512 Swift Function 스위프트 함수편!

2016/05/12 - [프로그래밍발전소 ♫] - 160512 Swift 단순 구문 , 흐름 제어 구문 for , for ~ in구문 :)

2016/05/13 - [프로그래밍발전소 ♫] - 160513 Swift While 구문편 :)


반응형
by 밑바닥에서 글로벌로~ 발전소장 에르 :) 2016. 5. 13. 02:22
반응형

안녕하세요~ 에르의 생각발전소입니다 :)

이번 시간에는 스위프트와 같은 프로그래밍 언어의 꽃!

함수에 대해서 다뤄보도록하겠습니다!

함수는 일종의 연장(도구)입니다.

못질을 하기위해서는 망치가 필요하겠지요?

그럼 그 망치를 만들어야하는데, 

여기서 망치가 함수가 되는겁니다!

그러므로, 꼭 알아야겠죠?






OPTIONAL 편에서 사용했던 예제를 가져왔습니다 :)

import UIKit


let movie = "Death Note"


// moive라는 상수를 선언하고 값은 "Death Note"를 가집니다.


var ratings:[Double]? = nil


// 처음에는 값이 없고 나중에 추가될 것이기 떄문에. 옵셔널로 지정해줍니다.


let url :String = "www.DeathNote.com"


// 주소는 당연히 있어야겠지요?


// 그리고 타입을 선언해줬습니다! 


ratings = [1.5, 2.5, 3.0 ,5.0, 4.5, 1.0, 3.5, 2.0]


// ratings 8개의 더블값들들을 주었습니다!


var info:String = "\(movie)"


var info:String = movie


// 둘 중 어느 타입으로 주든 상관없습니다 :)

// print 역할을 맡게될 info 변수입니다!


// 이제 함수를 만들어봅시다!


//    func <#name#>(<#parameters#>) -> <#return type#> {

//         <#function body#>

//     }


// 스위프트에서의 함수 틀입니다. parameters에는 매개변수가 들어가고 


// return type에는 함수에 돌려지고 결과값을 표출할 때의 


// 값을 지정해주셔야합니다.


// function body 함수의 내용입니다.


func funcRatings(paraRatings:[Double]) -> (average:Double, min:Double, max:Double){


    //  paraRatings:[Double]이라고 선언했는데, 왜냐하면 ratings


    //  더블값이기 때문입니다. 게다가 어레이상태이죠.


    //  리턴타입은 튜플이며 평균과 최소, 최대값을 구할 것이며, 타입은 더블입니다.

    

    // 왜냐하면 ratings 값들이 더블값이기 때문이지요!


    var sum = 0.0, min = paraRatings[0], max = paraRatings[0]

    

    // sum 0.0 값을 가지며, min,max paraRatings에서의 첫번째값을 가진다. 라고 변수를 생성해주세요.


 

    for value in paraRatings {

        

        // for~in구문을 활용해봅시다!

        

        if min > value {min = value}

        

        // 만약 min 값보다 크다면  value 최소값입니다.

        

        if max < value {max = value}

        

        // 만약 max 값보다 작다면  value 최대값입니다.

        

        sum += value

        

        // sum에는 값들을 차곡차곡더합니다. 총합이니까요!

 

}


 

let average = sum/Double(paraRatings.count)

    

    // 평균값은 총합에서 paraRatings 갯수만큼 나눈 값입니다!

    

    // 여기서 paraRatings.count Double타입이 지정된 이유는?

    

    // 그렇죠, 값들이 더블값이고 따로명시해주지않으면 

    

    // 스위프트 정수로 인지하니 타입을 정확힌 지정해야하는거죠

    

    // 스위프트는 타입과 대소문자에 까칠합니다!

    

    return(average,min,max)

    

    // 반환으로는 average, min, max 반환한다.

    

}

언렙하지않으면 스위프트가 유혹을 합니다.

너 이값이 언렙되지않았는데, ! 나 ? 써서 언렙할레?

그게 더 깔끔할 것 같은데?

ㅋㅋㅋ그래서 !를 붙힘니다!

 

info += " has \(ratings!.count) ratings.\r\n average is \(record.average) from \(record.min) to \(record.max),  \r\n Also our offical website is here \(url) "



print(info)


// 이렇게 갑이 또아앟! 뜹니다 :)

// 그럼 끝이에요.

// 함수를 이용해서 연산을 했고 그 값을 활용해서 위와같은 결론을 얻었습니다 :))))


// 조만간 함수와 옵셔녈 컬렉션들에 대해서 심화편을 업로드하도록 하겠습니다 :)


반응형
by 밑바닥에서 글로벌로~ 발전소장 에르 :) 2016. 5. 12. 08:01
반응형

안녕하세요~ 에르의 생각발전소입니다 :)

이번 시간에 다뤄볼 주제는 " 내 맥북...어떻게 고칠까? " 인데요

센서고장 혹은 SMC 설정이 엉켜버린 경우 

조금의 과부하에도 맥북은 위기사항으로 인지하고 

펜은 쌩쌩 돌려버리는 경우가 있는데요.

RPM이 높아지면 높아질수록 소음은 커지게되며,

특히 도서관같은 정숙을 요구하는 장소에서는 민폐가 될 수 있겠죠.

그리고 이 프로그램의 장점은 한국어를 지원한다는 것!

다운받아볼까요?




위 링크를 따라가주세요 :)


링크를 타고 들어오셨다면 위와 같은 화면을 보실 수 있습니다.

지금 저희가 필요한 건 Macs Fan Control 이라는 앱입니다.

여러분의 컴퓨터는 MAC이므로, 우측 하단에 " Download for Mac "을 클릭해여 다운로드받아주세요.


다운로드를 완료하셨으면 Downloads 폴더에 Mac Fan Control 이 보이시나요?

클릭해주시고 설치해주시면 됩니다 :)


그럼 어플리케이션 폴더에서나 F4를 눌러 대쉬보드에서 확인가능하십니다.

얘를 실행시켜주세요.

아무것도 안뜬다고 당황하지마시고~


 우측상단에 보시면  아이콘이 보이실겁니다.

이 아이콘을 클릭해주세요.



저는 고정값을 5000으로 설정해놓았답니다. 맥북이 아주 냉골이에요..

각설하고, Macs Fan Contorl 열기를 클릭해주세요.



위와 같은 창이 뜨며 우측에는 온도센서를 통한 각 파트의 온도를 확인할 수 있으며,

좌측에서는 팬의 설정을 만지실 수 있습니다.

편리한 환경을 위해서 환경설정을 클릭해주세요.


아, 미리  한국어로 언어를 바꿔놓은터라 이렇게 보이실텐데 

처음 다운받으면 영어로 뜬답니다.

침착히 따라해주세요.


메뉴바에서 온도도 우측에 띄울 수 있습니다.

저는 CPU Core 2 를 지정해놓았습니다.


자동을 누르면 원래의 설정대로 온도가 어느정도 올라갔을시만 작동을하며 기본 세팅입니다.

하지만 개인의 취향에 따라 기본값을 설정할 수 있으니,

좋겠죠?

단축키도 잘 지원한다면 좋겠지만 희망사항일 뿐입니다..

어찌됬건 해결이 되셨나요?

그럼 보다 즐거운 MacLife를 위해서 

20000~

반응형
by 밑바닥에서 글로벌로~ 발전소장 에르 :) 2016. 4. 21. 01:23
반응형

안녕하세요 :) 에르의 생각발전소입니다~

이번 시간에는 저번 시간의 " let , var , int , double " 에 

이어서 String, Numbers에 대해서 다뤄보겠습니다.

String은 문자열을 의미입니다. 

여기서 문자열이란, 문자들이 모인 열을 의미하며, 

문자들은 character로 구분하며 이 character들이 모이면 String이 되는 개념입니다.

아래 예문을 살펴볼까요?

logan이라는 문자열을 상수로 정의하였고, hi라는 문자열을 상수로 정의하였습니다.

헌데 왜 에러가 뜰까요?

이유는 바로 "(큰 따옴표) 때문입니다. 

스트링으로 정의할 때는 문자열 앞뒤로 큰 따옴표가 꼭 필요합니다.

스트링 앞뒤로 큰 따옴표를 붙히니 에러가 말끔히 사라졌습니다.


mr이라는 클레스에 lee라는 스트링을 수정 추가할려는데 

에러가 발생합니다 왜그럴까요?

맞습니다.

mr는 상수 클레스이므로 건들 수 없습니다.

고로, mr 대신 hi 변수클레스에 hello 스트링을 더했습니다. 

글자가 붙는 것을 원하지않는 분들은 앞에 공백을 넣어주세요.


그럼 mr, hi 두 클레스를 붙혀서 " hi hello logan " 이라는 값을 얻고자합니다.

+= 덧셈 연사자를 이용하여, " hello " + mr 를 입력하여주시면 우측에

"hi hello logan" 이라는 결과값이 표출되는 것을 보실 수 있습니다.

let의 값을 다른 값에 덧셈하는 것은 가능합니다. (허나 직접적으로 초기화시키는 것은 불가능합니다.)



charaters라는 상수클레스를 만들고 mr클레스의 문자열의 각 문자들에 접근하기위해 

characters 기능을 이용하여, 간단하게 오브젝트 뷰가 생성되었습니다.

l, o, g, a, n 이라는 5개의 문자가 보이는데요.

count 기능을 사용하여, 실셈이 가능합니다.

let count = characters.count 로 5개라는 결과값이 표출되고있습니다.

String에 대해서 감이 오시나요?

의외로 쉽쥬?



이번에는 더블과 인트 값에 대해서 보충설명을 해보겠습니다.

height는 더블값이며, halfHeight = height/2 라는 코드에 에러없이 정삭적으로 작동합니다.


허나, divider 라는 상수클레스를 만들어 height/2 대신 height/divider 를 대입하니 에러가 발생합니다.

왜그럴까요? 분명히 똑같은 숫자 2인데 말이죠.

이유는 바로 타입 때문입니다.

divider의 타입은 Int값이며 height의 값은 double값입니다.

고로, 연산이 불가능한거죠

그리고 float은 32bit이며, double은 64bit입니다.

그냥 소수점값을 입력하면 그 클레스의 타입은 자동으로 double이 됩니다.

그래서 정확한 계산을 위해서 divider값을 Double값으로 변경 후 계산해보면 정확한 값이 표출됩니다.

저번 시간에 배운 type(value) 기억하시죠?

응용하시면 됩니다!


 Bonus) UInt 와 Int가 있습니다!.

값을 보시면 Int는 - 값까지 있는 반면에 UInt값에는 -가 없습니다!?

Unsigned Int라고 하여 양수만 표현하는 정수입니다. 

장점은 int에 비해 양수를 2배 (Int x 2 - 1 )만큼 더 사용가능합니다.

용도에 따라 Int와 UInt를 사용하시면 편하시겠죠?

1편링크<<<<


다음엔 TUPLE과 array로 찾아뵙겠습니다! :)


Have a lovely day`!


( 윤성관님의 강의와 꼼꼼한 재은씨의 스위프트2 를 참고하였습니다.)


반응형
by 밑바닥에서 글로벌로~ 발전소장 에르 :) 2016. 4. 20. 08:21
반응형

반갑습니다 :) 에르의 생각공작소의 에르입니다.

이번 시간에 다뤄 볼 주제는 바로 " SWIFT "입니다.

 objective-c 언어의 특징도 가지고 있으면서,

스위프트만의 독자적인 장점도 가지고 있는

오브젝티브씨를 다루셨었던 개발자분들은 

왠  새 한마리가 툭 튀어나와서 이리 마을을 흔드냐..

라고 하시겠는데

처음에는 스위프트가 공개됬을 때는 많은 분들이

많은 분들이.. 스위프트하면 가장 먼저 떠올리실 것 같은...?

네.. 저도 인정합니다.  스위프트하면 " 테일러 스위프트 " 가 가장 먼저 떠오르죠.

뜬금없지만, 레전드 짤하나 퍼왔습니다.

자! 이제 각설하고 본론으로 돌아가보겟습니다. 


스위프트(Swift)는 애플 iOS OS X를 위한 프로그래밍 언어 

2014년 6월 2일 애플 세계 개발자 회의(WWDC)에서 처음 소개되었다. 

기존의 애플 운영체제용 언어인 오브젝티브-C와 함께 공존할 목적으로 만들어졌으며, 

오브젝티브-C와 마찬가지로 LLVM으로 빌드되고 같은 런타임을 공유한다.

 클로저, 다중 리턴 타입, 네임스페이스, 제네릭스, 타입 유추 등 오브젝티브-C에는 없었던 

현대 프로그래밍 언어가 갖고 있는 기능을 많이 포함시켰으며,

코드 내부에서 C나 오브젝티브-C 코드를 섞어서 프로그래밍하거나 스크립트 언어처럼 실시간으로 상호작용하며

 프로그래밍 할 수도 있다. 언어 설명서도 함께 배포되었다. 애플에서는 iBooks에서 Swift에 관한 책을 배포하고 있다.

링크 --> [ swift 언어 개발문서 한국어 번역판 ] 입니다. 

본격적으로 시작하기전에, 앱스토어에서 XCODE를 다운받아주세요.

XCODE가 없다면 Swift는 무용지물입니다.


XCODE를 실행시키시면 위와 같은 화면을 보실 겁니다.

여기서 ' Get started with a playground " 를 클릭해주세요.

playground란 xcode의 장점 중 하나로써 연습장입니다.

코드를 작성해보고 작성하는 즉시 중간중간에 자동으로 혹은 수동으로 실행하여,

결과를 즉시 확인할 수 있습니다.



이름은 아무렇게 편하신데로 적어주시고 플렛폼은 IOS를 선택해주시고 생성해주세요.


플레이그라운드 실행시켰을 때 제일 처음 보게될 화면입니다.

익숙한 hello world 란 문장이 보이네요.

그런데 맨앞 줄에 var 는 도대체 무엇일까요?



let 은 상수 값을 선언하기 위해 쓰입니다. invariable 값을 선언하기위해 사용되죠.

한번 그 값으로 초기화되면 변경 할수없습니다.

var 는 변수 값을 선언하기 위해 쓰입니다. variable 갑슬 선언하기위해 사용됩니다.

한번 선언된 값을 수정할 수 있습니다.

또한, 정석대로라면 let name:type = value가 되어야하는데 타입 선언 부분이 생략되어있습니다.

왜냐하면 스위프트의 자동 타입 추론 기능으로 인해 값을 입력하면 그 값을 자동으로 인식하여,

컴파일러가 해석한 타입으로 선언합니다.

고로, 정수값을 입력하면 그 개체의 타입은 자동추론을 통해 정수로 선언되는 것이며,

문자열을 입력했을 경우 개체의 타입은 자동 추론으로 인해 스트링으로 선언됩니다.


 let으로 maxnumber라는 개체를 생성하였고 저 개체의 값은 300이며, 코드를 수정하지않는 한 변경하지못합니다.

var 로 currentNumber라는 개채를 생성하였고 저 개체의 값은 123이며, 수정가능합니다.

currentNumber 값을 123에서 230으로 수정하였고 문제없이 변경되었습니다.

허나, maxNumber 값을 300에서 350으로 수정하고자 하였으나 에러가 발생했습니다.

이번에는 currentNumber와 pastNumber를 더해보도록 하겠습니다.

currentNumber + pastNumber 라는 코드를 실행했더니 에러가 납니다.

이유는 바로 타입이 서로 다르기 때문입니다.

pastNumber는 더블 값을 가지고 있으나 currentNumber는 정수값을 가지고 있습니다.

스위프트에서는 다른 타입의 값을 서로 연산시킬 수 없습니다.

둘 중 하나의 값을 같은 타입으로 재선언해주셔야합니다.

int 타입인 currentNumber 를 Double값으로 재선언하여 pastNumber 값과 덧셈을 시켜보니...

에러가 사라졌습니다.

값을 재선언하기위해서는 type(value) 문을 사용해주시면 됩니다.!

다음편은 string과 numbers 를 다뤄보도록하겠습니다.

윤성관님의 강의를 참고하엿습니다.




p.s 처음 스위프트가 공개되었을 때는 외면은 많이 받았었습니다.

옵젝씨가 드디어 빛을 발하려고하는 과정에서 스위프트가 공개되었기 때문입니다.

스위프트의 몰락을 점치는 사람들이 꽤 있었습니다.

허나 옵젝씨와 호환되며, 더 세련되고 현대화된 스위프트가 오픈 소스로 공개되며,

실 개발에 사용되고 시간이 지남으로서 영향력이 커져가고 있음은 사실이며,

애플 또한 공식홈페이지를 통해 스위프트 언어 사용을 장려하고 있습니다.

저같이 처음으로 프로그래밍을 공부하시는 분들은 스위프트가 의외로 적합하다고 봅니다.

다들 같이 힘내봅시다! :)






반응형
by 밑바닥에서 글로벌로~ 발전소장 에르 :) 2016. 4. 19. 08:27
| 1 |