2017년 가을 강원도 여행#1 - 은행나무 숲, 두물머리, 횡성 한우

Posted by ironmask84
2017. 10. 31. 22:21 국내여행/강원도_2017


부모님을 모시고 간 첫 강원도 여행!

이전에는 친구와 강원도를 갔던 적이 몇 번 있었죠 ㅎㅎ

그 동안은 거의 깨끗하고 맑은 동해바다를 찾아서 아름다운 해변 근처를 많이 돌아다녔었는데,

이번에는 바다도 보긴 할 것이지만, 가을이니만큼 단풍놀이도 좀 해야죠? ㅎㅎ

가을여행을 키워드로 검색해보면, 요즘은 네이버에 랭킹별 리스트업도 잘 되어 있네요 : )

그 중에 상위권에 있는 것들 중에 홍천 은행나무 숲, 양평 두물머리, 설악산 케이블카를 타고 권금성~

그 중 첫날인 10월31일 오늘은! 양평 두물머리, 홍천 은행나무 숲을 둘러봤고

중간에 횡성에 들려 한우고기를 시식했습니다~ ㅋㅋ


여행 사진

우선은 두물머리 사진입니다~~

비용은 근처 주차비 2000원만 내면 됩니다. ㅋㅋ


 여기가 북한강과 남한강이 만난다는... 


 저기 보이는 큰 나무가 여기서 유명한 느티나무 입니다. 
 생각보다는 크지 않았어요 ^^.. 


이번엔 홍천 은행나무 숲입니다!!

기대가 컸지만... 늦었나 봐요.. 먼길 왔는데.. ㅜㅜ 잎이 다 떨어짐...

1년에 10월에만 개방한다고 해서.. 10월 마지막인 오늘 갔지만..

10월 20일 정도까지는 가야 좋을 듯 싶네요;;; 꼭 참고하세요 ㅜㅜ

참고로 무료개방 입니다. 


 잎이 많으면, 매우 아름다울 듯 합니다... 
 규모는 생각보단 크진 않은 것 같아요... ^^ 


 아쉬운대로 주변에 팔고있는 감자떡을 구입!! 
 매우 부드러운 식감을 자랑합니다. ㅋㅋ 


숙소에 들어가기전에 속초중앙시장에서 닭강정, 새우튀김, 메밀전병을 구입했어요 ㅋㅋ

저녁으로 떼웠습니다~ 한끼 정도는 시장 음식을 맛보는게 속초코스죠


숙소 사진

이번 여행에 숙소는 속초에 있는 마레몬스 호텔로 잡았습니다.

속초에 랜드마크급 인듯하게 속초를 지나가다 보면 우뚝 솓아있는 호텔이 여기입니다.

명색은 5성급 호텔인데, 비수기여서 제법 저렴한 비용으로 숙박이 가능해요 ㅎㅎ

해외 여행 때는 익스피디아를 이용했었는데, 국내는 그냥 네이버가 싼 것 같군요.

어른 3명이어서, 더블 1개, 싱글 1개인 슈페리어 스위트 트윈으로 했고,

조식패키지로 했습니다. 2인 기준이라 조식패키지도 일단 2인으로 나오구요.

1명은 따로 추가 결제를 해야하겠습니다.



 2박에 조식포함 37만!! 


 익스피디아보다 10만원이나 싸네요 헐.. 
 게다가 이벤트로 네이버페이 적립 6% 적용도 됨!! 


 정면 샷입니다. 자세히 보시면 5성이 보이는... ㅋㅋ 


 호텔객실에서 밖을 바라본 뷰 
 호텔 객실 내부 사진은 짐을 어지렵힌 뒤여서 실패..
 


 파도치는 것 까지 보일 정도로 꽤 가깝습니다. ㅎㅎ 





 

[서울/마포/상수동] 히메시야 - 일식 덮밥 맛집

Posted by ironmask84
2017. 10. 28. 13:02 생각과 일상/맛집


이윽고 5번 째 맛집 포스팅 입니다 ^^

저는 사람많은 홍대 보다는 조금은 조용한 합정, 상수동이 좋더라구요.

이제 많이들 아시겠지만 상수쪽에 가면 예쁜 까페나 식당들이 많이 있습니다.

간만에 지인과 약속이 잡혀, 장어덮밥이 땡겨 일식집을 찾던 중에 '히메시야' 라는 곳을 발견!!

가게도 적당히 고즈넉하고 일본스럽습니다. 

메뉴는 주로 덮밥류가 많았고, 초밥, 카레도 있습니다.

음식 맛도 가격대비 괜찮았고, 추천해요 ㅎㅎ


내외부 사진


 입구부터 일본스러움이 ㅎㅎㅎ 


 예쁘게 잘 코팅해놓은 메뉴판! 덮밥류가 전문인듯 합니다. 



음식 사진


 연어뱃살 덮밥 입니다!! 연어가 커서 밥이 살짝보이네요 ㅋㅋㅋ 


 장어덮밥(우나기동) 입니다!! 가격대비 실합니다. 
 주 메뉴인 청국장과 순두부를 시켰어요!! 찬 들도 다 건강해이죠? ㅎㅎㅎ 


위치


 합정역과 상수역 사이인데, 저 주변에 예쁜 가게들이 많습니다. ㅎㅎ 



 

라즈베리파이 프로젝트 준비#2-1 - 구성품 리뷰

Posted by ironmask84
2017. 10. 24. 20:38 나는 프로그래머다!/Sensor



라즈베리파이로 (Raspberry PI) 프로젝트를 진행하고 있습니다만,

많이 더딥니다. ㅎㅎ

현재까지 Putty로 SSH 접속까지 진행했는데요. ( http://ironmask.net/389 )

조만간 WIFI 접속과 LED 컨트롤까지 진행을 할 예정입니다. ㅎㅎ

구입을 한 후에 제품 구성에 대해 한 번 리뷰하려고 합니다.

심플하지만, 구성이 깔끔하면서도 세심한 부분도 있어요 ^^

구입부는 아래 주소를 참조해 주세요 ^^

http://ironmask.net/387 )


기본 구성품

저는 가징 기본 세트인, 

라즈베리파이 3세대 + 정식케이스 + 방열판 세트 으로 구입했습니다.

아래 사진 나갑니다~ : )


 케이스는 위처럼 5가지 부품으로 나눠져 있어요! (색상은 레드, 블랙있는데 저는 레드로!!) 


 40개의 gpio핀과, BCM28xx CPU, SMSC 칩(이더넷 모듈) 등이 보이죠?? 


 뭐가 달라보이나요??  2개의 칩 위에 방열판을 붙였습니다. ㅋㅋ 


 바닥부분인데, 미끄럼방지용 스티커가 인상적입니다. ^^ 


 13인치 노트북 그램과 라즈베리파이 비교 
 물론 크기차이 만큼 성능차이, 가격차이도 큽니다. ㅋㅋ


 

 라즈베리파이 프로젝트

라즈베리파이 프로젝트 실전#1 - LED 컨트롤
라즈베리파이 프로젝트 준비#4 - WIFI 설정
라즈베리파이 프로젝트 준비#3 - OS 설치 및 Putty SSH 접속
라즈베리파이 프로젝트 준비#2-1 - 구성품 리뷰

라즈베리파이 프로젝트 준비#2 - 구입 리뷰

라즈베리 파이 프로젝트 준비#1 - 스펙 리뷰
  




 

네트워크#1 - TCP, UDP, MTU

Posted by ironmask84
2017. 10. 18. 16:31 나는 프로그래머다!/Sensor



