분류 전체보기 24

제너레이터

오늘은 제너레이터에 대해 살펴보겠습니다. 그전에 이터러블과 이터레이터에 대해 설명하겠습니다. 이터러블과 이터레이터프로그래밍을 하다 보면 "이터러블(Iterable)"과 "이터레이터(Iterator)"라는 용어를 자주 접하게 됩니다. 특히 파이썬과 같은 고수준 언어에서는 이 개념들이 매우 중요합니다. 이번 글에서는 이 두 가지 개념에 대해 상세히 설명해보겠습니다. 이터러블이란 반복할수 있는 객체를 말합니다. 쉽게 말해, 한 요소씩 순차적으로 접근할 수 있는 객체를 말합니다. for 루프와 함께 사용될 수 있으며 파이썬에서 이터러블 객체에는 리스트, 튜플, 문자열, 딕셔너리 등이 있습니다.  이터레이터는 이터러블 객체를 순회하는 객체입니다. 이터러블을 만들고 싶다면 이터레이터를 만들면 됩니다. 이터레이터를 ..

카테고리 없음 2024.07.26

filter( ) 함수, map( ) 함수

두 함수를 보기전에 콜백 함수라는 것이 있습니다. 콜백 함수는 다른 함수에 인수로 전달되어 그 함수에 의해 호출되는 함수입니다.  쉽게 말해 함수의 매개변수에 사용하는 함수를 콜백 함수라고 합니다. 그럼 콜백함수를 사용하는 대표적인 함수를 살펴보겠습니다.  map( ) 함수먼저 map( ) 함수는 리스트의 요소를 함수에 넣고 리턴된 값으로 새로운 리스트를 만들어 주는 함수입니다.  map(함수, 리스트) 이런 형태로 되어있습니다. 간단한 예시를 한번 들어보겠습니다.def mul(item): return item ** 2 list_input_a = [1,2,3,4,5] 위 처럼 값을 제곱해주는 함수와 리스트가 있습니다. map( ) 함수를 사용해보겠습니다. print((map(mul, l..

카테고리 없음 2024.07.25

스택, 힙과 기본 자료형 복합 자료형

프로그래밍에서 데이터를 효율적으로 다루기 위해 자료형을 이해하고 사용하는 것은 매우 중요합니다. 오늘은 메모리 관점에서 자료형을 구분해보겠습니다. 스택, 힙 컴퓨터 메모리는 주로 스택과 힙으로 나눌 수 있습니다. 스택은 일종의 '임시 저장소' 입니다. 프로그램이 실행되는 동안 잠깐 필요한 데이터를 저장하는 곳으로 데이터를 저장하거나 읽어오는 속도가 매우 빠릅니다. 기본 자료형들이 차곡차곡 쌓여있다해서 스택이라 부릅니다. 힙은 '동적 저장소' 입니다. 힙은 더 많은 데이터를 저장할 수 있고, 크기가 고정되지 않고 필요에 따라 변경됩니다. 속도는 느립니다. 또한 스택처럼 차곡차곡 쌓아서 정리할 수 없으므로 이를 거대한 창고에 넣어둔다라고 생각하시면 이해하기 쉬울 것입니다. 이렇게 거대한 창고를 힙이라 부릅니..

Python 2024.07.25

함수의 매개변수

오늘은 함수의 매개변수에 대해 알아보겠습니다.매개변수는 기본 매개변수, 가변 매개변수, 키워드 매개변수가 있습니다. 먼저 가장 기본적인 매개변수부터 살펴보겠습니다.def mul(a,b): return a * bprint(mul(3,4)) 입력한 두 숫자를 곱하는 함수를 만들어 봤습니다. 여기서 a와 b는 매개변수입니다. 각각 3,4가 들어가서 곱해진 결과값이 나온 것을 볼 수 있습니다.   기본 매개변수기본 매개변수는 매개변수에 기본값을 설정하여 함수 호출시에 해당 매개변수에 값을 전달하지 않아도 기본값이 사용되도록 합니다.def calculate_area(radius, pi = 3.14): return pi * (radius ** 2)print(calculate_area(10)) 원의 넓이를..

Python 2024.07.24

여러 줄 문자열 사용하기

구문 내부에 여러 줄 문자열을 사용하는 경우가 종종 있을 것입니다. 그럴 때 발생하는 문제와 해결방법에 대해 알아보겠습니다. 먼저 입력한 문장과 그 길이를 알려주는 코드를 예시를 들어 설명하겠습니다. sentence = input('문장을 입력하세요: ')print(f''' 입력한 문장은 {sentence}입니다. 문장의 길이는 {len(sentence)}자 입니다.''') 보시면 앞에 줄바꿈 한줄이 들어가고 띄어쓰기가 들어간 후 문자열이 나온 것을 볼 수 있습니다. 이럴때는 역슬래시를 입력하면 앞에 줄바꿈을 무시할 수 있습니다. 그리고 앞에 띄어쓰기를 제거해 다시 만들어보겠습니다. sentence = input('문장을 입력하세요: ')print(f'''\입력한 문장은 {sentenc..

Python 2024.07.22

list comprehension

오늘은 리스트 컴프리헨션에 대해 알아보겠습니다. 설명하기 앞서 리스트 컴프리헨션을 짧게 말하자면 리스트를 쉽고, 짧게 만들수 있는 문법입니다. 간단한 예시를 들어 설명하겠습니다. dollar = [187, 209, 90, 76,98,142,133,81,65] 다음 리스트에 있는 달러를 원화로 바꾸어보겠습니다. won = []for i in dollar: won.append(i * 1389)print(won)현재 환율을 기준으로 이렇게 만들어 줄 수 있습니다. 이것을 짧게 한줄로 쓰기위해 리스트 컴프리헨션을 사용해 보겠습니다. 먼저 리스트 컴프리헨션의 구조는 리스트 이름 = [표현식 for 반복문] 으로 나타냅니다. 구조에 따라 나타내보면won = [i * 1389 for i in dollar]pri..

Python 2024.07.22

enumerate( )와 items( ) 함수

리스트와 딕셔너리를 쉽게 반복문으로 짜는 방법은 무엇일까요?  오늘은 enumerate( ) 함수와 items( ) 함수에 대해 알아보겠습니다.  enumerate( ) 함수sample_list = ['A','B','C','D'] 만약 이런 리스트가 있다고 생각해 봅시다. 여기서 리스트의 요소를 반복할 때 각 요소앞에 몇 번째인지 확인할 수 있게 반복하려면 어떻게 해야할까요?sample_list = ['A','B','C','D']i = 0for j in sample_list: print(f'{i} : {j}') i += 1for i in range(len(sample_list)): print(f'{i} : {sample_list[i]}') 이렇게 두 가지 방법을 생각해볼 수 있습니다. 이..

Python 2024.07.20

테이블 결합

보통 데이터베이스는 하나의 테이블에 많은 데이터를 저장하지 않고 몇 개의 테이블로 나누어 저장합니다. 이처럼 여러 개로 나뉜 데이터를 하나로 묶어 결과를 내는 방법이 테이블 결합입니다. 곱집합과 교차결합 결합을 설명하기전 곱집합을 설명하겠습니다. 곱집합은 합집합이나 교집합처럼 집합의 연산 방법 중 하나입니다. 예를 들어 집합 X는 {A,B,C}라는 요소를 가지고 집합 Y는 {1,2,3} 이라는 세개의 요소를 가집니다. 여기서 집합 X와 Y의 곱집합을 구하면 {A,1},{A,2}....{C,2},{C,3} 이렇게 총 9개가 나옵니다. 교차결합 지금까지 SELECT 명령에서는 FROM 구에 하나의 테이블만 지정했습니다. 테이블을 두 개 지정하면 이들은 곱집합으로 계산됩니다. SELECT * FROM samp..

SQL 2024.07.18

뷰는 테이블과 같은 부류의 데이터베이스 객체중 하나입니다. 뷰에 관해 한번 알아보겠습니다. 뷰 전에 서브쿼리에 대해 말했습니다. 이때 서브쿼리는 FROM 구에서도 기술할 수 있었습니다. 여기서 FROM 구에 기술된 서브쿼리에 이름을 붙이고 데이터베이스 객체화하여 쓰기 쉽게 한 것을 뷰라고 합니다. 이처럼 본래 데이터베이스 객체로 등록할 수 없는 SELECT 명령을, 객체로서 이름을 붙여 관리할 수 있도록 한 것이 뷰입니다.  SELECT * FROM (SELECT * FROM sample54) sq; 예를 들어 이런 SELECT 명령이 있습니다. 여기서 서브쿼리의 부분을 '뷰 객체'로 만들면 다음과 같은 SELECT 명령이 됩니다. SELECT * FROM sample_view_67; sample_vie..

SQL 2024.07.17

인덱스

이번에는 인덱스에 대해서 알아보겠습니다. 인덱스 구조  인덱스란? 인덱스는 테이블에 붙여진 색인이라 할 수 있습니다. 인덱스의 역할은 검색속도 향상입니다. 여기서 검색이란 SELECT 명령에 WHERE 구로 조건을 지정해 그에 일치하는 행을 찾는 과정을 말합니다. 테이블에 인덱스가 지정되어 있으면 효율적으로 검색할 수 있습니다. 책의 목차나 색인 역시 인덱스라고 생각하면 좀더 이해하기 쉬울 겁니다. 책 안에 있는 특정한 부분을 찾고 싶은 경우 어떻게 하나요? 보통 본문을 처음부터 읽어나가기보단 목차나 색인을 참고할 것입니다. 그것이 더 효율적이니까요. 인덱스가 바로 이런 역할입니다. 인덱스는 테이블과는 별개로 독립된 데이터베이스 객체로 생성됩니다. 하지만 인덱스만으로는 아무런 의미가 없습니다. 목차밖에 ..

SQL 2024.07.16