AWS를 활용하여 웹 어플리케이션을 만들어보겠다는 도전은 사실 지난달(5월)초에 시작했다. 그리고 현재 어느정도 prototype이 거의 완성된 상황이다. 비루한 개발실력으로 말미암아.. 이리 헤매고 저리 헤매다가 겨우 누더기 같은 소스코드를 덕지덕지 이어붙여 모래성을 쌓은 느낌이다. 이번 개발일지에서는 내가 어떤 계기로 웹 어플리케이션을 만들게 되었으며, 요구사항들을 해결하기 위해 어떻게 아키택처를 구성했는지 간단하게 기록하려고 한다. 만들게 된 계기 (아이디어) 엄청난 발명품의 영감은 항상 작은 것에서 나온다고 하던데, 어쩌면 이것도 해당될지도 모른다. 여자친구와 사귀는 시간이 점점 길어지면서, 여자친구와 함께 찍은 사진을 보관하는 것이 골칫거리가 되었다. 카카오톡은 대화형 UI라 사진보관이 불편하고..
티스토리 블로그에 구글 애드센스 광고를 게시하고, 매일 매일 수익을 확인하는 소소한 재미를 느끼고 있다. 오늘도 다른 날과 다름 없이 애드센스 페이지에 들어가니, 익숙치 않은 알람이 떠있는데.. 알고보니, 내가 인증 기준액에 도달하여 내가 사는 집주소 인증을 하라는 알림이었다. 이런 기준이 있는지 처음 알았다. 처음 가입할 때 주소를 꼼꼼하게 적었던 것이 다행이라는 생각을 했다. 100달러가 지급 기준액이라던데.. 지급 기준액도 빠른 시일 내에 꼭 도달하고싶다. 당초 블로그를 시작한 것은 내가 학습한 내용을 정리하고, 그러한 과정에서 공부를 하기 위함이었다. 이곳에 IT 관련 포스팅을 할 때면, 스스로 공부할 때보다 조금 더 정성들여 작성하게 된다. 하지만 글쓰기를 꽤 좋아하는 성향 탓에, IT를 제외한..
우리나라에서 가장 인기있는 스포츠 중 하나인 야구! 워낙 인기가 있다보니, 스포츠 중에서 팬문화도 가장 활성화 되어있고 그러다보니 야구선수들을 부르는 별명(애칭)도 많이 생겼다. 이번 포스팅에서는 지난시즌부터 MLB에 진출하여 맹활약하고있는 김현수 선수의 별명에 대해 알아보자 MLB의 볼티모어에서 활약하고 있는 김현수 선수의 대표적인 별명은 두개인데, 바로 사못쓰 오현무 먼저 사못쓰라는 별명은 '사(4)할도 못치는 쓰레기'의 준말이다. 얼핏 들으면 "프로야구 선수가 4할을 못치는게 왜 욕먹을 일인가?"라는 생각이 들 수도 있지만, 그도 그럴것이 사못쓰라는 별명은 반어적인 의미가 담겨 있어서 그렇다고 한다. 김현수 선수는 데뷔 초부터 어마어마한 교타력을 선보이며 2009년 ~ 2010년 2년 연속으로 타율..
부제: IntelliJ에 JRebel 설치하기, IntelliJ에 JRebel 적용하기 웹 어플리케이션을 개발할 때, Local WAS와 웹서버에 배포할 때 불편한 점이 있다. 내가 수정한 소스코드가 브라우저에 반영된 모습을 보려면 빌드와 배포, WAS 재기동을 꼭 해줘야한다는 것! IDE설정으로 이를 해결할 수 있지만, 프론트엔드 쪽에만 한정되어 적용되는 경우가 많다. (사실, 프론트엔드의 수정사항을 즉각 반영해야할 상황이 백앤드에 비해 훨씬 많기는 하다.) 상용 툴이긴 하지만, JRebel을 활용하면 아주 간편하게 소스코드 수정사항을 서버에 즉각 반영할 수 있다. 1. JRebel 사이트에 접속한다. ( https://my.jrebel.com/ ) 2. 페이스북, 트위터 로그인을 활용하거나 회원가입을..
JAVA에서 이미지의 메타데이터에 접근할 수있는 표준 라이브러리는 현재 없다.(JAVA8 기준) 하지만 외부 라이브러리를 통해 편리하게 메타데이터를 가져올 수 있다. 아래 링크를 참고하자. https://drewnoakes.com/code/exif/ 링크를 참조하면, directory와 tag라는 것을 통해 이미지의 메타데이터에 접근할 수 있음을 확인할 수 있다. 다만 주의해야할 것이 있는데, Exif는 JPEG파일에서만 제공된다는 점이다. 아래 예제는 File Class 형태의 이미지파일에 대한 모든 메타데이터를 출력하는 예제이다. Metadata metadata = ImageMetadataReader.readMetadata(file); for (Directory directory : metadata...
이런 간단한 문제로 며칠을 헤맸다는 사실이 매우 창피하지만, 같은 실수를 반복하지 않기 위해 삽질로그를 남긴다. Spring boot & thymeleaf로 다중 파일업로드를 처리하려면, 몇가지 간단한 절차만 수행하면된다. 1. .properties 설정 2. html 개발 3. java 개발 1. .properties 설정 설정을 하지 않아도 상관 없지만, application.properties 파일을 열어 아래와 같이 추가해주면 좋다. multipart.maxFileSize=5MB multipart.maxRequestSize=5MB 최대 허용 파일 크기를 5MB로 넉넉하게 잡은 것이다. Default값은 1MB이다. 2. html 개발 (화면 개발) 태그를 이용하여 개발하면 된다. 다중 파일업로드를..
나만의 웹 앱을 만들면서 클라우드를 활용해보고 싶어서, AWS를 가입해보기로 했다.(아마존 웹 서비스(영어: Amazon Web Services; AWS)는 아마존닷컴이 제공하는 각종 원격 컴퓨팅 서비스(웹 서비스)이다. 출처: 위키피디아 해당항목) 가입은 상당히 간단하다. 먼저 AWS 홈페이지에 접속한다. (https://aws.amazon.com) 홈페이지에 들어가서, 우측 상단의 무료 계정 생성하기를 클릭한다. 아마존 웹 서비스는 가입 후 1년간(750 시간) 프리티어 서비스를 제공한다. (일정 사용량 미만이라면 사용료를 받지 않는다.) 750시간이면, 1년동안 내내 켜놔도 되는 넉넉한 시간이다.(두개 이상의 제품을 사용한다면 이야기가 달라지겠지만...) 위와 같이 이메일을 입력한 후, "새 사용자..
Spring Boot에서 Mockmvc를 활용하여 단위테스트를 수행하는 도중.. JUnit을 만들고나서 난관에 봉착했다. (참고: 인텔리J에서 JUnit생성하는 법) 분명히 의존성 추가도 잘했는데.. @SpringApplicationConfiguration 어노테이션을 인식하지 못하는 것.. 아래 그림을 참고하면 된다. 한참을 구글을 찾아 헤매다가 해답을 발견한 것이.. Spring Boot 1.4부터 등장한 @SpringBootTest 어노테이션이다. 벌써 결론부터 내버렸지만, 좀 더 자세히 설명을 하자면... 123456@RunWith(SpringJunit4ClassRunner.class)@SpringApplicationConfiguration(TestApp.class)@IntegrationTestp..