라즈베리파이와 같은 네트워크 기능이 있는 디바이스를 가지고 개발을 하다보면,

네트워크 성능 측정 및 기능체크를 위해 'iperf' 라는 툴로 패킷을 주고받는 측정을 합니다.

이 iperf라는 툴을 사용 시에, 여러가지 옵션을 설정할 수 있는데,

그 중에 TCP, UDP와 같이 프로토콜 선택은 물론,

패킷 사이즈 및 갯수 등과 MSS(MTU 에서 특정 header를 뺀 것)을 설정할 수 있습니다.

예전에 네트워크 관련 스터디를 통해 들어본 바 있는 용어이지만,

다시금 뇌에서 되살려 보는 차원에서 기록 및 공유 합니다. 


TCP와 UDP

TCP 패킷 구조도


Sport =
송신자 포트

Dport= 수신자 포트

Sequence Number= TCP전송되는 데이터의 일련 넘버

Acknowledgment number= 응답 데이터 일련 넘버 + 전송된 데이터 합

Header Lengths = TCP Header 길이

Reserved = 예약된 번호 현재 사용되지 않음 항상 0

Control Bit = 패킷을 어떻게 다룰지 흐름등 관리하기 위한 사항

1.     URG = 최우선 순위 긴급한 패킷

2.     ACK = ACK필드 유효시 1

3.     PSH = 우선순위는 좀 떨어지더라도 최대한 빠른 전송 요청

4.     ROT = 현재 세션을 재 시작하려 할 때 사용 Session을 끊을때도 사용함

5.     SYN = Sequence Number를 송신측과 동기화하려 할 때 Session시작 시

6.     FIN = Session을 끊고자 할 때

Windows = 수신측에서 처리할 수 있는 Buffer

Checksum = TCP 오류 검증을 위한 데이터

Urgent Pointer= 급처리 데이터 마지막 바이트

Option = 필요시 생성 그다지

Padding = 32Bit의 배수를 만듬



UDP 패킷 구조도


LLC에서는 ethertype IP가 대입이 되어야 IP Packet이 되는 것이고 IP Header에서는 Type TCP UDP가 대입이 되어야지 TCP Packet UDP Packet이 만들어 집니다. ^^ 헤헤..


보시면 왜 MAC IP TCP순인줄은 금방 아시겠지요. ^^

         L2   L3 L4 입니다.

Layer Switch의 경우 L2Switch L3Switch L4Switch이렇게 나누자나요.


이 기준은 바로 Packet을 어디까지 분석해서 보내는지를 나타내는 거죠 ^^

IP만 보면 L3, Port까지 보고 스위칭하면 L4,


아무래도 앞에 있어야 분석하기 쉽겠죠. ^^ L2~L4까지 만약 L4가 먼저 있음 L2스위치는 포워딩하려면 L2데이터가 어딨는지 찾는데 딜레이타임이 걸릴 테니까.


또한 IP레벨의 스위칭도 여러가지 입니다.


보통은 목적지만 보고 라우팅하는데, 시스코의 CEF나 기타 프로토콜은 소스를 같이 보고 라우팅하죠. 이게 무슨 차이냐고 말씀하시는데 -_-;; 생각해보세요.

힌트는 LoadBanlancing입니다. 부하 분산에 차이죠. 라인이 하나라면 목적지만 보고 보내는 거랑 별 차이 없겠죠. 그러나 라인이 둘이라면 좀 다른 문제겠죠. ^^;;

출처: http://redsejo.tistory.com/4 [기도로 시작하는 하루]


MTU, MSS 란?

//MTU 란? http://qaos.com/article.php?sid=149

PING –f –l <MTU Size(Packet size + 28)> <interface default gateway address>
( 여기서 28은 'IP Header (20 bytes) + ICMP-Header (8 bytes)' )

Ex) ping <IP Address> -f -l <576~1500>로 값을 넣어 1472 로 값이 나왔다면 1472 + 28 = 1500 , 즉 MaxMTU 값은 '1500' 이 됩니다.


//MSS란(Maximum Segment Size)? 데이터 프레임 중 순수한 TCP 데이터 부분의 최대 값으로 분할하지 않고 한번에 보내는 것을 뜻합니다.

"윈도우 사이즈(크기) : TCP 환경에서 송신 호스트와 수신 호스트는 데이터를 수신한 다음, 다음 데이터를 보내 줄 것을 요청(Ack)하고, 요청을 받은 호스트는 다음 데이터를 보냅니다. 이런 과정에서 송신호스트는 Ack을 수신하기 전에 일정량의 데이터를 보낼 수 있는데 이를 윈도우 사이즈라고 합니다.

MSS(Maximum Segment Size) : 현재의 연결에서 TCP가 보낼 수 있는 최대의 데이터 크기를 말합니다. MTU라고 알려진 최대 전송 크기에서 헤더 부분을 뺀 부분이 MSS가 됩니다. Ethernet의 경우 MTU가 1500byte로 결정되어 있으며, 따라서 Ethenet에서 MSS는 1460byte가 됩니다.



" - 인용 ( 초보 서버 관리자를 위한 네트워크 및 보안 기초 포켓북 )

  
MSS = MaxMTU - 40 ( 40 = 'IP Header(20 bytes) + TCP Header (20 bytes + ? bytes)' )
Ex) 1500 - 40 = 1460 ( ? = 12byte , timestamp 옵션 적용시 추가됨 )

'Tcp1323Opts(Timestamp - RFC 1323)' 옵션에 'timestamp'이 활성화될 경우,
'Client ACK: TCP header'는 12byte를 추가한다. 즉, MSS 값은 1448 이 된다.

출처 : http://url.tistory.com/3

 

PHP와 Javascript 동작 개념

Posted by ironmask84
2017. 10. 17. 15:55 나는 프로그래머다!/PHP



웹프로그래밍을 하다보면, php와 JavaScript를 함께 사용을 프로그래밍을 합니다.

최근에야 php를 처음 접하다보니, JavaScript와 동시에 코딩을 하다보니, 

웹페이지에서 동적인 수행결과들에 대해 혼동이 오더군요 


간단하게 정리를 해보면,

php와 JavaScript둘다 동적인 웹페이지가 생성되면서, 제어되는 부분에서는 같지만,

php는 내부 데이터를 처리하기에 적합하고, JavaScript는 html로 보여지는 View 부분을 동적으로 제어하는 것입니다.


사실 php내에서도 Javascript 동작을 할 수는 있습니다.

ex) <?php
         echo "<script> window.open('main.php', '_self', ' '); </script>";
      ?>

반대로, javascript에서는 php를 이용한 제어는 불가하며, php에서 사용한 변수 값을 가져오는 정도는 가능합니다.

ex) <script>
         document.getElementById('current_time').innerText = '<?=$time?>';
     </script>


이유는, php는 서버에서 수행되고, JavaScript는 대부분 클라이언트(웹브라우져)에서 수행되기 때문입니다.

즉, php는 페이지 콜이 일어나는 순간 소스를 분석해서 내부 데이터 처리를 합니다. 

그리고 JavaScript는 만들어진 페이지 내에서 동적으로 페이지를 제어하는 방법을 제공해준다.

그러므로 JavaScript를 사용해서 동적으로 php를 다시 호출하거나 제어할 수 없습니다.





 

PHP 샘플코드 - 파일입출력과 문자열 파싱

Posted by ironmask84
2017. 10. 17. 10:21 나는 프로그래머다!/PHP



C언어 버젼에 이어 PHP 버젼으로도 파일입출력과 문자열 파싱 들어갑니다!
http://ironmask.net/392 )

전반적으로 C언어와 비슷한데,

