Jacob

Thoughts, stories and ideas.

주니어 개발자의 이직기
Career  

주니어 개발자의 이직기

여전히 주니어, 하지만 두 번째 직장나는 이제 6개월 경력의 주니어 백엔드 개발자이다. 비전공자로서, 처음 개발자로 입사했을 때만 해도 뭔가 평생 뼈를 묻을 것만 같고, 1-2년은 이직을 안할 줄 알았는데, 반년이 지난 지금 벌써 두 번째 직장을 맞이하게 되었다. 새로운 도전의 이유사실 6개월이란 시간은 개발 직군인 것을 감안해도 이직하기에 상당히 짧은

Django ORM이 작동하는 방법
Django  

Django ORM이 작동하는 방법

장고 웹 프레임워크에서는 기본으로 object-relational mapping(ORM)이라고 불리는 계층을 포함한다. 혹은 object-relational mapper라고 불리기도 한다. 사실 ORM이라고 불리는 이 기술은 장고에서만 사용되는 것이 아니라 스프링(자바), 플라스크(파이썬) 등 다른 언어와 프레임워크에서 널리 쓰이는 방법이다. 예를 들어, 플라스크에서는 SQL Alchemy라는 ORM을 사용하는데, 장고에서는 Django ORM이라고 불리는 자체 ORM을 사용한다.

파이썬 클래스 상속 이해하기
Python  

파이썬 클래스 상속 이해하기

상속(inheritance)이란 하나의 클래스가 다른 클래스의 속성과 메서드를 얻는 과정을 의미한다. 새롭게 형성된 클래스는 자녀 클래스(child class)라고 부르고, 자녀 클래스가 파생된 클래스를 부모 클래스(parent class)라고 부른다. 자녀 클래스는 부모 클래스의 속성과 메서드를 오버라이딩하고 확장할 수 있다. 다른 말로, 자녀 클래스는 부모 클래스로 부터 모든 속성과

파이썬 객체를 인스턴스화 하는법
Python  

파이썬 객체를 인스턴스화 하는법

객체를 인스턴스화(instantiate) 하기 위해서는, 클래스의 이름을 적고, 다음으로 클래스의 __init__() 메서드에 전달되어야 하는 모든 값을 포함한 괄호를 적어주면 된다. 다음은 새로운 Dog 클래스를 속성과 메서드 없이 생성한다. >>> class Dog: ... pass새로 만든 Dog 객체를 인스턴스화 해보자. >>> Dog() <__main__.Dog object at 0x106702d30>

파이썬 클래스 이해하기
Python  

파이썬 클래스 이해하기

객체 지향 프로그래밍(OOP, or Object-Oriented Programming)은 개별 객체에 관련 특성과 동작을 묶어서 프로그램을 구성하는 방법이다. 개념상 객체는 시스템의 구성 요소와 같다. 프로그램을 일종의 공장 조립 라인이라고 생각해보자. 시스템 구성 요소 조립 라인의 각 단계는 일부 재료를 가공하고, 궁긍적으로 원재료를 완제품으로 변환한다. 객체는 데이터를 담는다. 마치 조립 라인 각

파이썬 딕셔너리 자료구조 이해하기
Python  

파이썬 딕셔너리 자료구조 이해하기

