이번에는 Java8부터 지원하는 Optional 클래스에 대해 알아보도록 하겠습니다. 1. Optional이란? Optional 개념 및 사용법 [ NPE(NullPointerException) 이란? ] 개발을 할 때 가장 많이 발생하는 예외 중 하나가 바로 NPE(NullPointerException)이다. NPE를 피하려면 null 여부를 검사해야 하는데, null 검사를 해야하는 변수가 많은 경우 코드가 복잡해지고 번거롭다. 그래서 null 대신 초기값을 사용하길 권장하기도 한다. List names = getNames(); names.sort(); // names가 null이라면 NPE가 발생함 List names = getNames(); // NPE를 방지하기 위해 null 검사를 해야함 if..
1. 캐시(Cache)란? [ Cache ] Cache란 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 아래와 같은 저장공간 계층 구조에서 확인할 수 있듯이, 캐시는 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공한다. Cache는 아래와 같은 경우에 사용을 고려하면 좋다. 접근 시간에 비히 원래 데이터를 접근하는 시간이 오래 걸리는 경우(서버의 균일한 API 데이터) 반복적으로 동일한 결과를 돌려주는 경우(이미지나 썸네일 등) Cache에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다. 결국 Cache란 반복적으로 데이터를 불러오는 경우에, 지속적으로 DBMS 혹은 서버에 요청하는 것이 아니라 Memory에 데이터를 저장하였다..
1. 윈도우 명령어 모음 [ 프로세스 확인 및 죽이기 ] 프로세스 확인: netstat -a -o 프로세스 죽이기: taskkill /f /pid {PID 번호} 2. 리눅스 명령어 모음 [ 사용중인 포트 확인 ] 포트 확인: netstat -tulpn | grep LISTEN [ 특정 프로세스 죽이기 ] 프로세스 죽이기: ps -ef | grep {프로세스 이름} | awk '{print $2}' | xargs kill -9 ex) ps -ef | grep logstash | awk '{print $2}' | xargs kill -9 [ 모든 프로세스 죽이기 ] 프로세스 죽이기: ps x | awk {'print $1'} | xargs kill [ VI에서 정규식으로 텍스트 찾기 ] ?검색어 입력 후 ..
1. Fitbit 소개 [ Fitbit 소개 ] Fitbit이란?: 걸음수뿐만 아니라 이동거리, 칼로리 소모량 등 기본적인 활동에서부터 다양한 운동까지 모니터링하는 피트니스 파트너 Fitbit 탄생: 2007년 무선 센서기술이 우리의 건강 및 피트니스에 엄청난 영향을 미칠 수 있는 수준까지 발전했음을 깨닫고, 사람들의 활동 방식에 획기적인 변화를 가져다 줄 웨어러블 제품 개발 시작 Fitbit 목표: 재미있고 의욕을 북돋아주는 제품을 제작하여 건강한 라이프스타일 장려 Fitbit 사명: 모두가 건강하고 활동적인 삶을 살 수 있도록 동기를 부여하고 의욕을 복돋아주는 것 [ Fitbit 기능 ] 모니터링 기능: 활동량, 운동, 몸무게, 수면등을 모니터링하여 24시간 실시간 정보를 제공한다. 동기화: 활동 데..
오늘 읽고 설명할할 논문은 Deep Reinforcement Learning with Double Q-learning입니다. 이 논문의 선행 논문은 Playing Atari with Deep Reinforcement Learning 입니다. 이 논문을 읽지 않았다면 여기에서 참고하세요! 0. Abstract [ Abstract ] 기존의 Q-Learning Algorithm은 특정 조건에서 action-value를 Overestimate(과평가)한다. => 보상받을 값에 따라서 다음 행동이 결정되는데, 잘못된 행동에 대한 action-value값이 과평가되면 잘못된 방향으로 학습이 진행될 수 있다. 기존의 Q-Learning은 이러한 overestimation때문에 몇몇 게임에서 좋은 성능을 보이지를 못..