"스타벅스에서 심각한 표정으로 맥북 프로를 골똘하게 쳐다보고 있는 개발자의 모습"은 예전부터 나의 로망이었다. 취업을 한 뒤 맥북으로 개발할 기회가 생길 줄 알았지만 하필 내가 다니는 회사는 맥북을 지급하지 않기에.. 로망이 불타오르는 와중에 결국 맥북을 지르게 되었다. 중고나라에서 미개봉품을 사는 것이 가장 싸다던데.. 나는 그냥 다나와에서 검색해서 구매했다. 택배가 오는데는 약 일주일 정도가 걸린 것 같다. (맥 스토어에서 구매하면 금방 도착한다고 하니 참고) 별다른 완충장치가 없어보이지만, 박스 크기가 정말 크다. 안에 빈공간이 많을 것만 같았는데, 열어보니 빈공간이 많았다. 맥북이 훼손될 확률은 낮아보인다. 맥북 프로 2016버전부터 스페이스 그레이 색상이 추가되었다. 때마침 나의 아이폰6S도 스..
이번 포스팅에서는 2010년대 KBO리그 최고의 외야수 중 한명이자, KIA타이거즈의 4번타자 최형우 선수의 별명에 대해 알아보겠다. 최형우 선수는 박병호, 김상현 선수와 함께 '대기만성'한 선수로 유명하다. 최형우 선수는 2002 신인드래프트 6라운드 전체 48순위, 포수로 삼성라이온즈에 입단한 선수이다. 그럼에도 2008년 최우수 신인에 선정된 특이한 이력이 있다. 그는 2005년까지 별 다른 활약이 없다가 2005년 시즌 후 방출 되었는데, 때마침 창단한 경찰청에 입단한 뒤 외야수로 포지션을 외야수로 변경하면서 포텐셜을 터뜨리게 된다. 특이하게도, 다른 팀에 입단하지 않고 삼성 라이온즈에 재입단하게 되었으며 2008시즌 최우수 신인을 시작으로 리그 최고의 외야수로 발돋움했다. 이런 그에게도 불명예스..
String과 StringBuilder, StringBuffer는 모두 문자열을 저장 및 관리하는 클래스이다. 아래와 같은 방식으로 생성 가능하다. String str1 = new String("abc"); String str2 = "abc"; StringBuilder str3 = new StringBuilder("abc"); StringBuffer str4 = new StringBuffer("abc"); 참고로, StringBuilder와 StringBuffer의 생성자의 파라미터로 CharSequence 인터페이스를 구현한 모든 클래스를 사용할 수 있다. CharSequence를 구현한 클래스로는 CharBuffer, String, StringBuffer, StringBuilder가 있다. Strin..
컴파일할 때는 문제가 없던 프로그램도 동작 도중에 종종 오류가 발생한다. 사용자가 항상 개발자의 생각대로 프로그램을 사용하지 않기 때문이다. 숫자만 입력해야하지만 문자열을 입력하기도 하고, 파일을 업로드하기 전 파일의 이름을 지정하지 않기도 한다. 이럴 때 발생하는 오류를 사전에 방지하는 것은 중요하다. 그런데 개발자가 이러한 오류가 발생할 때마다 프로그램이 종료되는 것을 원치 않을 수 있다. 오류를 무시하고 싶을 수도 있고, 그 오류가 발생 했을 때 수행할 적절한 동작을 직접 정의하고 싶을 수도 있다. 이럴 때 활용하는 것이 try-catch-finally 구문이다. public class Main { public static void main(String[] args) { int [] arr = ne..
부제: IntelliJ에서 S3 연동하기, Spring Boot AWS 연동 이번 포스팅에서는 Spring Boot에서 Spring Cloud AWS를 활용하여 S3를 연동하는 법을 알아보겠다. 절차는 크게 3가지(의존성 설정, Properties 파일 설정, 구현)로 나눌 수 있다. 1. 의존성 설정 Spring Cloud AWS를 활용하면, 의존성만 추가해도 간편하게 AWS의 모든 기능을 활용할 수 있다는 장점이 있다. 아래 내용을 build.gradle에 추가하자. (버전은 알아서 적절히 넣도록 한다.) 12compile("org.springframework.cloud:spring-cloud-aws-context:${springCloudVersion}")compile("org.springframew..
부제: 샤오미 이어폰, 샤오미 피스톤4, 샤오미 전자제품 추천 엘지 전자의 G어폰(쿼드비트 시리즈)와 함께 가성비 이어폰으로 정평이 나있는 샤오미 피스톤4를 구매했다. 우리나라에는 수입 대행사를 통해 정식 판매되고 있는 듯 하다. 포장 컨셉이 원래 이런것인지.. 외계인이 생각나게 하는 포장 디자인이다. 천천히 개봉을 해봤다. 내부에 이어캡이 따로 들어있고, 중국어로 쓰여있는 설명서도 들어있다. 특이하게도, 이어폰의 연결단자부터 이어폰 선이 나눠지는 부분까지는 로프형태이다. 3만원도 안하는 이어폰치고는 나름 세심한 배려라고 할 수 있다. 이어폰 리모컨은 오른쪽에 있는데, 볼륨조절과 재생/정지 버튼이 있다.사진에는 보이지 않지만 마이크도 달려있다. 그런데 IOS(아이폰, 아이패드 등)에서는 볼륨조절버튼이 동..
부제: 싸융짱문오, 싸융짱, 김영민, 김영민개명, 기아 타이거즈, 2:2 트레이드, 유재신 오늘은 2016시즌 구원왕을 차지(KBO 역대 두번째 무패 구원왕)하고, 2017시즌 도중 넥센 히어로즈에서 기아 타이거즈로 트레이드 된 김세현 선수의 별명에 대해 알아보겠다. 김세현(김영민에서 개명) 선수의 대표적인 별명은 '사이버'이다. 김세현 선수는 06년에 현대 유니콘스에 지명된 이래 5년 넘게 부진과 부상 재활을 반복했는데, 현실에서는 안보이고 가상에만 존재하는 투수라고하여 팬들이 붙여준 이름이다. 현대 유니콘스 - 넥센 히어로즈 팬들에게 김세현은 애증의 존재이다. 프로야구 역사에 남을 06년 신인 드래프트에서 현대의 2라운드 지명(1라운더는 MLB에서 활약중인 강정호)을 받았지만, 최고 160에 육박하는..
Spring Boot를 활용하여 Restful 서버 개발을 하다보면, 다른 API를 호출할 일이 종종 생기는데, RestTemplete을 활용하면 좋다고한다. 나는 GPS 좌표(경도, 위도)를 파라미터로 하여 호출할 경우, 주소(도로명 및 지번주소)를 돌려주는 API를 활용하기로 했다. https://developers.naver.com 에서 위 그림과 같은 명세를 찾을 수 있다. (다른 API를 활용하는 경우에도 참고하길 바란다.) 나같은 경우, 안내된 URL로 GET요청을 날려야 했는데 NAVER에서 제공하는 JAVA 예제는 너무 길고 불편했다. 그래서 RestTemplete를 활용하기로 했는데, 구글링하면 대체로 getForObject, getForEntity를 활용하는 방법을 소개한다. 아래의 소..