딕셔너리란?일반적으로 딕셔너리(사전)는 단어의 의미를 담고있는 책을 말한다. 사전에 각 항목에는 정의되는 단어와 그 단어의 뜻, 총 두 부분으로 나뉜다. 파이썬에서 딕셔너리는 리스트와 튜플과 마찬가지로 객체의 컬렉션을 저장한다. 하지만, 객체들을 배열에 저장하는 대신, 딕셔너리는 키-값 쌍(key-value pairs)라고 불리는 방식으로 정보를 저장한다. 즉, 딕셔너리의 각 객체는 키(

파이썬 리스트 중첩, 복사, 분류하기
Python  

파이썬 리스트 중첩, 복사, 분류하기

리스트와 튜플 중첩으로 만들기리스트와 튜플은 어떤 유형의 값이라도 담을 수 있다. 즉, 리스트와 튜플은 리스트와 튜플을 값으로도 담을 수 있다. 중첩 리스트(nested list) 혹은 중첩 튜플(nested tuple)은 또 다른 리스트나 튜플을 값으로 담고 있는 리스트나 튜플을 뜻한다. 다음 예제의 리스트는 다른 두 리스트를 값으로 가진다. >>

파이썬 리스트 자료구조 이해하기
Python  

파이썬 리스트 자료구조 이해하기

파이썬에서 리스트 자료 구조는 또 다른 시퀀스 자료형이다. 문자열과 튜플처럼, 리스트도 0부터 시작하는 정수로 인덱싱 된 항목 들을 담는다. 하지만 튜플과는 달리, 리스트는 가변객체(mutable)이다. 즉, 리스트가 생성되고 난 뒤 인덱스로 접근해 값을 변경할 수 있다는 것이다. 리스트 생성하기리스트 리터럴(list literal)은 소괄호 대신 대괄호가 사용된다는 점 말고는

파이썬 튜플 자료구조 이해하기
Python  

파이썬 튜플 자료구조 이해하기

튜플(tuple)이란 용어는 값의 유한한 순서의 배열을 설명하기 위해 사용 되는 수학적인 용어이다. 튜플은 요소가 순서대로 표시되기 때문에 순서가 지정되어 있다. 즉, (1, 2, 3)과 같은 튜플이 있을 때, 첫 번째 요소는 1이고 두 번째 요소는 2, 세 번째 요소는 3인 것이다. 파이썬에서는 수학적 개념인 튜플의 이름과 작성법을

파이썬 반복문 흐름 제어하기
Python  

파이썬 반복문 흐름 제어하기

파이썬에서는 break와 continue 키워드를 제공해, 반복문의 실행 흐름을 더 정밀하게 제어할 수 있도록 도와준다. break 키워드break 키워드는 말 그대로 파이썬에게 반복문에서 벗어나라고 명령한다. 즉, break 키워드를 사용하면 반복문은 완전히 멈추게 되고 반복문 다음에 오는 코드가 실행된다. break를 사용한 반복문 예제는 다음과 같다.for n in range(0, 4): if n

파이썬 조건문 이해하기
Python  

파이썬 조건문 이해하기

불리언 비교자(boolean comparator)와 복잡한 조건문(complex conditional statement)를 논리 연산자와 사용함으로써 값을 비교할 수 있었는데, 여기다 약간의 로직을 추가해줌으로써, 다른 조건마다 다른 액션을 수행하도록 할 수 있다. if문(if Statement)파이썬에서 if문은 특정 조건이 만족했을 때 코드의 일부분을 실행하는 조건문이다. if 2 + 2 == 4: print("2 and

파이썬 불, 비교, 논리 연산자 이해하기
Python  

파이썬 불, 비교, 논리 연산자 이해하기

파이썬에서는 조건부 논리(conditional logic)라는 것을 사용해 다른 조건을 따라 다른 작업을 수행하는 프로그램을 작성할 수 있다. 더 나아가서, 함수와 반복문과 짝지어, 조건부 논리는 여러 다른 상황을 다룰 수 있는 복잡한 프로그램을 작성할 수 있도록 도와준다. 값 비교하기(Compare Values)조건부 논리(conditional logic)는 조건부(conditional)라고 하는

파이썬 범위 이해하기
Python  

파이썬 범위 이해하기

파이썬에서 범위란, 함수나 반복문을 언급할 때 꼭 다뤄야 되는 부분 중 하나이다. 범위라는 개념이 프로그래밍에서 이해하기 어려운 부분 중 하나이지만, 매우 중요하니 잘 짚고 넘어가자. 범위란 무엇인가?사용자가 변수에 값을 할당할 때, 사용자는 변수에 이름을 주게된다. 파이썬에서 이름은 고유하다. 예를들어, 두 개의 다른 숫자에 같은 이름을 할당할 수는 없다. >

파이썬 함수를 작성하는 방법
Python  

파이썬 함수를 작성하는 방법

반복적인 코드는 좋지 않다는 것을 누구나 알고있다. 보기에도 좋지 않고 복사한 코드 한 부분에 고쳐야 할 부분이 있다면 복사했던 부분을 다시 다 고쳐야하기 때문이기도 하다. 이번에는 함수를 작성하는 법과 함수를 사용해서 코드의 반복을 줄이는 법을 배워보려고 한다. 파이썬 함수 해부하기모든 함수는 다음과 같이 두 가지 부분으로 나뉘어져 있다.함수 시그니처(

파이썬 반복문 이해하기
Python  

파이썬 반복문 이해하기

컴퓨터의 위대한 기능 중 하나가 같은 것을 계속 반복할 수 있다는 점이다. 심지어 이런 업무에 있어 불평하거나 지치지도 않는다. 루프(loop)란 특정 횟수나 조건이 만족했을 때 까지 계속해서 반복되는 코드 블럭이다. 파이썬에는 두 가지 종류의 루프가 존재하는데, 바로 while 루프와 for 루프이다. 두 가지 반복문을 어떻게 사용하는지 들여다보자. while

파이썬 숫자형 함수 다루기
Python  

파이썬 숫자형 함수 다루기

숫자형 함수(Math Functions)파이썬에서는 숫자를 다룰 때 사용할 수 있는 내장된 함수를 제공한다. 대표적인 세 가지 함수는 다음과 같다.round() - 소수점 이하의 자릿수를 반올림한다.abs() - 숫자의 절대값을 얻는다.pow() - 특정 수를 거듭제곱한다.round() 함수round() 함수를 사용하여 가장 가까운 정수로 반올림을 할 수 있다. >>>

파이썬 함수 이해하기
Python  

파이썬 함수 이해하기

함수(Function)함수란 무엇일까? 사실 파이썬을 처음 접하면서 사용했던 print()나 len() 같은 것들이 모두 함수이다. 익숙한 len() 함수로 함수란 무엇인지 더 자세히 이해해보자. 함수는 값이다파이썬에서 가장 중요한 함수의 특성 중 하나가 함수는 값이면서 변수에 할당될 수 있다는 것이다. len을 입력하면 파이썬은 len이라는 이름이 값이 내장 함수인 변수라고 알려준다. >

파이썬 산술 연산자와 표현식
Python  

파이썬 산술 연산자와 표현식

산술 연산과 표현식(Arithmetic Operators and Expressions)파이썬에서는 덧셈, 뺄셈, 곱셈, 나눗셈와 같은 기본 산술 연산이 존재한다. 기본적인 산술 연산과 표현식을 코드로 적을때의 컨벤션을 알아보자. 덧셈(Addition)덧셈은 + 연산자와 함께 사용된다. >>> 1 + 2 3+ 연산자 양쪽에 각 숫자는 피연산자(operand)라고 불린다. 산술 연산을 할 때에 양쪽에

파이썬 문자열 찾기
Python  

파이썬 문자열 찾기

문자열 안에 문자열 찾기 매우 유용한 문자열 함수 중에 하나가 바로 find() 함수이다. 이름이 암시하듯이, 이 함수를 사용해서 한 문자열의 위치를 다른 문자열에서 찾을 수 있다 - 보통 이런 부분 문자열을 서브스트링(substring)이라고 불린다. find() 함수는 사용하기 위해서는 .find()를 변수나 문자열 리터럴 뒤에 위치 시키고 괄호 사이에 찾고

파이썬 문자열 메서드 다루기
Python  

파이썬 문자열 메서드 다루기

문자열 메서드(String methods)파이썬에서는 텍스트의 집합을 문자열(string)이라고 부르고, 그 문자열을 조작하기 위해 사용되는 특별한 기능들을 문자열 메서드(string methods)라고 부른다. 대표적인 문자열 메서드로는 문자열을 소문자에서 대문자로 바꿔준다던지, 시작점에 위치한 공백을 끝으로 옮긴다던지, 혹은 특정 텍스트 부분을 다른 텍스트로 대체하는 등의 메서드가 있다. 물론 이외에도 다른 수

파이썬 문자열 포맷팅 이해하기
Python  

파이썬 문자열 포맷팅 이해하기

문자열 포맷팅 (Formatted String)파이썬에서는 문자열 포맷팅을 사용해 특정 변수를 원하는 문자열의 특정 위치에 삽입할 수 있다. 이런 방식을 문자열 보간법(string interpolation)이라고 부른다. 파이썬에서 대표적인 문자열 포맷팅 방식에는 파이썬 3.6 버전에 추가된f-string이라는 방식이 있다. 비교적 최신에 추가 됬으므로 물론 그 전에 이미 다른 방식의 포맷팅이 파이썬에서는 존재했다.

파이썬 문자열을 사용하는 방법
Python  

파이썬 문자열을 사용하는 방법

문자열 사용법파이썬 문자열을 사용하는 여러가지 방법이 존재한다. 이 글에서는 문자열 작동에 기본이 되는 세 가지 방식을 공부해보려한다. 세 가지 방식은 다음과 같다.결합(concatenation) - 두 문자열을 합친다.인덱싱(indexing) - 문자열에서 단일 문자를 구한다.슬라이싱(slicing) - 단 한번에 문자열에서 여러 문자를 구한다.문자열 합치기(String Concatenation)두 개의

파이썬 문자열 이해하기
Python  

파이썬 문자열 이해하기

문자열(String)특정 분야에 상관 없이 많은 개발자들은 매일 문자열을 다룬다. 예를 들어, 웹 개발자들은 웹 폼의 인풋으로 들어오는 텍스트를 다루고, 데이터 사이언티스트는 특정 분석을 수행하고 데이터를 추출하기 위해 텍스트를 가공한다. 파이썬에서는 이런 텍스트의 집합을 문자열(string)이라고 부른다. 문자열 자료형(String Data Type)문자열은 가장 기본적인 파이썬 자료형(data