함수가 좀 더 사용성이 좋고, 다양한 느낌이 있습니다.

이용한 함수보다 더 다양하게 제공되는 함수들이 있으니,

간략하게 잘 정리된 블로그를 공유드립니다. ( http://slreference.tistory.com/8 )


주제 요약 설명

PHP 언어로 파일을 읽어와서

특정 키워드 를 포함하는 함수를 통해 값을 얻어오고,

특정 delimiter로 파싱해서 결과물을 얻는 코드 입니다.

주요 사용 함수는 fopen, fgets, parse_strisset, strchr, explode입니다.

프로그래밍 언어의 기본 문법과 함수에 대한 사용법을 어느 정도 숙지하신 것을 

기본 전제로 진행합니다. ^^


샘플 코드

아래 코드는 file을 읽어와서 내장함수 parse_str을 이용한 것입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
 
// form을 wifiSet.php로 보내서, 파일 저장
 
include "settings.php";
 
// wifi setting
$fp = fopen("wifisetting.txt""r+");
if (!$fp) {
    die("<br/>Failed to open file.");
    echo "<script> alert('Failed to open file.'); </script>";
}
 
// wifienable=0&networkName=1 형식의 문자열을 wifienable 변수 생성 후 0을 넣어주고, networkName변수 생성 후 1을 넣어주는 함수
parse_str(fgets($fp));
 
// 예외처리는 각 설정에 대한 변수가 있느냐?  isset() 함수 그리고 그 변수에 값이 있느냐?  empty() 함수 <- true/false 반환
// 예외에 걸리면, 보드에서 새로 값 가져오기? or 설정파일 다시 생성??
 
if(isset($wifienable)){    // 예외처리를 위한 $wifienable 변수 존재 여부
    $WIFI_Setting['wifienable'= $wifienable;
}
if(isset($networkName)){
    $WIFI_Setting['networkName'= $networkName;
}
if(isset($channelselect)){
    $WIFI_Setting['channelselect'= $channelselect;
}
 
fclose($fp);
 
?>
cs


아래는 웹에서 접근했을 때 외부프로그램인 윈도우에서 제공하는 ipconfig 명령어를 수행한 결과를

strchr과 explode를 이용해서 문자열을 파싱해서 값을 얻어오는 부분입니다.

1
2
3
4
5
6
7
8
9
10
11
<?php
 
    $data1 = iconv("EUC-KR""UTF-8", shell_exec("ipconfig"));    // ironmask unicode 문제 해결 2017-09-18
    $data1_token1 = strchr($data1"이더넷");  // 전체 문자열에서 '이더넷' 문자열이 나오는 부분부터 끝까지 값 복사
    $data1_token2 = strchr($data1_token1"IPv4 주소 . . . . . . . . . : ");
    $data1_token3 = explode(" "$data1_token2);    // delimiter로 문자열 자르기
    $data1_Ipv4 = explode("."$data1_token3[12]);    // 원하는 문자열 값 얻기
 
    echo $data1_Ipv4[0] . "." . $data1_Ipv4[1] . "." . $data1_Ipv4[2] . "." . $data1_Ipv4[3];  // IPv4 출력
    
?>
cs


아래는 위 소스에서 사용된 파일을 write하는 내용 입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
 
$wifienable = $_POST['wifienable']; // Radio Button
 
$networkName = $_POST['networkName'];                // check box
$networkName_count = count($_POST['networkName']);  // check box 에서 체크된 녀석 count
 
$channelselect = $_POST['channelselect']; // Select Button
 
 
$fp = fopen("wifisetting.txt""w+");
if (!$fp) {
    die("<br/>Failed to open file.");
    echo "<script> alert('Failed to open file.'); </script>";
}
fwrite($fp"wifienable=");
fwrite($fp$wifienable."&");
 
fwrite($fp"networkName=");
fwrite($fp$networkName_count."&"); // 우선은, 체크박스가 1개인 경우는 체크되면 1 아니면 0 
 
fwrite($fp"channelselect=");
fwrite($fp$channelselect);
fclose($fp);
 
echo "<script> window.open('wifi.php', '_self', ' '); </script>";
 
?>
cs




'나는 프로그래머다! > PHP' 카테고리의 다른 글

PHP와 Javascript 동작 개념  (0) 2017.10.17
 

C언어 샘플코드 - 파일입출력과 문자열 파싱

Posted by ironmask84
2017. 10. 17. 08:57 컴퓨터공학/C언어 레퍼런스



2년도 전에 타 블로거의 글을 참고해서 문자열함수에 대해 공유 드린적이 있었습니다.
( http://ironmask.net/198 )

내가 아닌 다른 분이  작성한 것을 참고하는 것은 역시 세월이 지나면,

참고할 때의 기억이 잘 안나는 것 같네요 ㅎㅎ

SW개발 업무를 맡고는 있지만 디버깅하는 업무가 많다보니,

코딩을 할 때 원하는 함수나 문법이 생각이 나지 않을 때가 종종 있습니다.

사실 다루는 프로그래밍 언어도 한 개에 국한되지 않으므로 더욱 혼잡함 ㅜㅜ

아무튼 그래서 기회되는 대로 샘플코드 형식으로 기록도 남기고,

방문자분들에게도 좋은 정보를 제공하도록 하겠습니다. :)


주제 요약 설명

C언어로 파일을 읽어와서

특정 키워드와 비교하는 조건문을 통해,

특정 delimiter로 파싱해서 결과물을 얻는 코드 입니다.

주요 사용 함수는 fopen, fgets, strncmp, strtok 입니다.

C언어의 기본 문법과 함수에 대한 사용법을 어느 정도 숙지하신 것을 

기본 전제로 진행합니다. ^^

샘플 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/*
Start 2017-10-10
By ironmask 
*/
 
int main( int argc, char* argv[] )
{
    
    char* token;
    char* token2;
    
    char strline[100];    // one line sentence
    int i = 0;
    char* word = "iface eth0 inet static"// keyword
    
    FILE *fp = fopen("../../etc/network/interfaces""r+");
    
    if(fp == NULL){
        puts("FAIL");
        return -1;
    }
    
    
    while(fgets(strline, sizeof(strline), fp)) // 한줄을 읽는데 size 만큼 읽는다.
    {     
        // interfaces File 내에 특정 키워드 찾기
        if(strncmp(strline, word, strlen(word) ) == 0)
        {
            // address
            fgets(strline, sizeof(strline), fp);
            
            token = strtok(strline, " ");    // 공백을 delimiter 기준으로 자르기
            token = strtok(NULL" "); // 더 이상 문자열이 없으면 NULL을 반환
            token[strlen(token)-1= '\0';    // gets 함수는 마지막에 \n이 들어가므로 이를 제거하기 위해 널값 삽입
            printf("%s\n", token);
            
            // netmask
            fgets(strline, sizeof(strline), fp);
            
            token = strtok(strline, " ");    
            token = strtok(NULL" "); 
            token[strlen(token)-1= '\0';
            printf("%s\n", token);
            
            // broadcast
            fgets(strline, sizeof(strline), fp);
            
            token = strtok(strline, " ");    
            token = strtok(NULL" "); 
            token[strlen(token)-1= '\0';
            printf("%s\n", token);
                
            // network
            fgets(strline, sizeof(strline), fp);
            
            token = strtok(strline, " ");    
            token = strtok(NULL" "); 
            token[strlen(token)-1= '\0';
            printf("%s\n", token);
            /*
            token2 = strtok(token, ".");
            printf("%s\n", token2);
            token2 = strtok(NULL, "."); 
            printf("%s\n", token2);
            token2 = strtok(NULL, "."); 
            printf("%s\n", token2);
            token2 = strtok(NULL, "."); 
            printf("%s\n", token2);
            */
            
        }    
    
    //    memset( &strline, 0, sizeof(strline) );
    //    printf("hello\n");
    }    
    
    fclose(fp);
    return 0 ;
}
cs


아래는 위 소스에서 사용된 interfaces 파일 내용 입니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
 
# The loopback interface
auto lo
iface lo inet loopback
 
# Wireless interfaces
iface wlan0 inet dhcp
        wireless_mode managed
        wireless_essid any
        wpa-driver wext
        wpa-conf /etc/wpa_supplicant.conf
 
iface atml0 inet dhcp
 
# Wired or wireless interfaces
allow-hotplug eth0
auto eth0
iface eth0 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        broadcast 192.168.0.255
        network 192.168.0.0
        up /etc/network/if-up.d/eth0-up.sh
 
allow-hotplug eth1
auto eth1
iface eth1 inet static
        address 10.104.91.15
        netmask 255.255.255.0
        network 10.104.91.0
        gateway 10.104.91.1
        dns-nameserver 156.147.19.132
        up /etc/network/if-up.d/eth1-up-nat.sh
        down /etc/network/if-post-down.d/eth1-down-nat.sh
cs




 

자몽주유#2 - 국민카드 이벤트

Posted by ironmask84
2017. 10. 16. 21:08 재테크/깨알꿀팁



배경 설명

자몽할인에 대해서 한 번 포스팅한 적이 있습니다.
http://ironmask.net/382 )

자몽앱을 이용한 주유가 이제 많이 대중화되고 있습니다. ㅎㅎ

요즘 모바일 앱을 통해 결제하는 상품들이 계속 늘어나고 있고,

인터넷 접속 수단도 이미 PC에서 모바일이 대세로 굳혀졌습니다.

2010년 전에만 해도 이런 세상이 쉽게 그려지지는 않았는데, 

현실이 되고 보니 이런 세상이 되는것도 금방이네요.. 흐흐

아무튼 자몽이 앞으로 이런 좋은 이벤트를 계속 했음 하는 바램이며,

기간이 10/20 까지라 얼마남진 않았지만 급 포스팅을 합니다.  :)


할인 내역

4만원 이상 주유 시에, 국민카드로 결제 시 4000원 할인 쿠폰적용 건 인데요.

기본 자몽 할인까지 해서, 총 4837원 할인이 되어서,

리터당 1261원이라는 아름다운 가격이~~

실증은 아래를 참고해주세요 ㅎㅎ

   

   



 

서민의 부동산에 대한 생각

Posted by ironmask84
2017. 10. 8. 21:59 재테크


저는 서민 중에 한 사람 입니다.

사실 부자가 되고자 하는 욕심보다는, 먹고사는데 걱정을 안하고 싶은 마음..

즉, 경제적 자유를 누리고 싶다는 마음을 가지고 있습니다.. (왠만하면 누구나 가지고 있겠죠? ㅎㅎ)

서민 중에 한 사람일 수 밖에 없기에 경제활동을 하고 있으며, 회사원 입니다.  :)

자영업은 통계적으로 실패할 확률이 90%에 가깝습니다. ㅜㅜ

요즘 청년들에게 2000년대 불기 시작한 벤쳐와 같은 일례로 

스타트업을 하라는 둥 열정페이라는 둥 말이 많습니다.

젊을 때 도전과 열정.. 좋습니다만은 안좋게 말하면, 젊을 때 망해라는 거죠.

그만큼 안정성에서는 떨어진다는 말입니다. 

물론 이런 열정을 통해 대한민국에 페이스북과 같은 기업이 만들어진다면 

일자리 창출도 덩달아 일어나서, 선순환이 될 수도 있습니다.

하지만, 경제 불황은 계속되어 어려운 상황입니다.  개인 경제는 어떻게 타파해야 할까요?

지하자원이 풍부하지도 않으며, 땅덩어리가 크지도 않아 농업에 적합하지도 않으며,

좁은 땅덩어리에 인구는 늘어만 가고 있는 대한민국에서는 쉬운일이 아닙니다.

이러한 상황에서 서민이라면 결국, 열심히 월급쟁이 인생을 살다가

집 하나 마련하고, 자녀들 키우는게 고작인 것 같습니다. 그러면 노후는?? ㅜㅜ

그래서 이를 벗어나보고자 투자처를 알아보려고들 합니다.

그 중에 하나가 바로 부동산 이죠!!

서론이 길었습니다만, 현 상황을 다시금 생각 정리 해본 것입니다.

부동산과 대출

부동산도 다양합니다.

아파트, 상가, 빌라, 오피스텔, 토지 등..

얼마 전 까지도 많은 사람들이 주택담보대출을 통해서 실거주 주택을 구입하기도 하고, (집값이 계속 올라가니까..)

투기로 하는 사람들(특히, 갭투자라고 하지만 어찌보면 집값 거품을 부추기는 xx같은 사람들) 등

어찌됐든 본인 수익을 위해 매매가 활발히 이루어집니다.

하지만, 최근 8.2 대책을 시작으로 정부가 부동산 투기를 잡기위한 제재에 나서기 시작했습니다.

이제 주택담보대출을 통한 금액 비율이 많이 떨어졌기에, 신용대출 등 다른 방법을 이용하더라도 

이자를 많이 물어야 하는 상황이 생기는 것이죠.

개인적인 바램으로는 집값 거품이 많이 떨어졌으면 하긴 합니다. (특히, 서울 )

== 2017-10-09 내용 추가 ==

오늘 재밌는 기사를 2개 봐서 내용 추가합니다. ㅋㅋ


기사 1개는 저축은행 대출이 6년 전 저축은행들이 망한 이후 많이 줄었다가,

최근 3년 간 또 계속 증가하여 48조까지 올라왔다고 합니다..

이 말은 앞서 언급한 부동산을 위한 대출이 제2 금융권으로도 많이 옮겨갔다는 것을 말해주죠.

링크http://www.yonhapnews.co.kr/bulletin/2017/10/01/0200000000AKR20171001009700002.HTML?input=1195m


또 다른 기사 1개는 한 사람당 집을 보유하고 있는 개수와 소득 수준의 관계를 보여주는 기사입니다.

집을 1개 가지고 있는 대다수 사람과 집을 10개 가지고 있는 몇몇 사람의 소득수준이 비슷하다는 통계네요.

이는 갭투자를 통한 투기에 가까운 사례로 보여집니다. 

그리고 3채 이상의 집을 보유하면 투기로 보자는 의견이 대세네요 ㅎㅎ

앞으로 정부의 제재에 대한 의지도 약간 보여지긴 합니다.

링크 : http://www.yonhapnews.co.kr/economy/2017/10/07/0301000000AKR20171007043700002.HTML?template=7255



나만의 결론

개인적인 생각으로 계속되는 인구 노령화와 1인 가구들이 늘어남에 따라 

역세권의 소형주택에 물이 계속 오를 것으로 생각됩니다.

지방보다는 당연히 서울과 수도권입니다.


하지만, 현재 필자의 상황은 LH 임대주택에 거주하고 있으므로,

거주형 부동산을 분양할 수가 없습니다. ㅜㅜ

돈이 많아서가 아니라, 대출을 통해서 임대업을 해보려는 것이지만 제한되는 것이지요.

그래서 토지에 대해 공부를 조금 해볼까 하네요 ^^;


아무튼, 투기가 아니더라도 부동산 임대업을 통해, 

또는 한 두채의 건물 매매를 통한 투기 아닌 투자는 바람직하다고 생각합니다.

위 2가지 경우는 떨어지는 금리로 인해, 대출 이자 대비 월세를 통한 수익

건물 매매를 통한 시세차익에 기반한 것입니다.


 

라즈베리파이 프로젝트 준비#3 - OS 설치 및 Putty SSH 접속

Posted by ironmask84
2017. 10. 4. 17:12 나는 프로그래머다!/Sensor


이제 라즈베리파이 구입해서 배송까지 받았으니,

http://ironmask.net/387 )

라즈베리파이를 작동시키고, 

프로젝트 진행을 위한 환경 세팅을 해보겠습니다.

라즈베리파이를 구동시키는 OS로 Raspbian 이라는 리눅스 기반 OS가 이미 제공되고 있습니다.

이 OS는 Debian이라는 PC용 리눅스 OS를 기반으로 만들어졌다고 합니다.

사실 라즈베리파이 3세대는 손바닥만한 펜티엄 PC라고 해도 될 정도의 성능을 갖췄습니다.

http://ironmask.net/349 )

CPU가 쿼드코어의 1.2Ghz 이며, RAM이 1GB에 블루투스, WIFI, 이더넷, USB 2.0 , HDMI 를 갖췄습니다.

최신 스마트폰의 성능에는 못미치지만, 쿼드코어 PC가 유행하기 시작한지가 8년전 쯤이었으니,

35달러에 이정도 성능이면 어마어마한 전자 하드웨어 보급의 결과입니다. ㅎㅎ

아무튼 Raspbian 이라는 OS를 다운받고,

설치는 라즈베리파이에 따로 저장장치가 없으므로,
micro SD 카드(16GB 적당)를 따로 구해서 설치를 하여야 합니다.

자, 그럼 본격적으로 설치를 해볼까요!! 


OS 설치 방법

우선, 1. Raspbian OS 이미지를 다운 받습니다.

https://www.raspberrypi.org/downloads/raspbian/


그리고 2. 다운받은 이미지 파일을 micro SD카드에 설치해주는 win32diskimager 라는 프로그램을 다운받습니다.

https://sourceforge.net/projects/win32diskimager/



3. Win32 Disk Imager를 설치하고, micro SD카드를 리더기를 통해 PC에 연결합니다.

4. Win32 Disk Imager를 실행해서, 이미지파일을 Write 해줍니다. (대략 7~8분 소요)


 대략 이런 모습으로 Write 되어갑니다 ㅎㅎ
 요즘 노트북엔 SD카드 슬롯이 대부분 내장되어 있죠! ㅎ 


위까지 과정을 거치면, 윈도우에서는 그냥 boot라는 저장장치로 잡히고, 용량도 60메가 정도만 보입니다.

하지만, 이는 OS간 파일시스템이 달라서 윈도우에서 안보이는 것 뿐이고,

라즈베리파이에서는 정상적으로 용량이 잡히니 걱정안하셔도 됩니다. ^^

그럼, 이제 제대로 OS가 설치 되었는지 확인을 해봐야 할텐데요 ㅋㅋ


노트북을 이용해서 Putty로 라즈베리파이에 SSH 접속하기

라즈베리파이는 이더넷 통신이 가능한 랜포트가 있으므로, 

PC와 이더넷 통신이 가능합니다.

데스크탑의 경우 보통 랜카드는 1개인데, 무선랜카드가 없으므로,

인터넷을 이용하려면 라즈베리파이는 공유기로 이더넷을 연결하는 것이 좋습니다.

이 때는 공유기가 알아서 라즈베리파이에 ip주소를 할당해주고, 

데스크탑에서 공유기 관리자로 접근해서 라즈베리파이의 ip를 확인할 수 있으므로 별 문제가 안됩니다만, 

노트북을 이용해서 외부로 나가서 라즈베리파이에 접근하려면 공유기를 사용하지 않기 때문에

라즈베리파이의 ip를 확인할 수 없으므로 라즈베리파이의 IP를 알아야 가능한데요.

그래서 라즈베리파이의 IP를 고정 IP로 변경을 해야 합니다.


1. 라즈베라파이 고정 IP 설정

OS 설치 과정을 거치면, micro SD카드가 boot라는 저장장치로 잡힙니다.

탐색기에서 들어가보면, cmdline.txt 라는 파일을 볼 수가 있는데,

이를 워드패드나 다른 편집기 tool로 열어줍니다. (메모장은 비추천)

마지막으로 가서 한 칸 띄고 ip = 192.168.137.100 으로 쓰고 저장합니다.

마지막 세자리는 꼭 100이 아니어도 되지만, 기본 사용 ip와 충돌날 수도 있으니, 

100으로 하시면, 안전합니다.


2. 노트북 고정 IP 설정

자, 이제 라즈베리파이의 ip주소를 고정으로 해뒀으니,

노트북의 ip도 고정으로 해줘야 접속이 됩니다. 

(이유는 이더넷 프로토콜에 관련한 것으로, 자세한 건 생략합니다.  )

노트북 ip 고정 방법은 윈도우7 기준으로

제어판 -> 네트워크 및 인터넷 -> 네트워크 및 공유센터 -> 어댑터설정 변경 -> 해당 로컬 영역 선택 -> 속성 -> IPv4 로 

들어가서 다음 IP 주소 사용으로 바꾼뒤, 192.168.137.101 로 설정해 줍시다!


3. SSH Server 활성화

그리고 2016년 11월 부터는 한 가지 추가로 설정을 해줘야 할 것이 있습니다.

Putty로 접속 시, 자꾸 connection refused 가 나서 검색을 열심히 해서 알아보니..

라즈비안(Raspbian)에서 2016년 11월 release판 부터 SSH Server가 Default로 비활성화 되어 있다고 하네요 ㅡ_ㅡ

역시 최신 버젼에는 항상 뭔가 기존 정보로는 문제가 발생하기 쉽상입니다.. ㅜㅜ

뭐 물론 보안상 비활성화가 Default인 것이 맞긴 합니다만, 첨에 좀 답답했습니다.. ㅋㅋ

하지만, 간단하게 SSH Server를 활성화 시키는 방법이 있습니다!!

HDMI나 Serial to USB 케이블을 통해 따로 접속하지 않아도 활성화 시킬 수 있습니다!!

OS 설치 과정을 거쳐서, micro SD카드가 boot라는 저장장치로 잡히는 공간에 ssh 라는 이름의 파일만 만들어 주면 됩니다.

파일 안에 내용은 아무 상관 없습니다. 그냥 편집프로그램 열어서 ssh 라는 이름으로 확장자를 꼭 없도록 해서 만들면 됩니다.


4. Putty로 SSH 접속~ ㅎㅎ

자, 이제 micro SD카드를 라즈베리파이에 장착시키고, 전원을 줍시다.

그리고 랜선으로 PC와 라즈베리파이를 연결하고, putty 프로그램을 실행시켜봅시다.

putty  프로그램은 무료 다운 가능합니다.

http://software.naver.com/software/summary.nhn?softwareId=MFS_116451  )

아래 그림과 같이 접속이 잘 되는 것을 볼 수 있습니다. ^^

Raspbian OS 기본  ID는 pi 이고,  password raspberry 입니다.


 캡쳐엔 192.168.0.100 인데 192.168.137.100 으로 하면 됩니다. 


 처음 라즈베리파이에 putty로 접속 시, 뜨는 화면인데 그냥 예 해주면 됩니다. ^^ 



드디어, 대망의 Putty로 SSH 접속 입니다!! :) 


PC와 공유기를 이용해서 Putty로 라즈베리파이에 SSH 접속하기

데스크탑이든 노트북이든 공유기가 있으면 이더넷 통신이 가능합니다. ^^

주의할 점은 공유기 뒤에 보통 1개의 WAN포트와 여러개의 LAN 포트가 있는데,

그 중에 WAN은 건물에 들어오는 인터넷선을 연결하는 용도이니 놔두시고,

LAN 포트에 꽂아주시면 됩니다.

라즈베리파이에 전원선을 꽂고, 이더넷선으로 공유기와 연결을 합니다. ㅎㅎ

제가 연결한 사진은 아래와 같습니다. iptime 유무선 공유기에요 : )


그리고 나서 웹브라우져에서 192.168.0.1 로 접속하시면 아래와 같이 iptime 공유기 관리화면이 출력됩니다.



 관리도구 메뉴를 선택해 줍시다. ^^ 


 관리도구 메뉴를 선택해 줍시다. ^^ 

자, ip가 확인이 되었으니, Putty 접속은 위에 나와있는 노트북과의 접속과 같은 방법으로

ip만 변경시킨 후에 접속하시면 됩니다. ^^


 

 라즈베리파이 프로젝트

라즈베리파이 프로젝트 실전#1 - LED 컨트롤
라즈베리파이 프로젝트 준비#4 - WIFI 설정
라즈베리파이 프로젝트 준비#3 - OS 설치 및 Putty SSH 접속
라즈베리파이 프로젝트 준비#2-1 - 구성품 리뷰

라즈베리파이 프로젝트 준비#2 - 구입 리뷰

라즈베리 파이 프로젝트 준비#1 - 스펙 리뷰
  




 

카카오 뱅크 체크카드 할인혜택 받기!!

Posted by ironmask84
2017. 10. 2. 21:50 재테크/깨알꿀팁


지난 달에 카카오 뱅크 체크카드를 발급 받았습니다. ^^

대출이율도 좋고, 할인혜택도 쏠쏠해서인지

카드 주문이 밀려서, 받는데 3주나 걸렸네요..ㅋ

( http://ironmask.net/378 )

원래, 주유할인 카드를 찾다가 정했는데,

막상 기름통이 작은 저의 차는 활용이 어렵네욤.. 아래 링크 참조 ㅜㅜ

( http://ironmask.net/382 )


그렇지만!!

카뱅 체크카드 혜택이 다양해서 이번달에 몇 개 혜택을 받았습니다.

간단한 정보이지만, 실증을 원하시는 분들을 위해

어떻게 혜택이 돌아오는지 보여드릴게요 ㅋㅋ


혜택 리뷰 BY 실물증거

1. 대형 마트 혜택 (5만원 이상 결제 시, 3000원 캐시백)



2. G마켓 혜택 (3만원 이상 결제 시, 3000원 캐시백)

아래 보시는 것 처럼 묶음 결제로도 된다는 점!!

장바구니에 2개 상품 담아놓고, 한 번에 결제했어요!!

꿀팁인 것 같아요 ㅎㅎ

   



3. YES24 혜택 (3만원 이상 결제 시, 3000원 캐시백)

YES머니로 할인 받어서 딱 30,200원 맞춰놓고 결제했습니다. ㅋㅋ

   


 

라즈베리파이 프로젝트 준비#2 - 구입 리뷰

Posted by ironmask84
2017. 10. 2. 20:38 나는 프로그래머다!/Sensor



라즈베리파이로 (Raspberry PI) 프로젝트를 스터디겸 진행보려고 

마음 먹은지가 어언 2달이 되었네요 ㅋㅋㅋ..

리뷰를 한 번 하고는 ( http://ironmask.net/349 )

미루고 미루다 조금 오래 걸렸습니다..

번 추석연휴 전에 구입 및 배송을 받기까지 해놓고,

연휴 때 기본 환경 세팅을 해보려는 심산입니다. ^^

가능하면, 이번 추석 연휴 동안

기본 환경세팅 편을 올려보겠습니다!!

구입 방법

구입처는 디바이스 마트 라는 곳을 추천 드립니다.

인지도도 있고, 여러 전자장치 부품들을 취급하네요.

http://www.devicemart.co.kr/

저는 가징 기본 세트인,
라즈베리파이 3세대 + 정식케이스 + 방열판 세트 으로 구입했습니다.
보드가격기 35달러라는데, 세트이고, 부가세 포함이라 52000원 정도 하네요.

저는 남는 SD카드가 있고, 마이크로5핀 어댑터(스마트폰 용)도 있거든요 ㅎㅎ

추가로 gpio핀 확장케이블과 브레드보드 세트를 구입했습니다.
가격은 6500원 입니다.

led, 저항 등을 이용해 기본 동작 테스트에 쓰면 좋을 것 같습니다.


라즈베리파이 실물


 라즈베리파이 3세대 + 정식케이스 + 방열판 세트 http://www.devicemart.co.kr/1311415


 gpio핀 확장케이블과 브레드보드 세트 ( http://www.devicemart.co.kr/1330569 



 LED, 저항, 버튼 (지인 통해서 얻었습니다.. 득템~~ ㅋㅋ) 


 

 라즈베리파이 프로젝트

라즈베리파이 프로젝트 실전#1 - LED 컨트롤
라즈베리파이 프로젝트 준비#4 - WIFI 설정
라즈베리파이 프로젝트 준비#3 - OS 설치 및 Putty SSH 접속
라즈베리파이 프로젝트 준비#2-1 - 구성품 리뷰

라즈베리파이 프로젝트 준비#2 - 구입 리뷰

라즈베리 파이 프로젝트 준비#1 - 스펙 리뷰
  




 

[서울/양재] 브라운 돈까스

Posted by ironmask84
2017. 9. 27. 22:54 생각과 일상/맛집


4번 째 맛집 포스팅 입니다 ^^

이번엔 서울 양재역 근처에 있는 '브라운 돈까스' 라는 가게인데요.

양재역 주변에 술집은 꽤 많은데 비해 음식점이 많아 보이지는 않았습니다.

그 와중에 오래된 돈까스 집을 하나 발견했어요 ㅎㅎ

1986년 부터라는데 30년이 넘은 전통이 있는 가게네요;;

몰랐는데, 몇몇 체인점도 있었네요 ㅎㅎ

90년대 한창 경양식 레스토랑이 유행했드랬죠~ 그땐 제법 고급 요리였는데..

이제는 일식 돈까스도 많이 들어오고 돈까스 자체가 많이 보급화 되었죠 ㅋㅋ

가게도 리모델링 된 것 같은데, 맛은 깔끔하니 괜찮았습니다.



내외부 사진


 메뉴는 심플하고, 가격도 적당합니다. 


 분위기가 까페와 바를 섞어놓은 것 같고, 약간 고풍스럽습니다. ㅋㅋ 

음식 사진


 피자오븐 돈까스 입니다. 밥은 계속 리필이 되요 ㅎㅎ 


 가장 기본 메뉴인 등심돈까스 입니다. 야채샐러드가 좀 부족한게 아쉽네요~ 



 돈까스도 괜찮았지만, 처음에 나오는 스프가 제일 기억에 남았네요 ㅋㅋ 
 심플해 보이지만, 다른 돈까스집 보다 맛이 좋아서 그런 느낌을 받은듯.. 


위치


 위치는 양제역 8번 출구에서 매우 가까워요 ㅎㅎ 


 

임베디드 리눅스 시스템 스터디

Posted by ironmask84
2017. 9. 26. 23:46 나는 프로그래머다!/Linux



HW를 동작시키는 SW 중에는


OS가 없는 펌웨어를 제외하고,


OS를 탑재시키는 경우에 리눅스를 많이 사용합니다.


C언어 기반이어서 HW 호환성(chip set)이 좋을 뿐아니라, 

오픈소스이기 때문에 로열티없이 사용도 가능하기 때문이죠 :)


하지만, 상용 OS가 아니기에 서비스 지원이 따로 없으므로...

개발자들에게 높은 수준의 개발능력을 요구합니다..

안좋게 말하면, 개발자들이 죽쑤게 된다는 것이죠 ㅜㅜ



저 또한 약 1년 전부터 실무에서 BSP 레벨 개발 업무를 맡게 될 것을 대비하여

리눅스에 대해서 공부를 하려고 했습니다.

http://ironmask.net/297 )


하지만, 개인적 사정으로 8개월 정도 텀이 생기게 되었고...

현재는 라즈베리파이로 개인 스터디를 해보려 하고 있습니다.. ㅋㅋ

http://ironmask.net/349 )


5년 전쯤에 Android Porting & Structure 이란 교육을 받은 적이 있습니다.

회사에서 Android 업무를 늦게나마 (2012년에 받았지만, 안드로이드는 2009년부터 이미 시작되어 왔기에..)

부랴부랴 받았을 때, 리눅스에 대해 잠깐 배운 기억이 있습니다.

Android 도 리눅스 커널을 OS를 사용하기 때문이죠 :)

이 때 교육은 5일짜리 였습니다.


5년 후인 이번주에 임베디드 리눅스 시스템이란 교육을 받고 있는데요.

이 교육도 5일짜리 입니다.

5일로는 방대한 내용의 교육입니다만, 

교육 받는 것도 감지덕지 하면서 최대한 배우려 애를 써봅니다. ㅋㅋ


짧은 지식이지만, 앞으로 계속 정리해가는 차원에서

글 몇개 씨리즈로 올려보겠습니다. ^^


임베디드 시스템 개념 정리 : http://ironmask.net/384







 

컴퓨터 시스템과 임베디드 시스템 개념

Posted by ironmask84
2017. 9. 25. 23:56 나는 프로그래머다!/기초 다지기




임베디드 시스템?

전자제품을 동작시키는 SW와 HW를 통틀어 임베디드 시스템이라고 합니다.

전자제품이란 여러분이 잘 아시는 것처럼, 

전기밥솥, 세탁기, 냉장고 와 같은 가전에서부터 휴대폰, 자동차, 비행기 등 

첨단 전자제품 까지 20세기부터 매우 빠르게 발전해오고 있습니다.

최근엔 아두이노, 라즈베리파이와 같이 간단하게 임베디드 시스템을 

Study 할 수 있는 HW가 보급화되고 있습니다.

저 또한, 요즘 4차산업혁명에 핵심 키워드 중 하나인 IoT관련 부서에서 

업무를 맡게되어 많은 관심을 가지고 있고, 

라즈베리파이 개인 Study도 해보려고 하고 있습니다. 

http://ironmask.net/349


컴퓨터 시스템?

컴퓨터 시스템이라고 하면, 말 그대로 컴퓨터를 이용한 시스템입니다.

일반적으로 기업이나 관공서에서 관리하는 전산실 서버에서부터

기상청과 같이 특수하게 대량의 데이터 분석이 필요한 경우 등 다양하게 구성될 수 있습니다.

그리고 임베디드 시스템 또한, 컴퓨터 시스템 중에 하나입니다.

임베디드 기준으로 컴퓨터 시스템에 포함되는 개념들은 이렇습니다.

* HW

-MicroProcessor (요즘 CPU)

A microprocessor is a computer processor that incorporates the functions of a computer's central processing unit (CPU) on a single integrated circuit (IC),[1] or at most a few integrated circuits.[2] The microprocessor is a multipurpose, programmable device that accepts digital data as input, processes it according to instructions stored in its memory, and provides results as output. Microprocessors contain both combinational logic and sequential digital logic. Microprocessors operate on numbers and symbols represented in the binary numeral system.

ex)STM32, atmega128


좀 더 상세한 내용은 아래를 참조 해주세요.

마이크로프로세서

- 작은 실리콘 칩 위에 트랜지스터를 수천 만 개 집적한 소자

- 마이크로는 매우 작은 크기, 프로세서는 처리기 혹은 CPU를 뜻하므로 마이크로프로세서는 “매우 작은 처리기”를 의미

- 인텔에서 intel 4004라는 최초의 마이크로프로세서 개발(1971년)

 

마이크로프로세서의 2가지 형태

CPU형 마이크로프로세서

- CPU 기능 대부분을 칩 하나에 집적하고, CPU형 마이크로프로세서를 중심으로 ROM, RAM, 입출력장치 등을 추가하여

마이크로컴퓨터를 구성할 수 있다.

단일 칩 마이크로컴퓨터

- 마이크로컴퓨터에 들어가는 모든 부품들을 하나의 반도체 칩에 집적한 것

연산용과 제어용으로 분류하며, 제어용 단일 칩 마이크로컴퓨터를 마이크로 컨트롤러 라고 하고 8051,AVR, PIC 등이 있다.

마이크로프로세서의 분류

​메모리 구성 에 따라

폰 노이만 구조

- 데이터 영역과 프로그램 영역의 물리적인 구분이 없고 버스 크기도 동일

- 데이터와 프로그램 코드를 동일하게 취급하므로 데이터도 프로그램 코드에 함께 들어감

ex) 일반 데스크톱 PC​

하버드 구조

- 프로그램 버스와 데이터 버스가 별도로 있는 것이 특징이며 동시에 액세스가 가능한 방식. 데이터 메모리가 레지스터 파일 형태로 통합 관리

- 레지스터와 메모리간에 상호전송이 필요 없게 되어 명령어 수를 줄이고, 속도를 빠르게 할 수 있음

- 데이터 영역과 프로그램 영역이 물리적으로 구분되어 있고 각 버스의 크기들이 서로 다를 수 있음

- 데이터와 명령어를 분리해서 처리

ex) 8051, PIC, AVR

CMOS 구조

- 소비전력이 매우 적으며, 전달 특성이 우수하고 동작 전압의 범위가 넓음

​명령어 구조 에 따라

CISC(Complex Instruction Set Computer) 구조

- 복합 명령어 셋 컴퓨터’라는 의미를 지니는 방식이며, 대표적으로 인텔의 x86계열 CPU와 펜티엄 4도 이 방식을 사용

- CPU가 처리할 수 있는 명령어를 모두 내장하므로 CPU의 구조가 매우 복잡

- CISC 방식의 장점은 뛰어난 호환성에 있음

- 개인용 컴퓨터인 PC에 많이 사용. 8051은 CISC 방식

RISC(Reduced Instruction Set Computer) 구조

- 축소 명령어 셋 컴퓨터’라는 의미를 지니는 방식이며, 주로 대형컴퓨터나 워크스테이션에 사용

- CPU에 내장된 명령어를 줄여 보다 빠른 처리속도가 특징

- CPU의 구조를 보다 단순화

- 컴파일러에게 많은 짐을(연산과정)을 넘김으로써 CPU 내부 구조를 단순하게 제작

- 복잡한 명령어는 단순한 명령어를 조합해서 사용

프로그램이나 알고리즘을 신속하게 실행하기 위한 목적의 마이크로프로세서는 다양한 입출력 장치를 이용하여 자원을 관리하고 운영하는 장치이다.

마이크로컴퓨터는 마이크로와 컴퓨터가 결합된 용어로 작은 컴퓨터 시스템을 말한다.

마이크로컴퓨터는 작은 휴대용 시스템부터 휴대용 노트북, 스마트폰등 성능에 따라 여러 가지 기기에 이용되고 있다.



-MircoController (CPU를 탑재한 단일칩 형태의 컴퓨터)

A microcontroller is a small computer (SoC) on a single integrated circuit containing a processor core, memory, and programmable input/output peripherals. Program memory in the form of Ferroelectric RAM, NOR flash or OTP ROM is also often included on chip, as well as a typically small amount of RAM. Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in personal computers or other general purpose applications consisting of various discrete chips..

Microcontrollers are used in automatically controlled products and devices, such as automobile engine control systems, implantable medical devices, remote controls, office machines, appliances, power tools, toys and other embedded systems. By reducing the size and cost compared to a design that uses a separate microprocessor, memory, and input/output devices, microcontrollers make it economical to digitally control even more devices and processes. Mixed signal microcontrollers are common, integrating analog components needed to control non-digital electronic systems.

MCU를 통합시킨것 시킨 것, SOC(System On Chip)


-MicroComputer (일반적인 PC)

A microcomputer is a small, relatively inexpensive computer with a microprocessor as its central processing unit (CPU).[2] It includes a microprocessor, memory, and input/output (I/O) facilities. Microcomputers became popular in the 1970s and 80s with the advent of increasingly powerful microprocessors. The predecessors to these computers, mainframes and minicomputers, were comparatively much larger and more expensive (though indeed present-day mainframes such as the IBM System z machines use one or more custom microprocessors as their CPUs). Many microcomputers (when equipped with a keyboard and screen for input and output) are also personal computers (in the generic sense).[3]

기타 외부 장치( I/O핀 등)을 모듈화 시킨 것

ex)SBC(single Board Computer)


* SW

os를 사용 안한 하위제어

- 펌웨어 firmware

하드웨어와 소프트웨어 중간 http://blog.naver.com/kangusreport/220628959921

In electronic systems and computing, firmware[a] is a type of software that provides control, monitoring and data manipulation of engineered products and systems. Typical examples of devices containing firmware are embedded systems (such as traffic lights, consumer appliances, and digital watches), computers, computer peripherals, mobile phones, and digital cameras. The firmware contained in these devices provides the low-level control program for the device. As of 2013, most firmware can be updated.[2]


os를 사용한 상위제어
- platform 

Computing platform, a framework on which applications may be run

The term computing platform can refer to different abstraction levels, including a certain hardware architecture, an operating system (OS), and runtime libraries.[1] In total it can be said to be the stage on which computer programs can run.


-커널 Kernel(핵심) https://en.wikipedia.org/wiki/Kernel_(operating_system)
예)Linux, Ubuntu(Ubuntu (operating system), a Linux distribution)
Kernel (operating system), the central component of most operating systems(OS)


In computing, the kernel is a computer program that manages input/output requests from software, and translates them into data processing instructions for the central processing unit and other electronic components of a computer. The kernel is a fundamental part of a modern computer's operating system.[1]


To perform useful functions, processes need access to the peripherals connected to the computer, which are controlled by the kernel through device drivers. A device driver is a computer program that enables the operating system to interact with a hardware device.


리눅스는 커널이라는 말이 맞지만, 인터페이스(쉘), 어플리케이션이 있어야 사용가능 하므로 보통
리눅스 = "커널" + "인터페이스" + "어플리케이션"이라고 함
커널은 메모리를 관리하고 디스크를 관리하고, 그 밖으 모든 컴퓨터 자원을 관리하는 메인 프로세스입니다.
이 커널에 명령을 넣어줄 수 있는것이 인터페이스 입니다. 흔히들 쉘 이라고 불리웁니다. 즉 커널 자체만
으로는 입력이 없기 때문에 동작이 의미가 없고 사용자로부터 인터페이스를 통해 입력값을 주면 커널은
거기에대한 동작을 하거나 결과값을 내줍니다. 어플리케이션는 이러한 일련의 동작을 뭉터기로 모아서
커널에 명령을 전달하는 수단이 되겠습니다.

http://m.kin.naver.com/mobile/qna/detail.nhn?d1id=1&dirId=10302&docId=189452439&qb=7Jq07JiB7LK07KCc7JmAIOy7pOuEkCDssKjsnbTsoJA=&enc=utf8&section=kin&rank=1&search_sort=0&spq=0

Framework http://cafe.naver.com/openrt/6527

예)ROS로봇소프트웨어 개발하는데 필요한 것을 지원해주는 것
   GUI 기반의 소프트웨어 개발에 필요한 도구들을 제공 

