이 글을 구글링해서 찾을 정도라면 Proxy가 뭔지 어느정도 이해하고 있을 것으로 생각한다. 혹시 Proxy가 뭔지 모르는 사람은 여기를 참고하자. 외부 repo 접근이 proxy로 인해 자유롭지 못할 경우에 꼭 설정해줘야만 한다. 나는 주로 엔터프라이즈 환경 (ex: 회사에서 개발할 때) proxy 문제를 겪는다. 1. YUMsudo vi /etc/yum.conf # 맨 밑에 아래 내용을 추가한다. proxy={{YOUR_PROXY_SERVER}} proxy_username={{USER_NAME}} proxy_password={{PASSWORD}} 2. WGETsudo vi ~/.wgetrc # 맨 밑에 아래 내용을 추가한다. http_proxy={{YOUR_PROXY_SERVER}} proxy_use..
CentOS7 서버에 nginx 관련 세팅을 하다가 아래와 같은 오류 메시지를 발견했다. 오류가 나면서 configure reload, restart, start가 안된다. "/usr/lib64/nginx/modules/ngx_http_geoip_module.so" version 1012002 instead of 1014000 in /usr/share/nginx/modules/mod-http-geoip.conf:1 구글링을 좀 해보니, nginx를 official repository에서 설치하지 않고, epel에서 설치하면 이런 버전 충돌이 발생한다고 한다. RedHat 계열 Linux에는 nginx가 포함되어 있지 않아서, 대충 깔았던게 화근이 되었다. epel에는 너무 오래된 버전만 있나보다. 어쨌든..
부제: Node.js Nosql 연동법. Node.js의 mongodb모듈을 활용하여 mongodb를 연동하는 도중 라는 오류를 마주쳤다. 한참을 헤맨 끝에 간단히 해결되었지만, 나같은 고민을 하는 사람들이 더 쉽게 고민을 해결했으면 하는 마음에 삽질로그를 남긴다. 먼저, 내가 간단하게 만들어본 프로그램은 화면에서 id와 password를 입력받아 DB에 존재하는지 검증하고, 로그인 성공여부를 보여주는 기능을 한다. db연동은 아래와 같이 했다. 먼저 DB연결하는 function이다. // // 기본 모듈 선언 및 미들웨어 선언 생략 var MongoClient = require('mongodb').MongoClient; var db; // 연결 받아올 변수(중요) function connectDB() ..
Spring Boot를 활용하여 Restful 서버 개발을 하다보면, 다른 API를 호출할 일이 종종 생기는데, RestTemplete을 활용하면 좋다고한다. 나는 GPS 좌표(경도, 위도)를 파라미터로 하여 호출할 경우, 주소(도로명 및 지번주소)를 돌려주는 API를 활용하기로 했다. https://developers.naver.com 에서 위 그림과 같은 명세를 찾을 수 있다. (다른 API를 활용하는 경우에도 참고하길 바란다.) 나같은 경우, 안내된 URL로 GET요청을 날려야 했는데 NAVER에서 제공하는 JAVA 예제는 너무 길고 불편했다. 그래서 RestTemplete를 활용하기로 했는데, 구글링하면 대체로 getForObject, getForEntity를 활용하는 방법을 소개한다. 아래의 소..
부제: hibernate auto reconnect, spring boot JPA reconnect, org.hibernate.exception.jdbcconnectionexception could not prepare statement 문제 해결 Spring Boot + JPA + Hibernate로 MySQL을 연동하여 웹 앱을 구현했는데, 아래와 같은 문제가 발생했다. 구글링을 해보니, Mysql의 Connection Pipe(?)가 끊어진 것이다. 쉽게 말하면 연결을 잃어버린 것인데, Mysql의 경우 8시간 이상 요청이 없으면 연결을 끊어버린다고 한다. 내 앱을 쓰는 사람이 많은 것도 아니고, 밤에 자고 일어나는 것 감안하면 8시간은 너무 짧았다. 대책이 필요하다고 생각하여, 방법을 찾아봤는데 ..
부제: Excutable JAR AutoConfiguration 문제 해결, Spring boot JAR 배포, Spring boot 원격 서버에 배포하기 Spring boot가 기존의 Spring에 비해 편리한 점은 꽤 많을 것이다. 그 중에서도 대표적인 것 하나를 꼽으라면 실행가능한 JAR(Executable JAR)라고 할 수 있다. Maven, Gradle등의 dependency tool을 이용하여 WAR파일을 생성한 후(build) tomcat과 같은 WAS에 배포하여 웹 애플리케이션을 구동하는 것이 기존의 Spring이었다. 반면에 Spring boot는 JAR파일에 내장 톰캣이 존재하여, JAR파일을 빌드하고 단순히 실행하는 것만으로 웹 애플리케이션 구동이 가능하다. ▶ JAR의 사전 속 의..
이런 간단한 문제로 며칠을 헤맸다는 사실이 매우 창피하지만, 같은 실수를 반복하지 않기 위해 삽질로그를 남긴다. Spring boot & thymeleaf로 다중 파일업로드를 처리하려면, 몇가지 간단한 절차만 수행하면된다. 1. .properties 설정 2. html 개발 3. java 개발 1. .properties 설정 설정을 하지 않아도 상관 없지만, application.properties 파일을 열어 아래와 같이 추가해주면 좋다. multipart.maxFileSize=5MB multipart.maxRequestSize=5MB 최대 허용 파일 크기를 5MB로 넉넉하게 잡은 것이다. Default값은 1MB이다. 2. html 개발 (화면 개발) 태그를 이용하여 개발하면 된다. 다중 파일업로드를..
Spring Boot에서 Mockmvc를 활용하여 단위테스트를 수행하는 도중.. JUnit을 만들고나서 난관에 봉착했다. (참고: 인텔리J에서 JUnit생성하는 법) 분명히 의존성 추가도 잘했는데.. @SpringApplicationConfiguration 어노테이션을 인식하지 못하는 것.. 아래 그림을 참고하면 된다. 한참을 구글을 찾아 헤매다가 해답을 발견한 것이.. Spring Boot 1.4부터 등장한 @SpringBootTest 어노테이션이다. 벌써 결론부터 내버렸지만, 좀 더 자세히 설명을 하자면... 123456@RunWith(SpringJunit4ClassRunner.class)@SpringApplicationConfiguration(TestApp.class)@IntegrationTestp..
부제: 인텔리J로 properties파일 인코딩 바꾸는 법, 인텔리J 한글 깨짐 현상 해결 오늘도 Spring boot 실습 도중.. i18n 한번 먹여보겠다고 과감하게 properties파일 생성.. (얼마나 대단한 세계적 웹페이지를 만드려고..........) ▶ 여기까지는 순조로웠었는데.. 문제는 messages_ko.properties에 지정한 한글메시지들이 마구 깨지기 시작했다. 본능적으로 Encoding문제일 것이라고 직감했다. 혼자 낑낑대지 않고 과감히 구글링해서 방법 GET 위와 같이, Setting > Editor > File Encodings에서 properties가 저장된 경로를 찾아, 붉은색 표시를 한 곳을 UTF-8로 바꿔주면 된다. 생각보다 간단하게 해결되었다. (1시간 반을 해..
Springboot 책보면서 따라하다가.. (인텔리J 사용) Gradle에 새로운 dependency를 추가하고자 build.gradle에 compile('org.springframework.boot:spring-boot-starter-thymeleaf')compile('org.springframework.boot:spring-boot-starter-social-twitter') 라고 작성. 하지만 적용이 안된다.build하고 compile하고 쌩쇼를 하다가 구글링.. 결국 Refresh를 하라는 답변을 발견.근데 IntelliJ에서 그 기능을 못찾음. 그러다가 우연히 우측 하단에 Gradle 메뉴 발견! Gradle -> 프로젝트 우클릭 -> Refresh external project로 간단하게 해결..