분류 전체보기(119)
-
REST Template의 Idempotent(멱등)
idempotent(멱등) 연산을 여러 번 적용하더라도 결과가 달라지지 않는 성질을 의미함. REST 서비스에서 idempotent란, 같은 요청을 여러 번 하더라도 그 결과가 매번 동일한 것을 의미함. 메서드 의미 idempotent POST Create X GET Select O PUT Update O DELETE Delete O idempotent한 것 a=4와 같은 명령은 반복적으로 수행해도 결과가 같음. 따라서 명령어 수행 과정에서 실패하더라도 반복적으로 a=4를 수행하면 됨 (= 실패시 트랜잭션 복구를 위해서 같은 명령어를 다시 실행하면 됨) 조회(Select), 기존의 상태를 새로운 상태로 변경(Update), 기존 상태를 삭제(Delete)하는 명령은 여러 번 수행해도 결과가 같음. ide..
2020.08.12 -
[이펙티브 자바] item 2 - 생성자에 매개변수가 많다면 빌더를 고려하라
Effective Java 3/E 백기선님의 이펙티브 자바 강의 백기선님의 이펙티브 자바 3판 요약 이펙티브 자바 한국어판 깃허브 저장소 정적 팩터리 메서드와 생성자는 선택적 매개변수가 많을 때 적절히 대응하기 어렵다는 공통점을 갖는다. 선택적 매개변수가 많을 때 활용할 수 있는 방법은 아래와 같다> 점층적 생성자 패턴(telescoping constructor pattern) 자바빈즈 패턴(JavaBeans pattern) 빌더 패턴(Builder pattern) 점층적 생성자 패턴(telescoping constructor pattern) 필수 매개변수만 받는 생성자, 필수 매개변수와 선택적 매개변수 1개를 받는 생성자, 필수 매개변수와 선택적 매개변수를 2개까지 받는 생성자, … 이러한 형태로 선택..
2020.08.10 -
[이펙티브 자바] item 1 - 생성자 대신 정적 팩터리 메서드를 고려하라
Effective Java 3/E 백기선님의 이펙티브 자바 강의 백기선님의 이펙티브 자바 3판 요약 이펙티브 자바 한국어판 깃허브 저장소 정적 팩터리 메서드 (static factory method) 클래스의 인스턴스를 반환하는 단순 정적 메서드. public 생성자를 사용해서 객체를 생성하는 방법 말고 public static 팩터리 메서드를 사용해서 해당 클래스의 인스턴스를 만드는 방법이 있다. 이러한 방법에는 아래와 같은 장단점이 있다. 장점 1. 이름을 가질 수 있다. public class Foo { String name; public Foo(String name) { this.name = name; } public static void main(String[] args) { Foo foo = ..
2020.08.08 -
[이펙티브 자바]
Effective Java 3/E 회사 선배에게 추천을 받아 이펙티브 자바 3판 공부를 시작하게 되었다. 난이도가 높아 이해하기 어려울 수 있다고 하셔서 다른 분들이 올린 강의와 요약 내용을 참조하려한다. 또한 입사 후 자바스크립트 위주로 개발을 해서 자바 개념을 거의 잊어버린 상태라, 개념들도 다시 정리할 겸 블로그에 올리면서 공부하려고 한다. 백기선님의 이펙티브 자바 강의 백기선님의 이펙티브 자바 3판 요약 이펙티브 자바 한국어판 깃허브 저장소 1장. 들어가기 자바 새로운 기능과 해당 기능이 도입된 자바 버전 기능 도입된 자바 버전 람다 자바 8 스트림 자바 8 옵셔널 자바 8 인터페이스의 디폴트 메서드 자바 8 try-with-resources 자바 7 @SafeVarargs 자바 7 모듈 자바 9..
2020.08.08 -
Selenium 개발도구 로그 숨기기
크롤러를 실행파일로 만들어 돌려봤는데 아래와 같은 로그들이 찍혔다. 크롬 드라이버가 연결 된 후 DevTools listening on ws://127.0.0.1:52387/devtools/browser/5ef24146-2d6c-43f2-a27c-5b8335a3efae urlopen하고난 후 [0624/094149.416:ERROR:ssl_client_socket_impl.cc(959)] handshake failed; returned -1, SSL error code 1, net_error -103 에러코드와 내용으로 검색해봤는데 동일한 증상을 겪는 사람들은 많으나, 해결방법은 없었다. ERROR 라는 이름으로 로그가 찍히지만 실제 프로그램 돌아가는데 문제가 없으니 로그를 숨기기로 했다. options..
2020.06.24 -
Window10에 PyInstaller Tar파일로 설치
회사 방화벽 문제로 인해 pip를 통한 설치가 안된다는것을 이미 알고있습니다. Tar파일로 설치해봅시다. 1. 파일 다운로드 PyInstaller: https://www.pyinstaller.org/ 공식 사이트에 들어가서 상단 Download를 누른 후 tar.gz 파일을 다운받습니다. 2. 압축 해제 다운로드가 끝나면, 다운받은 파일을 압축 해제 하고 Python이 설치된 경로 아래의 Lib/site-packages(python/Lib/site-packages)에 넣습니다. 저의 경우 C:\Users\사용자\AppData\Local\Programs\Python\Python38-32\Lib\site-packages에 넣었습니다. 3. 설치 C:\Users\사용자>cd C:\Users\사용자\AppDat..
2020.06.23 -
새 프로젝트에서 MobX를 사용해도 될까? Redux vs MobX
리액트는 State(상태) 관리 라이브러리를 사용해야 편하다. 이전 프로젝트에서는 Global State를 관리하기 위해 Redux를 사용하다가 신규 프로젝트에서는 MobX를 사용해보면 어떨까 검토하기 위해 두 라이브러리를 비교한 글들을 짜집기해봤다. Redux는 워낙 다양한 방식으로 구현하기 때문에 이전 프로젝트에 적용했던 것을 기준으로 작성했다. Redux Flux와 함수형 프로그래밍을 결합한 가장 많이 사용되는 상태 관리 솔루션. Mobx 애플리케이션 내에서 로컬 상태를 관리할 수 있는 상태 관리 솔루션. 1. 점유율(인지도) 2020.6.21 기준 구글 검색어 통계만 비교해보아도 Redux가 압도적임을 확인할 수 있다. JavaScript 2019 Survey 결과에서도 Redux를 사용해봤고, ..
2020.06.21 -
Windows10에 Selenium Tar파일로 설치
또 회사 방화벽문제로 인해 pip 설치가 안됩니다. Tar파일로 설치해봅시다. 1. 파일 다운로드 Selenium: https://pypi.org/project/selenium/ 공식 사이트에 들어가서 좌측 Download files를 누른 후 tar.gz 파일을 다운받습니다. 우측 상단을 초록색 박스에 Latest version이 보인다면 최신버전입니다. 구버전을 받고싶으시면 좌측 메뉴 증 Relase history에 들어가서 다운받으면 됩니다. 2. 압축 해제 다운로드가 끝나면, 다운받은 파일을 압축 해제 하고 Python이 설치된 경로 아래의 Lib/site-packages(python/Lib/site-packages)에 넣습니다. 저의 경우 C:\Users\사용자\AppData\Local\Prog..
2020.06.18 -
Windows10에 openPyXl Tar파일로 설치
BeautifulSoup4와 마찬가지로 방화벽문제로 인해 pip 설치가 안됩니다. Tar파일로 설치해봅시다. 1. 파일 다운로드 OpenPyXl: https://pypi.org/project/openpyxl/ 공식 사이트에 들어가서 좌측 Download files를 누른 후 tar.gz 파일을 다운받습니다. 우측 상단을 초록색 박스에 Latest version이 보인다면 최신버전입니다. 구버전을 받고싶으시면 좌측 메뉴 증 Relase history에 들어가서 다운받으면 됩니다. 2. 압축 해제 다운로드가 끝나면, 다운받은 파일을 압축 해제 하고 Python이 설치된 경로 아래의 Lib/site-packages(python/Lib/site-packages)에 넣습니다. 저의 경우 C:\Users\사용자\A..
2020.06.18 -
Windows10에 BeautifulSoup4 Tar파일로 설치
C:\Users\사용자>pip install BeautifulSoup4 Collecting BeautifulSoup4 WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1108)'))': /packages/66/25/ff030e2437265616a1e9b25ccc864e0371a0bc3adb7c..
2020.06.18