Framework들은 복잡하게 구성이 되어 있는 로봇의 소프트웨어 요소들을 기반으로, 다른 어떠한 로봇 소프트웨어을 개발하고 연동시키는데 필요한 기능들을 제공합니다. 따라서, 본인이 로봇의 소프트웨어를 처음부터 끝까지 모두 만들 것이 아니라면, 이러한Framework들을 이용하는 것이 현명하며, 또한 Team-work을 통하여 로봇의 소프트웨어를 개발할때도, 상호연동의 편의성을 위하여 이러한 Framework를 사용하는 것이 좋습니다.

ROS 가 대표적인 예 입니다. ROS 는 ROS 의 각 요소(노드) 들이, 원활하게 데이터를 주고 받을 수 있는 메커니즘을 제공함과 동시에, 여러 명령어, 개발된 소프트웨어를 빌드할 수 있는 도구, 시뮬레이터와 같은 유용한 도구들을 제공하죠. 이렇게, 뭔가 통합적으로 제공되는것을 통틀어 프래임워크(Framework) 라고 합니다. 다음에는, 이러한 로봇 개발을 위한 프래임 워크에 대하여 살펴 보기로 하죠
좀 귀찮더라도, 로봇의 소프트웨어쪽을 하시고 싶으신 분들은, 반드시 framework기반으로 공부를 하시는 것을 권장 드립니다


