본문 바로가기

포스트464

[Python] 파이썬 requests 를 이용해서 REST API 호출하기 requests는 파이썬으로 REST API를 호출하는 프로그램을 작성할 때 가장 많이 사용되는 라이브러리다. requests 설치 requests가 설치되어 있지 않다면 파이썬의 패키지 매니저인 pip를 이용해서 설치할 수 있다. $ pip install requests 혹은 $ pip3 install requests 설치가 잘 되었는지 확인해보기 위해 파이썬을 인터프리터 모드로 실행해서 requests 라이브러리를 사용해보자. $ python Python 3.6.8 (default, Nov 16 2020, 16:55:22) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux Type "help", "copyright", "credits" or "license" fo.. 2022. 5. 4.
[Windows] 윈도우에서 WSL2 리눅스 파일 접근하는 방법 윈도우에서 WSL2 리눅스 파일 시스템에 접근하는 방법을 알아둘 필요가 있다. 가끔씩 윈도우에 설치된 프로그램이나 파일탐색기를 이용해 WSL2 파일 시스템에 접근하는 경우가 있기 때문이다. 윈도우에서 WSL2 리눅스 파일 시스템에 접근하려면 \\wsl$ 경로를 사용하면 된다. WSL2가 구동되어 있는 상황에서 \\wsl$ 라는 경로를 파일 탐색기의 주소창에 입력하면 네트워크 항목에서 설치된 WSL을 찾아볼 수 있다. 원하는 리눅스 배포판을 선택하면 그 리눅스의 루트 디렉토리부터 파일을 브라우징할 수 있다. 단순히 파일 탐색기에서만 지원되는 것은 아니고, Visual Studio Code에서 WSL2 내부에 있는 파일을 편집하고자 하는 경우 등 윈도우 애플리케이션이 WSL 파일을 수정하게 할 수 도 있다. 2022. 5. 3.
[Linux] numfmt 명령어 사용법 리눅스에서 쉘 스크립트를 작성할 때, 파일 사이즈 같은 숫자 데이터를 다루는 경우가 많다. 이 때, 숫자의 자리수가 많으면 가독성이 매우 떨어진다. 예를 들어 13631488 바이트라고 하면 정확히 어느정도의 양인지 딱 와닿지 않는다. 13MB라고 단위를 뒤쪽에 써줘야 숫자에 대한 감이 온다. numfmt 명령어 numfmt 명령어는 숫자를 사람이 읽을 수 있는 문자 형태로 변환해주는 명령어다. numfmt [OPTION] ... [NUMBER] 1MB 같은 문자가 몇 바이트인지 숫자로 풀어서 출력해주거나 1048567 바이트가 몇 MB인지 해석해서 출력해주는 기능을 제공한다. 예를 들어 $ numfmt --from=si 1M # 1M를 si 단위로 풀어서 출력 1000000 $ numfmt --from.. 2022. 5. 2.
[Java] synchronized 키워드 -고유락(Intrinsic Lock) 자바는 멀티스레드 환경에서 동기화를 지원하기 위해 가장 기초적인 장치인 '고유락(Intrinsic Lock)'을 지원한다.(고유락은 모니터락(Monitor lock) 혹은 모니터(monitor)라고 부르기도 한다) 개발자는 synchronized 키워드를 이용해서 특정 객체의 고유락을 사용해 여러 스레드를 동기화 시킬 수 있다. Java의 synchronized 자바의 synchronized 블럭은 다음과 같이 생겼다. synchronized(obj) { // critical section } synchronized 블럭은 객체를 필요로 한다. 동일한 객체에 대해서 synchronized 블록을 사용하는 두 스레드는 한 번에 하나의 스레드만 synchronized 블록 내부로 들어갈 수 있다. 자바에서 .. 2022. 4. 7.
[Java] 스레드 안전성(Thread Safety) 이전 포스트에서 자바는 멀티 스레드를 지원하여 여러 작업들을 동시에 실행할 수 있다고 했다. (링크 : [Java] 자바 병렬 프로그래밍 - 멀티 스레드의 장단점) 요즘 출시되는 CPU들은 기본적으로 여러개의 코어를 탑재하고 있다. 따라서 멀티 스레드들은 동시에 다른 코어에서 병렬적으로 실행될 수 있다. 문제는 이 스레드들이 동시에 같은 데이터에 접근할 때 발생한다. 스레드 안전(Thread-Safe) 조금 따분한 주제일 수도 있지만 '스레드 안전(Thread-safe)'에 대해서 정리를 하고 넘어가야 한다. 자바 클래스는 어떻게 동작해야하는지에 대한 '클래스 명세(Class Specification)'를 가지고 있다. 잘 정의된 클래스 명세는 객체의 상태를 제약하는 '불변조건(Invariants)'와 .. 2022. 3. 31.
[Linux] find 명령어 사용법 find 명령어는 리눅스에서 파일이나 디렉토리를 검색할 때 사용하는 명령어다. 리눅스 파일 시스템에 있는 다양한 형태의 파일과 디렉토리들을 검색할 수 있도록 find 명령어는 굉장히 많은 옵션과 기능을 제공한다. 파일 시스템의 트리 구조를 탐색하면서 원하는 종류의 파일들을 탐색할 수 있으며, 그 결과를 명령어 파이프라인을 이용해서 다른 명령어의 인자로 넣어 다양한 종류의 작업을 할 수 있다. 예를 들어 생성된지 30일이 지난 파일을 삭제하는 명령을 find 명령어를 통해 실행할 수 있다. find 명령어 사용법 find 명령어는 옵션과 찾을 경로, expression으로 구성된다. find [options] [path] [expression] option과 expression은 선택적으로 사용할 수 있다.. 2022. 3. 22.
[Java] 자바 병렬 프로그래밍 - 멀티 스레드의 장단점 복잡한 프로그램이 제대로 동작하도록 코드를 작성하는 일은 어렵다. 하지만 그 복잡한 프로그램이 빠르면서 제대로 동작하도록 작성하는 것은 더욱 어렵다. 즉, 어떤 작업들을 순차적으로 실행하는 프로그램보다 동시에 여러 작업들이 수행되도록 프로그램을 작성하는 것은 더욱 어렵다. 자바에서는 스레드를 이용해 프로그램의 여러 작업들을 동시에 실행하도록 해준다. 하나의 자바 프로그램에서 여러 스레드가 동작한다는 의미는 하나의 자바 프로그램이 여러 개의 프로세서를 활용해 최대한 성능을 끌어올린다는 것을 의미한다. 잘 알려져 있듯이 CPU의 성능을 향상시키기 위해 클럭 속도를 빠르게 올리는 방향에서 코어의 개수가 늘어나는 방향으로 전환되었다. 클럭 주파수를 끝없이 올리기엔 물리적인 한계가 있기 때문이다. CPU 코어의 .. 2022. 3. 15.
iOS 앱 개발환경 세팅 - Xcode 설치하기 아이폰이나 아이패드에서 동작하는 앱을 개발하기 위해서 가장 먼저 해야 할 일은 개발환경을 세팅하는 것이다. iOS 앱은 Xcode라는 프로그램을 이용해서 개발할 수 있다. 물론 JetBrain에서 만들고 있는 AppCode를 사용해도 되지만 비싸기 때문에 기업에서 상용앱을 개발하는게 아니라면 개인은 Xcode를 사용하는게 일반적이다. Xcode 다운로드 Xcode를 다운로드할 수 있는 가장 간단한 방법은 Apple AppStore를 통하는 것이다. 앱 스토어에서 Xcode를 검색하면 결과로 나오는데, '받기' 버튼을 누르면 '설치' 버튼으로 바뀐다. 설치 버튼을 눌러서 Xcode 설치를 진행한다. Xcode 앱이 12GB 정도되기 때문에 다운로드 및 설치에 한참 걸린다. 인내심을 가지고 기다리자. 한참 .. 2022. 3. 13.
[Hadoop] Windows 환경에서 IOException 발생 케이스 - winutils.exe 파일 없음 윈도우 환경에서 Hadoop이나 HBase, Spark를 사용할 때 다음 에러를 만나게 되는 경우가 있다. 21:49:57.792 [main] ERROR org.apache.hadoop.util.Shell - Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:382) ~[hadoop-common-2.7.4.jar:?] at org.apache.hadoop.util... 2022. 3. 5.