본문 바로가기
728x90
반응형

전체 글648

gdb 디버거 gdb 주요기능 정지점(breakpoint)설정 한 줄씩 실행 변수 접근 및 수정 함수 탐색 추적 gdb를 사용하기 위해 컴파일 시 -g옵션을 사용해야 함. $ gcc -g -o longest longest.c gdb 실행 $ gdb [실행파일] (소스 파일이 아닌 ./a.out 같은 실행파일 이어야함!) gdb 기능 소스보기: l(list) b [n]: n번 줄에 정지점을 설정 p [변수명]: 해당 변수 값 프린트 run : 현재의 인수를 사용하여 프로그램을 실행 run : 새로운 를 가지고 프로그램을 실행 continue: 현재 위치에서 프로그램을 계속 실행(약자 c) n: 한 줄씩 실행시킴(next) step: 한 줄씩 실행시킴. 함수 포함시 함수 내부로 들어가서 한 줄씩 실행함 break : 라인.. 2022. 10. 14.
아두이노와 기타등등 알아보기 펌웨어: 하드웨어의 제어와 구동을 담당하는 운영체제 아두이노 ATmega328 마이크로컨트롤러 input voltage: 7~12V 14개의 Digital IO Pins(0~13번까지 총 14개, PWM지원 핀은 3,5,6,9,10,11) 6개의 analog pins(A0~A5) 32KB 플래시메모리 13번핀 LED, Power LED 존재 전압: 전위가 높은 쪽과 낮은 쪽의 차이. 1쿨롱의 전하가 갖고있는 에너지 전류: 1초당 1쿨롱의 전하가 단위 면적을 통과했을 떄를 1A로 정의. 전하의 흐름 저항: 전류의 흐름을 방해하는 정도 브레드보드: 2.시리얼 통신 UART(Universal Asynchronous Receiver/Transmitter) 병렬 데이터를 직렬 방식으로 전환하여 데이터를 전송하는 .. 2022. 10. 14.
4장 - 연결리스트를 이용한 스택과 큐 배열과 연결 리스트의 비교 저장 방식의 차이 배열: 메모리의 인접한 곳에 저장 연결 리스트: 각 노드들은 메모리의 여러 곳에 나누어 저장되고, link포인터를 이용하여 다음 노드의 주소를 기억함 메모리 사용 측면 저장될 데이터의 수를 안다면 배열이 효과적.(연결 리스트는 data 뿐 아니라 link포인터가 필요) 데이터 수를 모를 경우, 새로 데이터가 입력될 때마다 malloc 실행 후 연결하면 되는 연결 리스트가 유리함. 정렬된 데이터의 유지 배열: 데이터가 추가될 때 기존 데이터의 위치를 변경해야 할 수 있음, 이진 검색 가능 연결 리스트: 데이터가 추가되더라도 기존 데이터의 위치 변경은 발생하지 않음. 이진 검색 불가능 배열을 이용한 스택과 큐의 구현 방법의 문제점으로 메모리 낭비, stack fu.. 2022. 10. 14.
Digital TransMission(2) - Ananlog data to digital data conversion 저번 시간에는 Line coding: digital data -> digital signal 변환 방법을 배웠다. 이번시간에 배울 내용은 analog data -> digital data 변환 방법이다. PCM (Pulse Code Modulation) 아날로그 데이터를 디지털 데이터로 바꾸는 방법 PCM은 3단계로 나타낼 수 있다. 1. Sampling 2. Quantization 3. Binary encoding 아날로그 데이터의 특징 두가지가 있는데, PCM의 step을 따라가면 이 특징들을 디지털데이터의 특징으로 바꿀 수 있다 1. 연속적인 값을 가짐 2022. 10. 12.
함지산 등산의 추억(순대국밥) 날씨 좋은 가을날. 이럴 땐 등산을 가보자. 하늘에 웬 거미가..;; 요즘 거미가 정말 많이 보인다. 대왕거미들 너무 무서워잉~ 산 입구에 들어서면 이렇게 운암지가 보인다. 물에 자라가 있다. 오늘은 운수가 좋으려나 열심히 등산하는중... 경치 좋고~ 저 멀리 대구공항도 보인다 나는 우리동네랑 대구공항이랑 정말 멀다고 생각했는데 이렇게 한눈에 보일정도라는게 너무너무너무 신기했다. -하산- 집가는길에 순대국밥 먹음.. 진짜 말이필요없는 꿀맛 하루의 반은 웃자~ 복돼지 2022. 10. 11.
투썸플레이스 오레오 아이스박스 만들기 레시피 투썸가면 시켜먹는 국룰 디저트 오레오 아이스박스... 참 맛난 음식이지만 나같은 거렁뱅이는 맘놓고 사먹기 힘들것이다. 한번 직접 만들어 보자. 재료: 오레오 200g(마트에 파는거 2개) 생크림 100그램정도 설탕 세숟갈 크림치즈 100그램정도 난 집에 생크림이랑 크림치즈가 있어서 만들긴 했는데.. 이걸 홈플러스에서 다 사서 만들려면 꽤나 비쌀것같다.. 사실 홈베이킹의 의의는 돈 절약이 아니다 내 정성을 담을 객체를 생성하는것이다~ 오레오 선수입장. 홈플러스 갔더니 하나에 천원에 팔아서 총 2천원에 사왔다. 초코맛이 들어가면 더 맛있지 않을까? 하는 생각에 하나는 초코맛으로 사봤다. 우선 크림치즈를 푼 다음 오레오의 크림을 싹 긁어내서 다 투하한다. 다 넣었으면 생크림이랑 설탕 넣고 겁나 저어줌. 단단해.. 2022. 10. 11.
아이폰14 프로 딥 퍼플 실물 구경하기 친구가 아이폰14프로를 샀다는데~ 나도 새폰 보고싶어서 구경시켜달라고 함. 딥퍼플 의외로 고급지고 예쁜 색이다 보라색이 많이 안나는거같은데 그렇다고 보라색이 없는건 또 아닌 오묘한 색임 앞면 ㅎㄷㄷ 화면을 켜자마자 다이나믹 아일랜드가 띠링 하면서 잠겨있다는걸 표시해줌 너무 신기하고~ 뭔가 표시할 게 있으면 저기 알약이 넓어지면서 저 알약 안에 정보가 표시되는데~ 너무 간지잖아~ 부럽다~ 난 돈없어서 아이폰15나올때 생각해봐야겠다. -끝- 2022. 10. 11.
make 시스템 대규모 프로그램의 경우에는 헤더, 소스파일, 목적파일, 실행파일의 모든 관계를 기억하고 체계적으로 관리하는것이 필요함. make 시스템을 이용하여 효과적으로 작업. Makefile의 구성 형식 대상리스트: 의존리스트 (tab)명령리스트 예시) main: main.o copy.o gcc -o main main.o copy.o main.o: main.c copy.h gcc -c main.c copy.o: copy.c copy.h gcc -c copy.c make 실행 $ make 혹은 $ make main 여기서부터 다시 씀 파일이 많아지면 컴파일 하는데 시간도 오래걸리고, 파일 관리하기가 힘들어지는데, make 시스템을 이용하면 파일관리, 컴파일을 효과적으로 할 수 있다. $ vi Makefile 해서 m.. 2022. 10. 11.
객체와 클래스 생성자 생성자가 선언되지 않은 경우에는 기본 생성자를 컴파일러가 자동으로 만들어 줌. (하나라도 생성자가 선언된 경우는 기본생성자가 생기지않음) this 클래스 내에서 메소드 작성할 때 인자로 받는 변수이름과 클래스 멤버변수의 변수명이 같을 때 멤버변수를 this.변수명 으로 써서 구별함. 소멸자 자바에서는 가비지컬렉터가 있어 소멸자가 없음 this() 같은 클래스 내의 다른 생성자 호출 class Box{ int width; int height; int depth; public Box(){ width=1; height=1; depth=1; } public Box(int w){ width = w; height =1; depth = 1;} public Box(int w, int h, int d){ widt.. 2022. 10. 11.
4-2 LED 저번시간에 FND 하나짜리를 컨트롤했었다. 이번에는 4개짜리 FND를 컨트롤 해보자. 1개짜리 FND는 9개 핀, 74595 IC를 이용했을 때 5개의 핀이 필요하다. 이번엔 4개짜리니까 36개 혹은 20개가 필요할까? 그건 아니다~ 4개의 digit이 있는데, 한 번에 하나의 digit만 불을 켤 것이다. 1번digit 켰다가 끄고 2번digit 켰다가 끄고 . ... 4번digit 켰다가 끄는 과정을 매우 빠르게 반복하면 인간의 눈으로는 1,2,3,4번 digit이 모두 켜져있는것 처럼 보인다.(잔상효과 때문) 4digit FND를 사용하여 0000, 1111, 2222 . . .9999 출력하기. LED A~G를 2~9번 핀에 연결한다.(330옴 저항과 함께 연결한다) 그리고 몇 번째 digit을 .. 2022. 10. 10.
3장 클래스,캡슐화, 다형성 class는 데이터 + 메소드의 수행까지 포함됨 main() 메소드는 JAP에 반드시 있어야 하는 특수한 메소드. 프로그램 실행 시 자동으로 실행되는 메소드. main()메소드는 String의 array를 argument로 받는다 (명령행 매개변수) args[0] 요런식 (String이기때문에 필요 시 변환해야함. ex: Integer.parseInt(args[0])) 캡슐화 Object를 작성할 때 숨겨야 하는 정보(private)와 공개해야 하는 정보(public)를 구분하여 작성. Object의 사용자는 기능만 알고 사용하며 어떻게 처리되는지는 은폐된다 (캡슐화) 캡슐화의 장점: object에 포함된 정보의 손상과 오용을 막을 수 있다. object 조작 방법이 바뀌어도 사용 방법은 바뀌지 않는다... 2022. 10. 9.
더포 (베트남음식),와플대학 오랜만에 저녁약속을 잡았는데 뭘 먹을까 고민하다가 평소에 잘 안먹는 동남아음식을 먹으러 감~ 칠곡3지구에있는 더포. 베트남음식점이라고 함. 우리는 4명이서 4인세트메뉴A를 시켰음. (식사메뉴4개 + 요리1개 선택) 48000원 우리는 팟타이+ 볶음밥3개 + 라우가? 인가 뭔가 시킴(탕수육같은건데 이게 제일 인기 많다고 함) 라우가? 꿔바로우같은거 나왔다. 맛도 꿔바로우랑 비슷한데 꿔바로우 맛은 아니고 좀 담백하다고할까 맛있다. 세트메뉴로 먹으면 이게 대략 8천원정도인건데 나쁘지않다. 돼지고기 튀김이니까 이거 시켜드셈~ 옛날에 짜조 먹어본적 있는데 그것도 맛있음. 그건 메밀전병 느낌 인당 쌀국수국물 하나씩 주셨다. 국물이 진짜 맛있음~ 갈비탕국물같은데 진짜 밥말아먹고싶은 맛임. 이건 내가시킨 팟타이다. 좀.. 2022. 10. 9.
4장 - List 배열을 이용한 순서화 리스트: 임의의 위치에 대한 삽입과 삭제 연산이 곤란. 가변 길이의 순서화 리스트 지원 불가. 연결 리스트를 이용한 순서화 리스트: 리스트는 노드들로 구성, 각 노드는 데이터와 링크로 구성됨. 링크는 리스트의 다음 노드를 가리킴. (마지막 노드의 링크는 NULL) 단일 연결 리스트(Singly Linked Lists) 각 노드들은 메모리의 인접한 곳에 위치하지 않는다. 각 노드의 주소는 프로그램 실행시 매번 다를 수 있다. 리스트의 이름 = 첫 번째 노드의 주소가 된다. 배열에 비해) 삽입과 삭제시 기존 노드들의 위치를 변경할 필요가 없다 배열에 비해) 링크 필드를 위한 추가적인 메모리 공간이 필요하다 연결 리스트의 구현(C) struct node{ int data; struct n.. 2022. 10. 9.
3장 - C프로그래밍 환경 문서 편집: vi편집기 vi의 동작모드 명령모드: (ESC,ENTER) 커서이동,페이지이동,글자삭제,줄 삭제 등 입력모드: i,I,a,A,o,O 마지막행 모드: (/,?,:) 검색, 저장, 바꾸기,줄 이동 등 저장 및 종료명령 :w [파일명] : 저장, 파일명을 지정할 시 지정한 파일명으로 저장 :q! 저장하지 않고 종료 :wq! 저장하고 종료 ZZ 저장하고 종료 내용 삭제 및 취소 x 문자삭제 D 커서 위치부터 줄 끝까지 삭제 u 방금 수행한 명령 취소 dd 현재 줄 잘라내기 복사, 잘라내기, 붙이기 yy 현재 행 복사 p 붙여넣기 범위지정 방법 % 모든 줄 1,$ 첫 줄에서 마지막 줄까지 .,$ 현재 줄에서 마지막 줄까지 10,20 뭐 요런식.. 검색 기능 /문자열 : 현재 위치부터 파일의 아래 방향.. 2022. 10. 7.
홈플러스 탐방의 추억(새우강정, 초밥) 오늘도 도서관에 갔다. 실컷 할거 다하고 집가는 中 아침에 운동도하고 점심부터 공부도 했으니까 꽤나 알찬 하루를 보낸 듯ㅋ (사실 알맹이는 없음) 아무튼 알찬 하루를 보냈으니 홈플러스 탐방을 가기로 함 내 삶의 낙 홈플러스 탐방 할인딱지 붙은거 구경하는게 제일 재밌고 식품코너 보는게 그다음으로 재밌음 빵코너는 먹고싶었는데 몸에 안좋을거 같아서 아이쇼핑만 함 내가 두번째로 좋아하는 식품코너 볼때마다 뭐 하나 사고싶은데 같이먹을사람이 없어서 못 샀음 오늘은 그냥 사보고싶어서 새우강정 한번 사봄(갑자기 먹는거에 돈아끼는건 너무 비참하다는 생각이 들어서) 새우강정만으로는 밥이 안될거같아서 초밥코너에서 몇개 주워옴ㅋㅋ 두개 해서 21900원인가 했던거 같음.. 새우 강정은 집 도착하자마자 너무 배고파서 한개 먼저.. 2022. 10. 7.
2장 - 리눅스 사용 기본 명령어 date hostname: 호스트 이름 확인 uname: 운영체제 확인 whoami: 사용자 정보 확인 whatis 명령어 : 명렁어에 대한 간단한 설명 2.2 파일 및 디렉토리 파일의 종류 일반 파일 디렉토리 파일: 디렉토리 파일의 내용은 디렉토리가 가지고있는 파일,디렉토리인가봄 특수 파일: 물리적인 장치에 대한 내부적인 표현(프린터 출력 -> 프린터 파일에 쓰기 연산 수행) 디렉토리 계층구조 리눅스 디렉토리는 루트로부터 시작, Tree형태의 계층구조를 이룬다. 디렉토리 관련 명령 pwd cd which 명령어: 명령어의 절대경로를 보여준다. mkdir 디렉토리 mkdir -p 디렉토리: 필요한 경우 중간 디렉토리를 자동으로 만들어준다. mkdir ~p ~/dest/dir1 => dest디.. 2022. 10. 7.
1장 - 유닉스 리눅스 소개 유닉스 운영체제 구조 하드웨어)커널)쉘)유틸리티 파일시스템) 커널 하드웨어를 운영 관리. 프로세스, 메모리, 파일, 주변장치, 통신 등을 관리하는 서비스 제공 -프로세스 관리: 여러 프로그램이 실행될 수 있는 환경 제공. CPU 스케줄링을 통해 여러 프로세스들이 동시에 수행되도록 함 -메모리 관리: 메인 메모리가 효과적으로 사용될 수 있도록 관리 -주변장치 관리: 모니터,키보드,마우스와 같은 장치를 사용할 수 있도록 관리 쉘 -사용자와 커널 사이의 중간자 역할 담당(사용자 인터페이스) -명령어 처리: 사용자가 입력한 명령을 이해하여 실행. (명령어 해석기) 쉘의 종류: 본쉘(sh), C쉘(csh), 콘쉘(ksh), 배시쉘(bash) 파일 시스템 및 유틸리티 유틸리티/명령어: 사용자가 사용하는 여러 응용 .. 2022. 10. 7.
Digital Transmission (1) 저번 시간에 Data, Signal을 알아봤다 데이터는 아날로그,디지털로 나눠지고 시그널도 아날로그,디지털로 나눌 수 있다 그러면 데이터를 시그널로 전송하는 방법은 Digital data -> Digital Signal Digital data -> Analog Signal Analog data -> Digital Signal Analog data -> Analog Signal 네 가지 방법이 있을거 같다. 이번 시간에는 Digital data -> Digital Signal에 대해 알아보자. (참고로 Digital - Digital은 유선 랜wired LAN 통신에서 사용한다고 함) Line Coding 회선 부호화 0과1의 디지털 데이터를 -> 0과1의 디지털 시그널로 변환하기. 예를들면 디지털 데이터.. 2022. 10. 7.
4장 - LED LED (Light Emitting Diode) 기존의 형광등보다 효율이 좋다. Anode(양극), Cathode(음극) 구분이 있으며 보통 다리가 긴 쪽이 양극임. 회로 연결 시 저항을 연결하지 않으면 과전류가 흘러 회로가 탈 수 있음 LED를 켜고/끄는 동작을 하기 위한 함수 digitalWrite(핀번호,HIGH/LOW) : 켜고 끄는 동작만 가능하며, 이 함수를 쓰기 위해선 pinMode(핀번호,OUTPUT) 세팅을 해줘야함 LED 밝기 조절(Dimming) 1. 전류 양을 조절, 가변저항을 사용하여 저항값을 낮춰주는 방법 2. PWM(Pulse Width Modulation) 방법: LED에서 HIGH - LOW를 매우 빠르게 스위칭 하면서 빛의 세기를 조절함. (아두이노에서 PWM을 지원하는 .. 2022. 10. 6.
3장 - 수식 계산(Evaluation of Expressions) Precedence : 연산자들 간의 우선 순위(*연산이 +연산보다 우선순위 높음) Associativity: 동일한 우선순위를 갖는 연산자들간의 실행 순서 (ex: +,-,*,/ - >left to right) 중위 표기법(Infix notation) : 피연산자들 사이에 연산자가 위치함. 사람이 쓰는 방식. 계산 과정이 복잡하다 후위 표기법(Postfix notation) : 피연산자들 다음에 연산자가 위치. 괄호가 필요 없고 한번의 스캔으로 수식 계산 가능 중위표기법 3+4*2 ==> 후위표기법 342*+ (a/(b - c + d) ) * (e - a ) * c ==> abc-d+/ea-*c* Postfix 수식의 계산 앞에서부터 차례대로 피연산자(숫자)는 스택에 저장, 연산자의 경우 스택에서 숫자.. 2022. 10. 6.
728x90
반응형