Software framework, a reusable set of libraries or classes for a software system (or subsystem)
Application framework, used to implement the standard structure of an application for a specific operating system


- 미들웨어 Middleware 

소프트웨어의 중간 http://cafe.naver.com/openrt/6512 

운영체제와 응용프로그램 사이의 i/O나 통신

예) ROS


Middleware is computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".[1] Middleware makes it easier for software developers to perform communication and input/output, so they can focus on the specific purpose of their application. Middleware is the software that connects software components or enterprise applications. Middleware is the software layer that lies between the operating system and the applications on each side of a distributed computer network. Typically, it supports complex, distributed business software applications.


- 프레임워크=미들웨어,런타임,빌드도구 등

-applications

Application software, computer software designed to help the user to perform specific tasks

An application program (app or application for short) is a computer program designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user. Examples of an application include a word processor, a spreadsheet, an accounting application, a web browser, a media player, an aeronautical flight simulator, a console game or a photo editor. The collective noun application software refers to all applications collectively.[1] This contrasts with system software, which is mainly involved with running the computer.

OS중 핵심구성요소 Kernel - FrameWork 중 Middleware  - applications

이 전체를 플랫폼이라고 함!


출처
http://kangusreport.blog.me/220629130686
http://blog.naver.com/dustmd0815/220807532921


'나는 프로그래머다! > 기초 다지기' 카테고리의 다른 글

유니코드 이해 하기  (0) 2017.09.19
디자인패턴  (0) 2017.04.01
윈도우 환경에서의 gcc  (0) 2016.10.31
SW 프로그램과 개발환경(리눅스)  (0) 2016.10.31