Spring Boot를 활용하여 Restful 서버 개발을 하다보면, 다른 API를 호출할 일이 종종 생기는데, RestTemplete을 활용하면 좋다고한다. 나는 GPS 좌표(경도, 위도)를 파라미터로 하여 호출할 경우, 주소(도로명 및 지번주소)를 돌려주는 API를 활용하기로 했다. https://developers.naver.com 에서 위 그림과 같은 명세를 찾을 수 있다. (다른 API를 활용하는 경우에도 참고하길 바란다.) 나같은 경우, 안내된 URL로 GET요청을 날려야 했는데 NAVER에서 제공하는 JAVA 예제는 너무 길고 불편했다. 그래서 RestTemplete를 활용하기로 했는데, 구글링하면 대체로 getForObject, getForEntity를 활용하는 방법을 소개한다. 아래의 소..
Iaas: Infrastructure as a Service 서버, 스토리지, 네트워크를 가상화 환경으로 만들어, 필요에 따라 인프라 자원을 사용할 수 있게 서비스를 제공하는 형태. 이해하기 편하게 설명하자면, 컴퓨터의 하드웨어를 가상화 환경에서 제공하는 것이라고 보면 된다. IaaS를 사용하는 개발자는, OS 설치부터 각종 서버 환경을 직접 세팅하는 고통을 겪어야 해야한다. (예: AWS EC2) ▶ IaaS, PaaS, SaaS를 도식화하여 비교한 자료. PaaS: Platform as a Service 애플리케이션이나 서비스가 동작할 수 있는 환경을 제공하는 형태. IaaS에서 '동작환경세팅'이 이루어진 형태이며, SaaS의 개념을 개발플랫폼에도 확장한 것이다. 애플리케이션의 시작을 위한 복잡한 환..
부제: 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시간은 너무 짧았다. 대책이 필요하다고 생각하여, 방법을 찾아봤는데 ..
사진 관련 웹 애플리케이션을 개발하다보니, 썸네일처리를 신경쓸 수밖에 없었다. 조금 고민을 해보니 썸네일 처리는 결국 두가지의 큰 흐름으로 나뉘게 된다. 그것은 바로.. 미리미리 vs 그때그때 여기서 '미리미리'라 함은, 사진을 최초 업로드할 때 썸네일을 생성하여 같이 S3서버에 저장하는 방식을 의미한다. 반면, '그때그때'는 이미지 조회를 요청할 때마다 썸네일을 생성하여 응답으로 돌려주는 방식을 의미한다. ▶ 구글에서 발표한 이미지 리사이징 라이브러리 SKIA. C/C++과 Python버전만 있어서 사용은 못해봤다. 나는 깊은 고민을 하지 않고 '그때그때' 썸네일을 생성하려고 했는데 자칫 위험할 수 있는 행동이었던 것 같다. 그래서 '미리미리'와 '그때그때'의 장점을 한번 정리해봤다. '미리미리'의 장..
부제: 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의 사전 속 의..
시리즈 바로가기 링크아마존 웹 서비스(AWS) EC2 생성과 기본환경 구축 - 1. 인스턴스 생성아마존 웹 서비스(AWS) EC2 생성과 기본환경 구축 - 2. IP할당 및 접속 지난 포스팅에 이어, 아마존 웹 서비스(AWS) EC2 인스턴스 생성과 기본환경 구축을 계속하도록 하겠다. 지난 번에 접속까지 성공했으니, 이번에는 설치 위주로 진행될 것이다. 이번 포스팅에서 설치할 유틸들은 - JAVA 1.8- Mysql- nginx- Tomcat8 등이다. 본인이 원하는 것이 더 있다면, 이 포스팅의 내용과 상관없이 진행해도 무관하다. 1. Root Password 설정 우리는 ec2-user라는 계정으로 접속한 상태이다. root계정의 비밀번호를 설정해보자. 아래와 같이 명령어를 입력하고 진행하면 된다. ..
시리즈 바로가기 링크아마존 웹 서비스(AWS) EC2 생성과 기본환경 구축 - 1. 인스턴스 생성아마존 웹 서비스(AWS) EC2 생성과 기본환경 구축 - 3. 서버환경구축 지난 포스팅에 이어, 아마존 웹 서비스(AWS) EC2 생성 및 환경 구축을 진행하도록 하겠다. 가장 먼저 고정 IP를 할당하도록 하겠다. EC2 Sevice 메뉴의 좌측을 살펴보면, Elastic IPs가 있다. 이를 클릭하여 아래 그림과 같이 진행한다. EC2 Instance에는 어차피 public IP가 할당되므로 고정 IP할당은 필요 없다고 생각할 수도 있다. 하지만 public IP는 Instance가 재기동 될때마다 계속 바뀐다. 그래서 불편을 초래할 수 있으므로 고정 IP를 생성 및 할당하는 것이다. 여기서 유의해야할 점..
시리즈 바로가기 링크아마존 웹 서비스(AWS) EC2 생성과 기본환경 구축 - 2. IP할당 및 접속 출처아마존 웹 서비스(AWS) EC2 생성과 기본환경 구축 - 3. 서버환경구축 최근 아마존 웹 서비스(AWS)의 EC2를 기반으로 한 웹 애플리케이션 구축에 한창이다. 필자 또한 AWS가 매우 생소해서, 인스턴스를 없앴다 만들었다를 반복하다가 이번에 새로 만드는 김에 포스팅을 같이 해보려고 한다. 먼저 AWS에 가입을 해야한다. AWS를 가입하는 것은 다른 포스팅을 참고하도록 하자 (링크: http://preamtree.tistory.com/57) 1. EC2 인스턴스 생성 AWS Services 페이지에서 EC2를 찾아 클릭한다. 그러면 Launch Instance라는 버튼을 쉽게 찾을 수 있는데, ..
AWS를 활용하여 웹 어플리케이션을 만들어보겠다는 도전은 사실 지난달(5월)초에 시작했다. 그리고 현재 어느정도 prototype이 거의 완성된 상황이다. 비루한 개발실력으로 말미암아.. 이리 헤매고 저리 헤매다가 겨우 누더기 같은 소스코드를 덕지덕지 이어붙여 모래성을 쌓은 느낌이다. 이번 개발일지에서는 내가 어떤 계기로 웹 어플리케이션을 만들게 되었으며, 요구사항들을 해결하기 위해 어떻게 아키택처를 구성했는지 간단하게 기록하려고 한다. 만들게 된 계기 (아이디어) 엄청난 발명품의 영감은 항상 작은 것에서 나온다고 하던데, 어쩌면 이것도 해당될지도 모른다. 여자친구와 사귀는 시간이 점점 길어지면서, 여자친구와 함께 찍은 사진을 보관하는 것이 골칫거리가 되었다. 카카오톡은 대화형 UI라 사진보관이 불편하고..
부제: IntelliJ에 JRebel 설치하기, IntelliJ에 JRebel 적용하기 웹 어플리케이션을 개발할 때, Local WAS와 웹서버에 배포할 때 불편한 점이 있다. 내가 수정한 소스코드가 브라우저에 반영된 모습을 보려면 빌드와 배포, WAS 재기동을 꼭 해줘야한다는 것! IDE설정으로 이를 해결할 수 있지만, 프론트엔드 쪽에만 한정되어 적용되는 경우가 많다. (사실, 프론트엔드의 수정사항을 즉각 반영해야할 상황이 백앤드에 비해 훨씬 많기는 하다.) 상용 툴이긴 하지만, JRebel을 활용하면 아주 간편하게 소스코드 수정사항을 서버에 즉각 반영할 수 있다. 1. JRebel 사이트에 접속한다. ( https://my.jrebel.com/ ) 2. 페이스북, 트위터 로그인을 활용하거나 회원가입을..