728x90

프로그래밍 27

[MacOS] 맥에서 환경변수 설정 및 확인하는 법 총정리

환경변수 설정 - 새 임시 환경변수 설정하기 터미널에서 export 새임시환경변수명=새임시환경변수값 입력 userMacBookPro:~ username$ export ENVIRONMENT_VARIABLE=value - 기존 환경변수에 임시 환경변수 값 추가 설정하기 터미널에서 export 기존환경변수명=새임시환경변수값:$기존환경변수명 입력 userMacBookPro:~ username$ export ENVIRONMENT_VARIABLE=new_value:$ENVIRONMENT_VARIABLE - 영구 환경변수 설정하기 1. .bach_profile 파일 확인 userMacBookPro:~ username$ ls -a ... .bash_profile ... 2. .bash_profile 파일 열기 user..

프로그래밍 2020.06.16

[Python] 파이썬 데코레이터 Decorator from scratch in Python

1. 일급객체(first-class object) : 컴퓨터 프로그래밍 언어 디자인에서 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 의미함. (ex. 매개 변수로 넘기기, 수정하기, 변수에 대입하기, 동일 비교하기 등) 1960년대, 영국의 컴퓨터 과학자 크리스토퍼 스트래치가 알골의 실수와 프로시저를 비교함으로써 일급 객체와 이급 객체의 개념에 대해 처음으로 언급함. 로빈 포플스톤은 일급 객체를 구성하는 요소는 다음의 기본적인 권리가 있다는 정의를 내림. 모든 요소는 함수의 실제 매개변수가 될 수 있다. 모든 요소는 함수의 반환 값이 될 수 있다. 모든 요소는 할당 명령문의 대상이 될 수 있다. 모든 요소는 동일 비교의 대상이 될 수 있다.z1990년대에 들어 미국의 컴퓨터 과학자 ..

프로그래밍 2020.06.07

[Python] 파이썬의 내부는 어떻게 생겼을까? CPython

파이썬은 파이썬만의 프로그래밍 언어 문법에 맞춰 코드를 작성하면 이를 작성한대로 실행하여 주는 하나의 프로그램이라고 할 수 있다. 개발자가 작성한 코드대로 실행해 주기 때문에, 다시말해서, 개발자가 의도한 프로그램을 만들 수 있도록 도와 주기 때문에 프로그래밍 언어라고 불린다. 그렇다면 파이썬의 내부는 어떻게 생겼을까? 파이썬 공식 웹 사이트 에서 다운받는 대부분의 파이썬의 경우 내부는 C언어로 구현되어 있다. 이를 CPython이라고 한다. 파이썬은 오픈 소스 프로젝트로 깃허브를 통해 코드를 공개하고 있기 때문에 여기에서 실제 구현 코드를 확인할 수 있다. 아래는 python 3.10.0 alpha 0 버전의 문자열 비교 함수의 모습이다. 파일명 pystrcmp.c에서 .c 확장자가 사용되고 있음을 알..

프로그래밍 2020.06.07

[소프트웨어공학] 소프트웨어 공학이란?

소프트웨어 공학의 의미 전기전자 기술자 협회(IEEE)의 소프트웨어 공학 표준에 의하면 소프트웨어 공학(Software Engineering)은 소프트웨어의 개발과 운영, 유지보수, 소멸에 대한 체계적인 접근 방법이라고 정의되고 있다. [소프트웨어공학] 소프트웨어와 프로그램의 차이 프로그램이란? 프로그램은 어떤 문제를 해결하기 위해 컴퓨터에게 주어지는 처리 방법과 순서를 기술한 일련의 명령문의 집합체이다. 즉, 프로그래밍 언어로 작성된 원시 코드 자체를 의미한�� life-of-panda.tistory.com

프로그래밍 2020.06.06

[소프트웨어공학] 소프트웨어와 프로그램의 차이

