컴퓨터에서 소수는 어떻게 계산할 수 있을까요? 컴퓨터는 숫자를 이진법으로 표현하기 때문에 먼저 10진법의 소수를 이진법으로 변환한 뒤 연산을 해야 합니다. 이 과정에서 대부분의 소수는 오차가 발생하게 되는데요. 왜냐하면 십진법의 소수를 2의 음의 제곱으로 이진법으로 변환해주어야 하는데 많은 소수들이 완벽하게 변환될 수 없기 때문입니다. 무한소수가 되어버리는 경우들이 상당히 많습니다. 또한 무한소수는 변수에 저장될 수 없습니다. 메모리의 크기에 한계가 있기 때문입니다. 그래서 근사값으로 소수를 저장합니다. 메모리가 허용하는 범위 내에서 소수를 최대한 저장하고 끝의 자리에서 반올림을 해서 저장하는 것입니다. 이 과정에서도 불가피하게 오차가 발생합니다. 예를 들자면 0.1은 이진수로 정확히 표현되지 않아서 근..
프로그래밍에서 유의미한 데이터가 생성되었다면 이것을 어딘가에 기록해두어야 합니다. DB를 사용하면 가장 좋겠지만 간단한 데이터들은 DB를 사용하지 않고 파일 형태(ex : txt 파일)로 어딘가에 저장해 뒀다가 사용할 수도 있겠죠. 이번 포스팅에서는 파이썬에서 파일 입출력 하는 방법에 대해 알아보도록 하겠습니다. ※ 파일 입출력이란 로컬 파일의 데이터를 읽거나 반대로 파일에 데이터를 쓰는 작업을 뜻하며 쉽게 메모장이나 바이너리 파일에 텍스트를 넣거나 불러오는 과정을 뜻한다고 생각하시면 되겠습니다. 파일 열기와 닫기(open, close) # 파일 열기 # 변수명 = open("파일경로/파일이름.txt", "모드") new_file = open("sample.txt", "w") # 파일 닫기 new_fil..
클래스의 주요 특징 중 하나는 바로 '상속'이 된다는 점입니다. 부모 클래스를 자식이 상속받으면 별도의 정의 없이 부모 클래스의 속성과 메서드를 자식 클래스에서 재사용할 수 있습니다. 이번 포스팅에서는 상속을 받으면 얻는 이점과 파이썬에서 클래스를 상속하는 방법에 대해 알아보도록 하겠습니다. 클래스 상속 시 얻는 이점들 코드 재사용 : 상속을 통해 부모 클래스의 속성과 메서드를 자식 클래스에서 그대로 재사용할 수 있습니다. 이를 통하여 중복된 코드를 피할 수 있고 소스코드 유지보수가 쉬워집니다. 확장성 : 자식 클래스는 부모 클래스의 기능을 확장하거나 변경할 수 있습니다. 자식 클래스에 새로운 메서드를 추가하거나 부모 클래스의 메서드를 오버라이드하여 원하는 동작을 재정의할 수 있습니다. 다형성 : 상속을..
객체지향 언어들의 특징은 클래스를 사용할 수 있다는 것입니다. 클래스는 객체 지향 프로그래밍(Object-Oriented Programming, OOP)의 핵심 개념으로, 코드를 구조화, 모듈화 하여 유지보수성을 향상하고 코드 재사용을 촉진하는 등 다양한 장점들을 제공합니다. 아마 클래스를 사용함에 따라 얻는 장점은 익히 알고 계시겠지만 모르는 분들을 위해서 간략한 예시를 들어보겠습니다. 쿠키 틀 -> 클래스(class) 쿠키 틀을 사용하여 만들어진 쿠키 -> 객체(object) 쿠키를 무한정 생성해야한다고 가정해 보겠습니다. 그럼 일일이 쿠키들을 만들어줘야 할까요? 수제 쿠키보다는 공장에서 찍어내는 쿠키가 훨씬 효율적이지 않을까요? 클래스를 사용하면 공장식으로 쿠키들을 찍어낼 수 있습니다. 쿠키 틀은 ..
새 핸드폰을 구매한 뒤 기존에 사용하던 중고 핸드폰은 어떻게 하시나요? 처리할 곳이 마땅치 않아서 그냥 서랍 안에 보관하시는 분들도 많던데, 이런 분들은 쿠팡의 중고폰 매입 서비스를 한번 이용해 보시는 건 어떨까요? 현재 쿠팡에서는 중고기기 매입 업체인 "주식회사 올리바"와 함께 휴대폰 중고기기 보상 판매 관련 서비스를 제공하고 있습니다. 쿠팡을 통해 새로운 휴대폰을 구매하였다면 기존에 사용하던 휴대폰은 반납하고 현금으로 보상해 주는 서비스입니다. 서랍 안에 넣어둘 바에는 적은 돈이라도 보상을 받는 것이 효율적인 선택이라고 생각합니다. 이번 포스팅에서 그 방법에 대해 알려드리도록 하겠습니다. ※ 이 서비스는 쿠팡에서 핸드폰을 신규로 구매한 유저만 사용이 가능합니다. 쿠팡 중고폰 보상판매 방법 1. 먼저 ..
저의 첫 폴더블폰은 갤럭시 z폴드3였습니다. 그때는 사전구매로 구매를 했었으니까. 약 2년을 넘게 사용하였는데요. 최근 들어 문제가 생겼습니다. 폴드를 펼쳤을 때 보이는 내부 디스플레이가 깨져버린 것입니다. 위의 사진을 보시면 가운데 접히는 부분에 검은색 선이 그어진 것을 보실 수 있습니다. 마치 물감 같기도 하네요. 당연히 내부 디스플레이는 터치도 먹지 않습니다. 어느 순간부터 내부 디스플레이에 주름이 많이 가서 기기에 뒤틀림이 있겠거니 싶었는데. 갑자기 이런 식으로 액정이 나가버리니 당혹스럽습니다. 삼성 AS센터를 가도 폴더블폰만 보이고. 확실히 아직까지 내구성은 부족하다고 생각됩니다. (수리비는 무려 60만 원이 청구되었습니다. ㅡㅡ;;) 어쨌든 폴더블폰에 내부 디스플레이 사용이 안된다니. 반쪽자리..
람다식(lambda expression) , 람다함수(lambda function)라는 용어를 들어보셨나요? 이 용어들은 익명 함수(anonymous function)를 표현하는 방법으로 익명 함수는 이름이 없는 함수를 뜻합니다. 즉, 함수를 정의할 때 함수의 이름을 명시적으로 지정하지 않고, 필요한 매개변수와 함수 본문만을 사용하여 함수를 생성하는 것을 의미합니다. 특정 기능을 수행하는 함수들을 한 줄로 작성이 가능하기 때문에 주로 간단한 작업을 수행하는 함수나 일회성으로 사용되는 함수를 정의할 때 사용합니다. 람다식 특징 람다식은 이름이 없는 익명 함수로 정의됩니다. 주로 한 줄로 간단한 연산을 수행하는 함수를 정의할 때 사용됩니다. 람다식은 변수에 할당하거나 다른 함수(map, filter, sor..
함수(function)는 어떠한 목적의 작업을 수행하기 위해 독립적으로 설계된 코드의 집합으로 정의할 수 있겠습니다. 이렇게 특정 코드를 묶어 하나의 함수로 사용하면 계속 재사용할 수 있기 때문에 반복적인 프로그래밍을 피할 수 있습니다. 또한 이렇게 함수를 통해 캡슐화를 진행하게 되면 유지보수 및 코드 가독성측면에서도 유리합니다. 파이썬에서는 def 라는 키워드로 함수를 정의할 수 있는데요. 이번 포스팅에서는 파이썬에서 함수를 사용하는 방법에 대해 알아보도록 하겠습니다. 파이썬 함수(function) 사용법 - 기초 함수 정의하기 #def 함수이름(매개변수1, 매개변수2, ...): # 함수 실행할 코드 # return 반환값 def add(a, b): result = a + b return result..
게임에서 보면 무작위 확률, 무작위 아이템과 같은 "무작위"라는 용어가 많이 나옵니다. 그렇다면 우리는 이 무작위를 어떻게 구현할 수 있을까요? 프로그래밍에서는 무작위, 즉 예측할 수 없는 값을 생성하는데 임의의 숫자값 난수를 사용합니다. 파이썬에서 난수를 생성하려면 파이썬의 기본 라이브러리인 random 모듈을 사용하는데요. random 모듈은 다양한 난수 생성 함수를 제공하여 다양한 유형의 난수를 생성할 수 있습니다. 파이썬 난수 사용법 특정 범위의 난수 생성 - randint(x, y) import random random_integer = random.randint(1, 10) print(random_integer) 결과 : 9 특정 범위에서 임의의 정수값을 추출하려면 randint() 메서드를 ..
한 남자와 여자가 사랑에 빠졌습니다. 사귀기로 한 날을 기점으로 100일 후, 3달 뒤, 1년 뒤를 기념일로 지정하기로 했습니다. 파이썬에서는 이런 상황에서 어떻게 날짜를 특정할 수 있을까요? 이번 포스팅에서는 특정 날짜를 기준으로 이전 날짜, 이후 날짜를 계산하는 방법에 대해서 알아보도록 하겠습니다. timedelta 객체 사용 (n일 뒤, n일 전 계산) from datetime import datetime, timedelta today = datetime.today() day1 = timedelta(days=100) # 100일 뒤 day2 = timedelta(days=30*2) # 2달 뒤 day3 = timedelta(days=365*3) # 3년 뒤 print("현재 날짜:", today) ..
프로그래밍을 하다 보면 두 개의 날짜를 비교해야 하는 경우들이 종종 생기게 됩니다. 파이썬에서는 주로 datetime 모듈을 사용하여 두 날짜를 비교하게 되는데요. 이번 포스팅에서는 두 개의 날짜를 비교하는 방법에 대해 알아보도록 하겠습니다. 파이썬에서 두 날짜를 비교하는 방법 오늘 날짜와 특정 날짜의 비교 from datetime import datetime today = datetime.today() d_day = datetime(2020, 1, 1) if today d_day: print("오늘은 지정된 날짜보다 이후입니다.") else: print("오늘과 지정된 날짜가 같습니다.") 아마 빈도수가 가장 높..
프로그래밍을 하다 보면 현재 날짜, 현재 시간을 출력해야 하는 경우들이 생기는데요. 예를 들자면 로그를 기록할 때 이 로그가 언제 출력되었을지 기록하기 위해 필요할 수도 있고 특정 로직이 정해진 날짜와 시간에 작업을 수행하도록 예약할 때 현재 날짜와 시간이 필요하는 경우도 있을 수 있겠죠. 이럴 때 현재 날짜와 현재 시간은 어떻게 구해야 할까요? 파이썬에서는 datetime 모듈을 사용하여 현재날짜, 현재시간을 구할 수 있습니다. 이번 포스팅에서 자세히 알아보도록 하겠습니다. 파이썬 현재 날짜, 현재 시간 출력하기 datetime 모듈 사용 import datetime # 현재 날짜와 시간을 가져옵니다. current = datetime.datetime.now() # 현재 날짜와 시간 출력 (년-월-일 ..
π = 3.141592653589793238462643383... 아시다시피 원의 지름에 대한 둘레의 비율을 나타내는 원주율 파이(pi)의 값은 순환하지 않는 무한소수(무리수)이기 때문에, 일반적으로는 계산에서는 3.14로 소수점 두 번째까지만 표기하여 사용합니다. 위와 같이 소수점의 자릿수를 지정해주어야 할 때 파이썬에서는 format 함수, round 함수, , f-string를 사용하여 소수점 자릿수를 지정해줄 수 있습니다. 이번 포스팅에서는 이 방법에 대해 알아보겠습니다. 파이썬 소수점 자릿수 지정하기 round() 함수 사용 num = 3.14159265 format_num = round(num, 2) # 소수점 둘째 자리까지 표기 print(format_num) 결과 : 3.14 format(..