본문 바로가기

Programming Languages12

Python Pytest 관해서 0. 가이드에 들어가기 전에 pytest 에 대한 설명을 담은 페이지입니다. 여기에서는 전반적인 설명과 사용법을 다루며 세부사항을 깊게 보지는 않습니다. 추가적인 자세한 내용은 공식문서를 참고해 주시길 바랍니다. pytest 공식문서 Full pytest documentation - pytest documentation 1. 테스트에 대해서 코딩을 하게 되면 해당 코드가 의도대로 작동하는지, 어떤 부분들을 확인해야 하는지 등 고려해야 할 부분들이 몇몇 있습니다. 따라서 코드가 정상적으로 작동하는지 확인을 하기 위해 추가로 코드를 작성해 확인하는 과정을 거칩니다. 이 때 코드를 추가로 작성한다는 것은 양이 추가되기도 하지만 또다른 코드가 등장하는 것입니다. 즉, 이 테스트 코드를 테스트할 코드를 작성하지 .. 2022. 6. 1.
Python Testing Python testing frameworks In python, there is a testing framework that comes with the standard library: unittest. It's quite simple to use and revolves around that simplicity. Another popular framework used in python programming is pytest. With easy to use testing methods and functions, pytest allows quick test write ups and many features that make it useful. Unittest First comes unittest. T.. 2022. 6. 1.
파이썬 가상환경을 왜 써야할까...? 소개 파이썬 가상환경에 대한 정보는 많다. 인터넷에 쳐보게 되면 수많은 결과를 볼 수 있다. 내가 애용하는 사이트는 RealPython.org 인데 정말 깔끔한 문서와 내용은 늘 대단하다고 생각한다. 아무튼, 오늘은 내가 경험한 콘다 가상환경과 pipenv 에 대해서 몇 글자 끄적이고자 한다. 파이썬의 패키지 관리 파이썬에서는 패키지 관리가 하나의 버전만 가능하기 때문에 이에 따라 여러 개의 버전을 사용하기가 쉽지 않다. 간단하게 말해서 파이썬에서 기본으로 사용하는 패키지들은 파이썬에서 따로 관리를 하기 때문에 버전 관리를 신경쓸 필요가 없다. 하지만 문제는 제3자의 패키지에서 발생한다. 눈치챘겠지만 파이썬의 기본 라이브러리는 알아서 관리하면 사실상 버전에 따른 패키지 버전 문제는 대부분 알아서 해결해 .. 2022. 5. 31.
자바스크립트 언어에서의 비동기 경험 선결론 : 제대로 사용할 줄만 안다면 큰 도움이 된다. 서론 자바스크립트 언어는 위키백과의 말을 빌리자면 다음과 같습니다. JavaScript is high-level, often just-in-time compiled, and multi-paradigm 파이썬과 같은 사람들이 사용하는 일상 용어와 비슷하면 high-level 이라고도 합니다. 즉, 기계언어, machine language 와 비슷해질 수록 low-level 로 불리죠. 여기에 속하는 언어들은 C 가 있죠. 더 들어가면 Machine Language, 거의 이진수를 사용하는 수준과 사람들이 그나마 이해할 수 있는 단어들이 존재하는 Assembly Language 가 있습니다. 사실 위 정의를 굳이 언급하지 않아도 자바스크립트를 사용하시는.. 2022. 5. 31.
ES6 Classes and Super...? 선결론 : Sugar Coating 되어 버린 ES6 클래스 문법을 이용하면 편리하다 자바스크립트는 사실 클래스의 뚜렷한 기반이 있는 언어가 아니다. 처음부터 지금까지 자바스크립트는 OOP가 아닌 객체 지향 언어일 뿐이다. 그렇기에 꽤 오랜 시간동안 클래스를 활용하기 위한 몸부림치는 노력들이 있었으며 그 노력들은 일종의 임시 방편이나 일시적인 해결책에 지나지 않았다. 결국에는 ES6라는 문법에 Class 와 상속이 가능한 Super 가 등장하게 되면서 그 이후로 언어를 접하는 사람들은 자바스크립트가 객체 지향 프로그래밍 이라는 착각을 할 수도 있다. 허나, class 나 super 등의 문법은 사실 기존에 사용했던 상속 및 클래스 생성 방법들을 깔끔하게 정리해준 것 뿐 그 이하도 이상도 아니다. 자 그럼.. 2022. 5. 31.
this의 세계 선결론: this를 이해하려면 많은 시간이 필요할 듯 하다 일단 기본적으로 this는 총 다섯 가지의 경우로 나눌 수 있다고 한다. 1. Global Reference 이 경우에는 window 혹은 global을 가리키는 this로 쓰일 때인데 그냥 바로 this를 찾게 되면 여기로 뜬다. 2. Free Function Invocation 이 경우에도 마찬가지로 window 혹은 global로 바인딩이 된다. 1번이나 2번이나 그다지 유용하지는 않지만 그래도 this의 출발점은 되어주기도 한다. 3..call or .apply invocation 이 두 가지의 경우인 .call과 .apply에서는 자바스크립트에서 사용할 수 있는 방법이다. 인자로 this를 수동적으로 넘겨주게 되면서 this를 지정할 수.. 2022. 5. 30.
비동기적 호출 - [setTimeout, setInterval] 선결론 : 비동기적 호출, asynchronous call은 이해하기 쉽지는 않지만 그만큼의 재미가 있다 여태까지 자바스크립트에서 배운 코딩은 동기적 호출이었다. 간단하게 풀자면 하나씩 부르는 형식이다. console.log("Hello") console.log("World") console.log("!") // returns // "Hello" // "World" // "!" 위처럼 콘솔에는 하나하나씩 실행을 하게 된다 하지만 이를 비동기적으로, 즉 시간을 동시가 아닌 다르게 해서 호출을 하고자 한다면, 이를 가능하게 해주는 것이 setTimeout과 setInterval이다. console.log("Hello") setTimeout(function() { console.log("World") }, 1.. 2022. 5. 30.
super()를 이용한 class 상속 방법 (ES6) 선결론 : super()를 이용하면 편리하지만 인터넷 익스플로어와는 호환성 문제가 있다. 클래스를 만들면 거기에 속한 속성들을 이용해서 다른 클래스에게 속성을 상속시킬 수 있다. 이 글에서는 ES6 문법을 이용해 class를 만들어 super로 상속하는 방법에 대한 내용이다. class Polygon { constructor(height, width) { this.name = 'Polygon'; this.height = height; this.width = width; } sayName() { console.log('Hi, I am a ', this.name + '.'); } } 위와 같은 코드를 상속받는 다른 class를 작성할 때에 super를 이용해 상위 class의 속성들을 받을 수 있다. cla.. 2022. 5. 30.