프로그램이란? 프로그램은 어떤 문제를 해결하기 위해 컴퓨터에게 주어지는 처리 방법과 순서를 기술한 일련의 명령문의 집합체이다. 즉, 프로그래밍 언어로 작성된 원시 코드 자체를 의미한다. 소프트웨어란? 이에 반해 소프트웨어는 프로그램과 프로그램의 개발, 운용, 유지 보수에 필요한 관련 정보 일체를 일컫는다. 소프트웨어에 프로그램 이외의 문서와 정보를 포함시키는 이유는 이들 모두 소프트웨어 생산 작업의 결과물이기 때문이다.

프로그래밍 2020.06.06

[자료구조] Python 파이썬으로 단일연결 정렬 리스트 구현하기 코드 설명

class Node: def __init__(self, data): self.data = data self.next = None class SinglySortedLinkedList: def __init__(self): self.head = None self.count = 0 def append(self, node): if self.count == 0: self.head = node self.count = 1 else: cur_node = self.head prev_node = None # cur_node의 data와 node의 data를 비교하며 삽입 위치 파악 while cur_node != None and cur_node.data

프로그래밍 2020.06.02

[자료구조] Python 파이썬으로 이중연결 정렬 리스트 구현하기 코드 설명

class Node: def __init__(self, data): self.data = data self.prev = None self.next = None class DoublySortedLinkedList: def __init__(self): self.head = None self.count = 0 def append(self, node): if self.count == 0: self.head = node self.count = 1 else: cur_node = self.head prev_node = None # cur_node의 data와 node의 data를 비교하며 삽입 위치 파악 while(cur_node != None and cur_node.data

프로그래밍 2020.06.02

[React.js] create-react-app에서 img 태그에 이미지 소스 넣기

create-react-app처럼 웹팩을 사용하는 경우에 img 태그에 이미지 소스를 넣는 방법은 두가지다. 1. require() 사용하기 2. import해서 사용하기 import imgfile from './imgfile.png'; require()와 import 사용 시 차이점은? import로 모듈을 불러오는 경우 사용하지 않는 코드들은 웹팩의 tree shaking에 의해 빌드 시 제거된다. 결과적으로 코드량이 줄어들고 성능적으로 우수해진다. 반면 require()를 사용하는 경우, 모듈을 동적으로 불러올 수는 있지만 불필요한 코드들까지 불러오게 된다.

프로그래밍 2020.06.01

[React.js] react-pdf 로 파일 프리뷰 미리보기 하는 법 react-pdf 사용법 예제

react-pdf 패키지를 활용하면 리액트에서 PDF 파일 미리보기 기능을 쉽게 구현할 수 있다. 온라인 데모는 여기에서 확인할 수 있다. 1. 프로젝트에 react-pdf 패키지를 설치한다. npm install react-pdf 2. PDF.js worker를 활성화한다. create-react-app 프로젝트의 경우 아래 코드를 소스 파일에 추가한다. import { pdfjs } from 'react-pdf'; pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`; create-react-app 프로젝트가 아닌 경우 npm react-pdf Readme ..

프로그래밍 2020.06.01

[React.js] Expected an assignment or function call and instead saw an expression 오류 해결법

할당 또는 함수 호출이 예상되나 대신 식이 표시되었다는 의미의 오류이다. MDN JavaScript 화살표함수에 따르면 화살표 함수의 몸체에서 괄호로 감싸지지 않았거나 소괄호()로 감싸진 부분은 return문이 없어도 return 값을 반환한다. 반면, 중괄호{}로 감싸진 부분은 return문이 없으면 return 값을 반환하지 않는다. 따라서 다음의 경우 아래와 같이 수정할 수 있다. arr.map((item, index) => {{item}}) 1. 중괄호를 제거한다. (가장 간단함) arr.map((item, index) => {item}) 2. 중괄호 대신 소괄호를 사용한다. arr.map((item, index) => ({item})) 3. return문을 추가한다. arr.map((item, ..

프로그래밍 2020.05.29
728x90