일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 알고리즘
- 백준
- 카프카
- 자료구조
- Spring Data JPA
- Spring Boot
- 코드업
- 오일러프로젝트
- 로드밸런서
- DFS
- springboot
- Kafka
- Apache Kafka
- aws
- JPA
- 클라우드
- 스프링부트
- 스프링
- Spring
- 클라우드 컴퓨팅
- 백트래킹
- 인천여행
- Docker
- 프로그래밍문제
- 월미도
- Elasticsearch
- 쿠버네티스
- 스프링 부트
- gcp
- VPC
- Today
- Total
목록분류 전체보기 (120)
GW LABS
PHP를 사용하는 서버에 접속자 IP를 알아내는 방법은 $_SERVER에 있는 IP 정보를 활용하는 것이다. 문제는 서버에 L4나 방화벽같은 장비가 붙어있을 경우 $_SERVER["HTTP_CLIENT_IP"]로 접속자의 IP를 알아낼 수 없을 경우가 있다. 이런 경우를 대비해서 PHP $_SERVER 변수의 다른 IP 정보들을 활용하면 접속자 IP 정보를 알아낼 수 있다. function get_client_ip_server() { $ipaddress = ''; if ($_SERVER['HTTP_CLIENT_IP']){ $ipaddress = $_SERVER['HTTP_CLIENT_IP']; } else if($_SERVER['HTTP_X_FORWARDED_FOR']) { $ipaddress = $_S..
WSL WSL은 윈도우에서 최소한의 가상머신으로 리눅스 개발환경을 사용할 수 있게 만든 기능이다. 기존의 가상머신을 사용한 리눅스개발환경보다 가볍고, 윈도우 이외의 별도의 환경이 필요하지 않다는 장점이 있다. 그러나 아직 제한사항이 많아 운영환경으로 사용하면 안되고, 개발환경으로만 사용하는 추세이다. WSL Native Docker WSL에서도 Docker를 Native 환경에서 사용할 수 있다. 아래의 명령어로 Docker 17.09 버전을 설치하고 활용하면 된다. sudo apt update sudo apt upgrade # Docker 17.09 버전 다운로드 wget https://download.docker.com/linux/debian/dists/stretch/pool/stable/amd64/..
Docker 이미지를 관리하는 툴에는 Docker Registry가 있다. Docker Registry에 빌드한 Docker 이미지를 업로드하고 공유할 수 있고, 이에 따른 버전관리도 가능하다. 그러나 이러한 Docker Registry를 사용할 수 없는 환경이라면 수동으로 빌드한 이미지를 배포해야 한다. 본 포스트에서는 수동으로 Docker 이미지를 저장하고 배포하는 방법을 공유하려고 한다. Docker Registry에 대해서는 차후에 공부하여 정리할 예정이다. Docker 이미지 수동배포 프로세스는 간단하다. 단순히 빌드한 이미지를 tar파일로 저장해서 ftp 등으로 배포하고 싶은 머신으로 옮긴 후에 압축을 푸는 방식이다. 1. Docker 이미지 수동저장 docker save | gzip > .t..
그 동안 머신러닝을 공부해온 지식들을 바탕으로 '에너지 빅데이터 활용 데이터 사이언스 대회'에 참가했다. 대회 문제는 인천 지역의 상가 및 주택들의 시간별 전기 사용량 데이터들이 주어지고, 이를 활용해 미래의 전기 사용량을 예측하는 전형적인 시계열 데이터 문제였다. 대회결과는 private score 37위를 달성했다. 실험해 볼 아이디어들이 많이 남아있는 상태에서 시간관리를 하지 못한 부분이 많이 아쉬움이 남지만, 대회를 통해서 값진 노하우들을 얻을 수 있었다. 사용했던 코드를 업로드하니, 데이터 사이언스 대회에 참가하려는 독자 여러분께 도움이 되었으면 한다. 1. 문제이해 시계열 데이터를 이용한 예축 문제의 경우 전형적인 회귀문제이다. 그런데 주어지는 변수는 시간과 시간에 따른 타깃 값밖에 없다. 전..
WAS에서 작동시켜야 하는 데몬이나 스케줄러 같은 프로그램들이 메모리 누수를 발생시키면 정말 골치 아파진다. 프로그래머가 가비지 컬렉터만 믿고 있었면 안 된다는 사실을 뼈저리게 느끼고 있다. 최근 php로 작성한 스케줄러가 미약한 메모리 누수를 발생시키고 있어 다양한 디버깅 기법을 찾아봤다. 리눅스 환경이라면 시스템 콜을 추적할 수 있는 Strace와 프로그램의 메모리 사용을 볼 수 있는 Valgrind를 통해 프로그램을 깊이 들여다볼 수 있다. 좋은 디버깅 툴을 사용해서 미연에 메모리 누수를 방지하자. 1. 메모리 누수 상황 #include using namespace std; class LeakMaker { private: const int data; public: LeakMaker(int a) : ..
코딩 인터뷰 문제를 풀면서 테스트 케이스는 통과해도, 시간 초과로 통과하지 못해 좌절해본 경험이 있는가? 어떻게든 실행시간을 줄여보려고 코드를 튜닝하지만 제한된 시간의 압박과 초조함이 코드를 더 엉망으로 만든다. 코드를 쓰기 전에 내 알고리즘의 성능을 대략적으로 판단할 수 있다면 이런 불상사를 막을 수 있을 것이다. 이번 포스팅에서는 시간 복잡도를 빠르게 판단할 수 있는 방법을 정리한다. 순서대로 내 알고리즘에 적용해보자. 1. 반복문 가장 먼저 봐야할 부분은 반복문이다. 반복문이 몇 번 중첩되어 있는지부터 확인해보자. 중첩되어 있지 않은 반복문은 심플하게 N회를 순회하니까 O(N)이라고 판단할 수 있을 것이다. N번을 반복하는 반복문이 한 번 중첩되어 있다면 N * N회, O(N^2)이라고 판단할 수 ..
개론 Tensorflow 모델을 안드로이드에서 고속으로 추론결과를 내기위해 2개월간 삽질했던 기록들을 남긴다. 너무 오래동안 안드로이드에서 머신러닝 프레임워크들을 빌드시키려고 시간을 많이 소모했다. 머신러닝 부분에서는 이론을 공부할 것도 많이 남아있고, 자료구조와 알고리즘의 기초들도 공부해야하니 해당 프로젝트는 보류하기로 결정했다. 과정 1. Tensorflow Fast-style Transfer 모델을 Tensorflow-lite 모델로 변환. 2. 안드로이드에서 Tensorflow-lite 라이브러리 포함. 3. 1번 과정에서 변환한 Tensorflow-lite 모델 로드. => 오류발생! 원인 1. 아직 못찾고 있음. lldb 디버거로 system call, libtensorflowlite_jni...
신입 개발자로 취업해서 2년차가 되었다. 아직 실력이 많이 부족하다고 느끼고, 회사 업무 이외에도 공부와 사이드 프로젝트를 하기로 마음먹었는데 실천이 목표한 것만큼 이루어진 것 같진 않다. 언제나 계획은 거창하고 실천력, 체력은 저하되는 느낌이다. 벌써 1월 중순을 지나고 있는 이 시점에, 늦었지만 회고와 생각의 정리를 통해 목표를 명확히 하는 것이 필요하다고 느꼈다. 적어가보자. 1. 회사 업무에서의 성과 - 자신의 주업무와 유관부서의 프로세스 파악 - PHP 웹 개발 다수 - Java 백 프로세스 유지보수 - CentOS Docker 인프라 구성 - Redis 인프라 구성 - RSS 데이터 제공 및 고객 대응 경험 2. 스터디 성과 - 데이콘 부동산 가격 예측 61위 - 19. 01. 13 일 기준 ..