본문 바로가기

전체 글

(49)
Python Google Style Guide 1. Lint pylint 를 사용하여 코드 컨벤션을 맞춘다. 2. import - import x 를 통해 패키지와 모듈을 사용한다. - from x import y : x가 package이고, y가 모듈일때 사용한다. - from x import y as z : y로 이름지어진 모듈이 두개거나, y 모듈 이름이 불필요하게 길다면 z로 약어를 만들어 사용한다. - import y as z : z가 공식적인 약어인 경우에만 사용한다. (ex, numpy의 np) - import된 모듈과 관련있는 이름은 사용하지 않는다. - 모듈이 같은 패키지에 있더라도 전체 패키지 이름을 사용한다. 이는 동일한 패키지를 두번 import하는것을 예방한다. 3. Packages - 모든 코드는 전체 패키지 이름을 명시하며..
Python - Class 1.1 class 선언 - 사칙연산을 수행하는 클래스 선언하기 class FourCal: pass * 파이썬에서는 클래스선언 또는 조건문, 반복문에서 대괄호 ( {} ) 대신 콜론 ( : )과 들여쓰기로 대체된다. * pass는 아무것도 수행하지 않는 문법으로, 임시로 코드를 작성할 때 주로 사용된다. a = FourCal() print(type(a)) # 1.2 메서드 선언 - 클래스 안에 함수 구현하기 - 함수 구현은 def 키워드를 사용해 선언한다. class FourCal: def __init__(self, first, second): self.first = first self.second = second def add(self, first, second) -> int: return first +..
Python - Set, Dictionary 1. Set 집합은 파이썬 2.3 부터 지원하기 시작한 자료형으로, 집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형이다. 집합은 {} (중괄호)와 ,(컴마)를 이용해 집합을 만들 수 있다. 그러나 비어있는 중괄호는 집합이 아니라 사전(dictionary)를 만드니 주의하여야 한다. s1 = set() s2 = {} print(type(s1)) # print(type(s2)) # 빈 집합은 set() 키워드를 사용하여 만들어야 한다. 리스트나 튜플과 달리 집합은 아이템의 순서를 유지해주지 않는다. 중복된 아이템들은 제거되고, 하나만 남는다. 시퀀스가 아니기 때문에 인덱싱이나 슬라이싱 또한 사용할 수 없다. s1 = set("Hello") s2 = set([1, 2, 3, 3, 0, -1, 9, 4, 5..
Python 컨테이너 - 튜플과 시퀀스 튜플은 몇가지 점을 제외하면 리스트와 거의 비슷하며, 리스트와 다른점은 다음과 같다. - 리스트는 [] (대괄호)를 사용하여 원소를 둘러싸지만, 튜플은 () (소괄호)로 둘러싼다. - 리스트는 가변이지만, 튜플은 불변 자료형이다. 1. 튜플 튜플은 소괄호와 컴마를 사용한다. 이때 컴마가 있다면 괄호를 생략할 수도 있다. t = () t = (1, 2, 3) t = (1,) t = 3, t = 1, 2, 3 t = (1, "Hello", 1.34, (3, 1)) 괄호 없이 컴마만 아이템을 나열하는것을 패킹(packing) 이라고 말한다. 1.1 리스트 튜플 l = [123, 3.14, "Hello"] t = tuple(l) print(t) # (123, 3.14, 'Hello') t = 123, 3.14,..
Python 컨테이너 - List 파이썬에서는 다른 객체들을 여러개 담을 수 있는 자료형을 제공한다. List (리스트) Tuple (튜플) Set (집합) Dict (사전) 1. List 파이썬에서 가장 유연하게 사용할 수 있고, 많이 사용되는 컨테이너이다. 대괄호 ( [] )로 만들어지며, 컴마 기호를 사용해서 아이템을 구분한다. list = [1, 2, 3, 4, 5] list2 = [1, 3, "string", 1.34] # 한개의 리스트 안에 여러 타입을 넣을 수도 있다 1.1 리스트 인덱싱과 슬라이싱 리스트도 문자열 처럼 인덱싱과 슬라이싱이 가능하다. - 리스트 인덱싱 문자열에서의 인덱싱과 마찬가지로 인덱스가 마이너스 값이면 뒤에서부터 요소값을 의미한다. 만약 인덱스가 -1 이면 뒤에서부터 첫번쨰 값을 의미한다. list = ..
[C++] Compile Process 기존에 컴파일을 한다면 문법 오류를 잡나보다 ~ 내가 작성한 코드를 실행시켜주는구나~ 라고만 이해했지 정확한 과정은 모르고 있었다. 사실은 학부 수업때 한번 들은 것 같았는데, 그땐 아무것도 몰랐던 상태라 그냥 그런게 있나보다 하고 넘어갔던 것 같다. C++를 공부하는김에 어떤 과정을통해 내가 작성한 코드가 개발 환경에서 돌아갈 수 있는지 정리하고 넘어가겠다. Compiler 컴파일러는 특정 프로그래밍 언어로 쓰여 있는 문서를 다른 프로그래밍 언어로 옮기는 언어 번역 프로그램을 말한다. (위키 백과) 번역을 해주는 프로그램이다. 이는 컴파일러는 하나의 소프트웨어라는 뜻이다. 어 근데 내가 아는 컴파일러는 내가 쓴 코드를 컴퓨터한테 전달해서 실행가능한 프로그램으로 만드는거 아닌가? 라고 생각이 들 수 있는..
[C++] Header guard (헤더 가드) C++로 프로그램을 짜다보면 코드를 분리하기 위해 헤더 파일을 통해 이를 행해주는데, 헤더파일에는 헤더 가드라는 구문이 존재한다. 왠만한 IDE에서 헤더파일을 생성하면 이 구문은 자동으로 생성된다. 소스파일이 많아지거나 포함 관계가 복잡해지면 동일한 헤더파일을 중복으로 include 하는 상황이 온다. 이때 헤더 가드는 같은 헤더 파일을 두번 이상 포함하는 상황을 방지하는 역할을 해준다. 좀 더 자세히 살펴보기 위해 예시를 들것인데, 헤더 가드 없는 헤더 파일을 만들어보겠다. 먼저 분리할 전체 코드이다. 좀 더 깔끔한 코드를 위해 add.h 헤더와 printAddResult.h 헤더를 만들어 메인함수와 분리시키겠다. ctrl + n 을 누르고 헤더파일을 만들자마자 보면 위와같이 코드 몇줄이 써져있는데, ..
Swift - Concurrency Concurrency 스위프트는 구조화된 방식으로 비동기 및 병렬 코드를 작성하는데 built-in 지원을 제공한다. 한번에 하나의 프로그램만 실행시킬 수 있다해도 비동기 코드는 일시중지하고 재개될 수 있다. 프로그램에서 코드를 일시중지하고 재개시킨다는 것은 네트워크를 통해 데이터를 가져오거나 파일을 파싱하는것과 같은 긴 작업을 진행하면서 UI를 업데이트하는 짧은 작업을 계속 진행 할 수 있다는 것을 의미한다. Parallel code(병렬코드) 는 여러 코드가 동시에 안전한 방법으로 실행되는것을 의미한다. 예를들어, 4코어를 가진 컴뷰터는 동시에 4개의 코드 조각을 실행시킬 수 있으며, 각 코어는 작업들중 하나를 수행해 나간다. 병렬 그리고 비동기 코드를 사용하는 프로그램은 동시에 여러가지의 연산을 수..