본문 바로가기

전체 글

(109)
비트 연산자 보호되어 있는 글입니다.
scanf(%d\n, &a)가 틀린 이유 보호되어 있는 글입니다.
고정 소수점과 부동 소수점 방식으로 소수 저장하기 정수와 같은 방법으로 실수를 한번 저장한다고 가정해보자. 자 그러면 일단은 첫 번째 비트는 부호를 저장하는데 이때 양수면 0으로 음수면 1로 저장을 하게 된다.그리고 실수라는 건 정수부와 소수부로 나누어지는 수를 말한다.  그럼 정수부는 정수부대로 저장을 하고 소수부는 소수부대로 저장을 하게 되면 정확하게 10.31이라는 값을 저장할 수 있다. 그런데 예를 들어 10.000031 이런 실수를 저장한다고 한번 해 보자.  그러면 10은 정수를 저장하는 데는 전혀 무리가 없다. 그런데 소수부를 저장한다고 생각을 했을 때 소수부는 31을 저장하려고 봤더니 .000031이랑은 다르다. 즉 소수부는 각 소수부 한자리 씩 따로따로 값을 저장을 해 줘야 된다는 결론이 나오게 된다.  그러면 소수부 한자리에 들어갈 수..
qsort 함수 qsort 함수는 C 표준 라이브러리에 포함된 정렬 함수로서,  Quick sort의 'Quick' 이라는 단어에서도 알 수 있듯이 무언가를 빠르게 정렬할 수 있는 알고리즘인데 퀵 소트의 작동 원리는 마치 몇 개의 숫자 카드를 가지고 있고 이를 크기 순으로 정렬하는 것과 같다.  첫 번째 단계에서, 하나의 카드를 뽑아 기준으로 삼는다. (이것이 피벗 즉 기준점이다.)이제 나머지 카드를 기준 카드와 비교한다. 더 작은 카드는 왼쪽에, 더 큰 카드는 오른쪽에 놓는다. 왼쪽과 오른쪽에 있는 카드들 역시 같은 방법으로 다시 정렬하는데, 이 과정을 계속 반복하면, 모든 카드가 크기 순서대로 정렬된다. qsort 함수의 선언: qsort 함수는 헤더 파일에 선언되어 있고 함수 원형은 다음과 같다.void qsor..
Arduiono와 Python을 이용한 온습도 데이터 Slack 연동 C언어 토이 프로젝트를 구상하던 중, 기록적인 더위가 이어지면서 동료들이 온습도계가 없어도 실시간으로 온습도 정보를 쉽게 확인할 수 있으면 좋겠다는 생각이 들었다. 이에 온습도 정보를 사내 Slack 채널에 자동으로 전송하는 Arduino 온습도 키트를 만들어보기로 했다. 관련된 자료가 많지 않아 직접 방법을 찾아 해결해 나가면서 프로젝트를 완성할 수 있었다. 프로젝트는 Arduino를 이용해 실시간으로 환경 데이터를 측정하고, 시리얼 통신을 통해 컴퓨터로 전송한 후, Python 스크립트를 활용해 Slack Webhook을 통해 데이터를 전달하는 방식으로 진행되었다. 여기서는 Arduino 온습도계를 구축한 상태에서, Python 라이브러리 설치부터 Slack 연동까지의 과정을 단계별로 설명해 보았다...
파이썬 객체 프로그래밍 파이썬 클래스 예제를 하나씩 해석해보고 파이썬에서 객체 지향 프로그래밍(Object-Oriented Programming, OOP)이 어떻게 코드로 구현되는지 알아보도록 하겠다.  아래 예시 코드에서 2개의 축구팀과 축구팀 선수들의 정보를 전체 코드로 짜보았다. class Player: def __init__(self, name, team): self.name = name self.xp = 1500 self.team = team def introduce(self): print(f"Hello, my name is {self.name} and I play for {self.team}")class Team: def __init__(self, team_name): self.tea..
파이썬으로 브라우저 조작하기 (Playwright) Playwright는 Microsoft에서 개발한 오픈 소스 자동화 도구로, 다양한 브라우저를 제어할 수 있게 해주는 테스트 도구인데, 이 도구를 사용하면 실제 유저처럼 브라우저를 조작할 수 있다. Playwright 설치 방법Pyhon을 컴퓨터에 설치한 환경에서 Playwright를 설치하는 방법이다.  https://playwright.dev/docs/intro#installing-playwright Installation | PlaywrightIntroductionplaywright.dev설치 방법터미널 열기기존의 터미널이나 콘솔 창을 모두 닫고 새로운 터미널 창을 연다.Playwright와 BeautifulSoup 설치Playwright와 BeautifulSoup4를 설치하기 위해 다음 명령어를 ..
파이썬 상속 (Inheritance) 이번 블로그에서는 상속을 통해 코드문을 반복해서 작성하지 않아도 되는 재사용성의 유용함과 객체지향 프로그램밍의 기본 개념을 이해할 수 있도록,  파이썬의 상속을 활용하여 간단한 라멘 주문 시스템을 만들어보겠다. 객체지향 프로그래밍은 컴퓨터 프로그램을 만들 때 사용되는 방법 중 하나인데, 이 방법은 우리가 실제 세상을 바라보는 방식과 비슷하게 프로그램을 만들게 해준다. 예를 들어, 라면가게에서 라면을 시켜먹는다고  할 때, 라면은 매운라면, 달걀을 얹은 라면, 꼬들꼬들한 라면 등 여러가지 종류가 있지만 이 모두 "라면" 이라는 큰 그룹에 속해있다.  그리고 각 라면은 각기 다양한 특징을 가지고 있는데, 이러한 특성과 기능을 가진 하나의 라면을 '객체'라고 한다. 이렇게 프로그램을 만들면, 여러 종류의 라면..