방성범 블로그

전체 글 목록

  • 셀레늄 IDE 가이드

    셀레늄 IDE(Selenium IDE)는 사용자가 웹 브라우저에서 수행한 동작을 기록하고, 이를 다시 재현합니다.

  • 넘파이 vs 사이파이

    넘파이(NumPy)와 사이파이(SciPy)의 차이점에 대해 다룹니다.

  • 기계 학습 라이브러리들의 'import as' 약칭

    numpynp로 줄여쓰는 것을 아시나요? 기계 학습과 관련된 파이썬 라이브러리들의 import as 약칭을 정리했습니다.

  • 발레나에처 소개

    발레나에처(balenaEtcher)는 간단하게 SD 카드나 USB에 운영 체제 이미지를 구울 수 있는 유틸리티 프로그램입니다.

  • 배시 배열

    배열을 통해 여러 값을 효과적으로 다룰 수 있습니다.

  • source, . (점): 셸 스크립트 파일 실행

    배시(Bash)에서 source.은 동일한 기능을 하는 명령어로, 셸 스크립트 파일을 실행하는 데 사용합니다.

  • 셸에서 환경 변수와 함께 명령어를 실행하는 법

    ABC=123 bash asdf.sh처럼 명령어 앞에 환경 변수를 선언할 수 있습니다. 이렇게 선언된 환경 변수는 해당 명령어를 실행하는 동안에만 유효합니다.

  • 파이썬 내장 모듈과 동일한 이름 피하기

    내장 모듈과 동일한 이름으로 파이썬 파일을 만드는 것은 위험합니다. 파이썬에는 내장 모듈과 동일한 이름의 파이썬 파일이 존재할 경우 내장 모듈 대신 동일한 이름의 파일을 불러오는 현상이 있는데, 이 현상으로 인해 원인을 알기 어려운 오류가 발생할 수 있습니다.

  • 파일 이름 끝 하이픈

    리눅스에서 /etc/group-, /etc/passwd-, /etc/shadow-의 파일 이름 끝에 있는 하이픈(-)은 백업 파일을 의미합니다.

  • 디렉터리 이름 끝 '.d'

    리눅스의 /etc 디렉터리 안에는 여러 하위 디렉터리가 존재합니다. 이중 이름 끝에 붙는 .d는 무엇을 의미할까요?

  • sys.path, PYTHONPATH: 파이썬 파일 탐색 경로

    import 문을 통해 다른 파이썬 파일을 불러올 때, 파이썬은 내부적으로 파일을 찾기 위해 sys.pathPYTHONPATH에 있는 경로를 탐색합니다. 이 두 변수를 적절히 수정해 임의의 디렉터리에 있는 파이썬 파일을 손쉽게 불러올 수 있습니다.

  • AF_INET vs PF_INET

    192.168.0.1같은 IP 주소 체계를 인터넷 프로토콜뿐만 아니라 다른 프로토콜에서도 사용할 수 있도록, IP 주소 체계를 지칭할 때는 AF_INET, IP 자체를 가리킬 때는 PF_INET을 사용하기로 했습니다.

  • 플라스크 시그널

    파이썬 플라스크(Flask)에서 프레임워크 내부 동작을 감지하는 방법인 시그널(Signals)에 대해 살펴봅니다.

  • MQTT 소개

    MQTT의 필요성과 특징에 대해 소개합니다.

  • MQTT 연결 방식

    MQTT의 TLS 보안 연결이나 웹소켓을 통한 연결 방식에 대해 소개합니다.

  • IoT 플랫폼 업체 비교

    홈 오토메이션이나 IoT 제품 개발을 위해 어떤 IoT 플랫폼을 사용해야 할까요? Adafruit IO, Blynk, ThingSpeak, AWS IoT 등 여러 업체를 비교해보았습니다.

  • 바닐라 웹 컴포넌트 만드는 법

    제이쿼리(jQuery), 리액트(React), 뷰.js(Vue.js)같은 프레임워크 없이 웹 컴포넌트를 만드는 방법에 대해 알아봅니다.

  • 자바스크립트 클로저

    자바스크립트에서 클로저(closure)란 무엇인지, 그리고 클로저를 사용하는 이유에 대해 알아봅니다.

  • 자바스크립트 var, let 차이점

    자바스크립트에서 변수를 선언할 때 사용하는 var, let, const의 차이와 스코프, 호이스팅에 대해 알아봅시다.

  • Redux의 장점과 주의점

    Redux(리덕스)를 쓰는 이유와 사용 시 주의할 점에 대해 살펴봅니다.

  • GitFlow가 안 좋은 이유

    깃에서 가장 유명한 브랜칭 전략인 GitFlow(깃플로)의 단점을 분석합니다.

  • 다중 저장소 vs 단일 저장소

    언제 다중 저장소(Multirepo(멀티레포))를 쓰고 언제 단일 저장소(Monorepo(모노레포))를 써야 하는 지에 대해 설명합니다.

  • PostCSS가 Sass보다 좋은 이유

    Sass(사스)의 복잡한 문법이 필요 없다면, CSS의 표준 문법에 기반한 PostCSS(포스트CSS)를 사용하는 것이 더 편리합니다.

  • 리눅스 ACL 가이드

    사용자 하나와 그룹 하나에게만 권한을 줄 수 있는 파일 퍼미션을 확장하여, 여러 명의 사용자와 그룹에게 접근 권한을 줄 수 있는 ACL(Access Control List)에 대해 알아봅니다.

  • 파이썬에 switch/case 문이 없는 이유

    파이썬 역사 상 switch를 구현하려는 시도는 있었습니다. 다만 switch를 어떤 방식으로 구현하는 게 가장 효과적일지 결정하는 것이 까다롭고, 무엇보다 인기가 없어서 결국 구현되지 못했습니다. 대신 파이썬 공식 문서는 if...elif를 권장합니다.

  • GraphQL의 단점과 대안

    GraphQL(그래프QL)은 서버 수정 없이 클라이언트가 원하는 쿼리를 날릴 수 있어 API를 설계하거나 변경하는 비용을 획기적으로 낮출 수 있습니다. 그러나 HTTP에서 제공하는 기존 인프라를 그대로 사용하지 못하고 GraphQL 스타일로 다시 재구현해야만 하는 부담이 있습니다.

  • 파이썬 더블 샤프(##) 주석

    파이썬 내장 IDE인 IDLE(아이들)에서 ‘Comment Out Region’이라는 메뉴 항목을 누르면 사용자가 선택한 영역을 주석 처리하는데, 특이하게도 하나가 아니라 두 개의 샤프를 붙입니다. 샤프 두 개에 뭔가 특별한 의미라도 있는 걸까요?

  • 스프링의 단점과 대안

    스프링(Spring Framework, Spring Boot, …)은 강력하지만 그만큼 배워야 할 것이 많은 복잡한 프레임워크입니다. 자바를 써야 하지만 스프링은 부담된다면, 대안으로 드롭위자드(Dropwizard)를 사용해보세요.

  • 웹 사이트 너비 정하기

    웹 사이트의 너비에 대한 절대적인 기준은 없습니다. 그래도 마음대로 정하는 것보다는, 모바일에서 데스크톱 전용 웹 페이지를 렌더링할 때 사용되는 너비인 980px을 권장합니다.

  • 시맨틱 태그가 인기 없는 이유

    시맨틱 태그가 더 널리 사용되게 하기 위해서는 시맨틱 태그에도 기본적인 CSS 스타일이 있어야 합니다.

  • 이제서야 코틀린을 도입하게 된 이유

    코틀린의 좋은 문법, 그리고 안드로이드 스튜디오와 안드로이드 SDK의 훌륭한 코틀린 지원 기능으로 인해 코틀린을 선택하게 되었습니다. 이전에는 망설일 법한 부분도 있었지만, 이제는 아닙니다.

  • unittest vs pytest

    유명한 파이썬 테스팅 프레임워크인 unittest(유닛테스트)pytest(파이테스트)의 장단점을 비교합니다. pytest의 독특한 테스트 방식이 별로라면 unittest를, 간결하고 아름다운 테스트가 중요하다면 pytest를 사용하세요.