안녕세계
이번 포스팅에서는 MacOS에서 여러 Java 버전을 설치하는 방법을 알아봅니다. Python에 pyenv가 있다면, Java에는 jenv가 있습니다. 본 예제에서는 brew를 사용하여 AdoptOpenJDK와 jenv를 설치합니다. AdoptOpenJDK 설치 예제에서는 Java8과 Java11을 설치하겠습니다. (언제부턴가 brew에 cask 명령어가 사라지고 install의 --cask 옵션으로로 변경되었더군요 ㅎㅎ) $ brew install --cask adoptopenjdk/openjdk/adoptopenjdk8 $ brew install --cask adoptopenjdk/openjdk/adoptopenjdk11 jenv 설치 $ brew install jenv ~/.zshrc에 jenv 설..
지난 포스팅에 이어서 본 포스팅에서는 Java8에서 컬렉션 프레임워크에 추가된 함수형 인터페이스에 대해 알아봅니다. 인터페이스 메서드 설명 Collection boolean removeIf(Predicate filter) filter 조건의 element 제거 List void replaceAll(UnaryOperator operator) 모든 element를 operator 수행 결과로 반환 Iterable void forEach(Consumer action) 모든 element에 대해 action 수행 Map V compute(K key, BiFunction f) 특정 key에 대해 f 수행 V computeIfAbsent(K key, Function f) 특정 key가 없을 경우 f 수행 후 추가 ..
지난 포스팅에 이어서 본 포스팅에서는 Java8에 이미 정의된 함수형 인터페이스에 대해 알아봅니다. 함수형 인터페이스를 개발자가 직접 만들어서 사용할 수 있지만 항상 새로운 함수형 인터페이스를 정의하기보다는, 자주 쓰이는 형식의 인터페이스는 java.util.function 패키지에 이미 정의된 인터페이스를 사용하는 것을 권장합니다. 1. 기본 함수형 인터페이스 기본 함수형 인터페이스는 매개변수와 반환값에 유무에 따라 함수형 인터페이스 존재합니다. (T: 데이터 타입, R: 리턴 타입) 함수형 인터페이스 메서드 매개변수 반환값 java.lang.Runnable void run() X X Supplier T get() X O Consumer void accept(T t) O X Function R appl..
Java8에 추가된 람다식과 함수형 프로그래밍에대해 알아봅니다. Java8부터 람다식이 추가되면서 Java는 객체지향언어인 동시에 함수형 언어의 기능까지 갖추게 되었습니다. 함수형 언어라고 하면 처음엔 낯설고 어렵게 느껴질 수 있지만 조금만 살펴보면 금방 이해하실 수 있습니다 :) 그럼, 지금부터 람다와 함수형 인터페이스란 무엇인지 알아보겠습니다. ☺️ 1. 람다식이란? 람다식이란 이름이 어려워 보이지만 메서드를 하나의 식(expression)으로 표현한 것을 뜻합니다. 메서드를 람다식으로 표현하면 메서드 이름과 반환값이 없어서 익명 함수라고도 합니다. 람다식은 (1)메서드의 매개변수로 전달될 수 있으며 (2)메서드의 결과로 반환될 수 있습니다. 이러한 람다식 특징 덕분에 메서드를 변수처럼 다루는 것이 ..
Intellij를 사용할 때 내가 원하는 JDK를 바라보고 있지 않거나 찾을 수 없다고 나올 때가 있습니다. 이 경우 어떻게 Intellij에 내가 설치한 특정 JDK를 적용할 수 있는지 알아봅니다. 우선 Intellij를 실행하고 ⌘ + ; 를 눌러서 새로운 JDK 경로를 설정합니다. JDK home path가 알맞게 설정되었는지 확인하고 해당 JDK를 구별할 Name을 설정합니다. JDK 설정을 완료한 뒤 위에서 설정한 JDK로 Project SDK를 변경합니다. ✔︎ Note Intellij 프로젝트에서 JDK가 바뀌지 않으면 프로젝트에서 .idea 파일(Intellij 설정 파일)을 삭제합니다. 해당 파일을 삭제한 뒤 프로젝트를 다시 열면 JDK를 설정이 필요하다고 알림이 뜨면 원하는 JDK를 지..
OpenJDK는 다양한 Vendor에서 제공을 하고 있는데 이번 포스팅에서는 AdoptOpenJDK를 설치합니다. (homebrew를 사용하여 AdoptOpenJDK를 설치하는 방법은 다음 포스팅을 확인해주세요.) OpenJDK 설치를 위해 AdoptOpenJDK 사이트로 접속합니다. → https://adoptopenjdk.net/ AdoptOpenJDK AdoptOpenJDK provides prebuilt OpenJDK binaries from a fully open source set of build scripts and infrastructure. Supported platforms include Linux, macOS, Windows, ARM, Solaris, and AIX. adoptopen..
사용자로부터 입력받은 데이터를 파이썬에서 암호화하는 방법에 대해 알아봅니다.pycrypto 라이브러리를 fork하여 개선한 pycryptodome 또는 pycryptodomex를 사용하는 것을 권장합니다. pycryptodome- pycrypto를 대체하기 위해 개선된 라이브러리로 기존 코드와 호환됩니다.$ pip install pycryptodome pycryptodomex- pycrypto와 독립적인 완전히 새로운 라이브러리입니다.$ pip install pycryptodomex Sample Codeimport base64 import hashlib from Cryptodome import Random from Cryptodome.Cipher import AES from django.conf impo..
파이썬 requests 라이브러리를 사용하여 HTTP 요청을 하는 방법에 대해 알아봅니다.$ pip install requests 기본 사용법import requests url = 'https://www.google.com/ res = requests.get(url) res.status_code res.text get 요청과 query parameter 전달import requets params = {'param1': 'value1', 'param2': 'value'} res = requests.get(URL, params=params) post 요청과 body data 전달(1)import requests data = {'param1': 'value1', 'param2': 'value'} res = r..