분류없음 | Posted by 민창 2014.01.16 10:12

블로그 옮겨요

2006년 처음으로 시작하였던 블로그를 새로운 곳으로 옮기려고 합니다. 

이제 본격적인 30대를 시작하면서 T.T

새 기분으로 새로운 노트를 채워가려고 합니다. 

블로그가 좀 갖춰지면 공유할게요. 


감사합니다. 

저작자 표시 비영리 동일 조건 변경 허락
신고
일상이야기 | Posted by 민창 2013.04.06 14:42

수망 로스팅 노트 #1 ~ #9

올해 2월 부터 수망으로 커피를 볶아서 마시기 시작했다. 

회사 커피 동호회에서 자주 커피를 얻어 마시게 되면서 뭔가 나도 기여를 좀 하고 싶고 커피에 대해 좀 더 알고 싶은 마음에 시작을 하게 되었다. 

두달 동안 9번 정도 실험?;; 을 해보았는데 볶는거 그냥 한번 보고 시작했고 (핑계를 대자면) 내가 공부하고 시작하는 타입이 아니라;; 많은 실패를 경험했다. 오늘까지 중간 중간 짧게 기록해둔 로스팅 노트를 블로그에 올리고 앞으로도 자주 블로그에 남기려고 한다. 아직은 정신도 없고 해서 사진이나 영상은 거의 없다. (아마 앞으로도... ) 


* 로스팅노트는 그냥 텀블러에 별도 블로그로 만들어서 이동~

http://afeshot.tumblr.com/


=============================================================================================================


<수망에 이렇게 생두를 담아서 미친듯이 흔든다>



<볶고 나면 요렇게 우리가 아는 원두가 된다>



==================================================================

2013.02.24 

우리집에서 나 혼자 하는 첫 로스팅 


#1. 

* 원두 : 브라질 칸타갈루 240g

* 휴대용 작은 가스버너 

* 15분을 볶았는데 1차 팝핑도 일어나지 않았다. 알고보니 불의 온도가 너무 낮았던것. 

* 볶았던 원두는 버리고 버너를 큰것으로 바꿔서 다시 해보기로 결정. 


#2

* 원두 : 브라질 칸타갈루 150g

* 큰 버너 

* 총 로스팅 시간 : 9분 50초 정도 

* 1차 팝핑 시작 : 5분 30초경 

* 팝핑 소리가 크지 않아서 계속 로스팅을 진행했는데 이내 멈추더니 9분째 부터 다시 팝핑을 하기 시작함

* 색깔이 이미 많이 까맣게 변해서 그만둠. 

* 완료 후 원두 무게 122g 으로 30g 가까이 빠짐. 20% 빠진것을 확인 

* 색깔은 전체적으로 좀 많이 볶인듯. 좀 더 시간을 짧게 했으면 좋겠고 1차 팝핑 후에 불을 조금 줄여보는 것을 시도 해보면 좋을듯. 


#3

* 원두 : 브라질 칸타갈루 240g

* 큰 버너

* 총 로스팅 시간 : 13분 30초 정도

* 1차 팝핑 시작 : 8분 경

팝핑이 예상보다 늦게시작

12분 후반부터 2차팝핑이 시작되어 불을 약간 낮추고 1분정도 더 볶음

생각보다 콩이 덜 볶이고 색깔이 고르지 못함

덜 볶여서 그런지 브라질 커피에서 약간 신맛이남 

보통 물 타먹는데 물 안타먹어도 괜찮음 별로 안진함

바닥만 타는 콩이 나오기시작. 잘 섞기 위해 철사를 끼우던지 200g정도로 줄여야겠음

완료 후 191g 으로 20% 줄어듦


#4

* 원두 : 브라질 칸타갈루 200g

* 큰 버너

* 총 로스팅 시간 : 12분

* 1차 팝핑 시작 : 6분


양이 좀 적고 실내 온도가 올라서 그런지 4분부터 색깔 변하기 시작. 

6분부터 팝핑시작되었고 9분까지 조금씩 지속 

처음에 수망집게를 잘못 해서 커피 이탈함;;


9분부터 불낮춰서 11분까지 볶았는데 색깔이 연해서 다시 불켜서 1분 더 볶았지만 색깔 별로 바뀌지않아서 ;; 그만둠. 

완료후 무게가 164g으로 중간에 콩이 몇개 빠졌는데도 20%가 다 안빠짐


#5

* 원두 : 브라질 칸타갈루 180g

* 큰 버너

* 총 로스팅 시간 : 8분 40초

* 1차 팝핑 시작 : 4분

* 완료후 무게 : 146g

SHB 

3분부터 색깔이 변하기 시작하더니 곧 팝핑이 시작되었다. 

이상하게 너무 빨리 볶이는듯한 느낌. 

기름이 약간 나오게 볶였음. 

언제나 그렇듯 1차 팝핑과 2차 팝핑이 크게 구분되지 않음. 

맛은 좀 익은듯한 맛. 괜찮았음. 

나중에 식혀 먹어도 맛이 괜찮았음. 


#6

* 원두 : 과테말라 SHB 180g

* 총 로스팅 시간 : 12분

* 1차 팝핑 시작  5분

* 2차 팝핑 시작 : 8분 40초 


11분에서 멈췄으나 색깔이 옅어서 다시 1분정도 추가로 볶음

버너 불이 좀 약해진것 같음. (색깔이 ) 

신기하게 색깔은 연한데 팝핑이 시작됨. 


아이고 날짜를 다 안적었네. 


#7 2013.3.31

* 원두 : 과테말라 SHB 180g

* 총 로스팅 시간  : 12분 반

* 1차 팝핑 시작 : 7분 

* 2차 팝핑 시작 : 10분 반


* 특이사항 : 가스교체 , 수망에 철사 


이번에는 1차 팝핑과 2차 팝핑이 거의 확연히 구분되었다. 

색깔이 지난번보다 좀 늦게 검어졌는데 7분 정도 되니 갑자기 색깔이 바뀌면서 팝핑이 시작됨. 

1차 팝핑 소리는 이때까지 중 제일 컸던듯..

2차 팝핑이 어느정도 진행되어서 불을 껐는데 색깔이 아직도 옅어 ㅡㅡ 

결국 다시 불을 키고 1분정도 더 볶았으나 별로 나아진게 없음. 

철사를 이용했더니 그래도 원두 바닥만 타는 케이스가 거의 없어졌다. 



#8 2013.04.06

* 원두 : 과테말라  SHB 150g

* 총 로스팅 시간 : 7분

* 1차 팝핑 시작 : 4분 

* 2차 팝핑 시작 : 6분 

* 무게 : 150 -> 120g

* 특이사항 : 버너 교체 ( 등산 버너로 교체 ) 


이번에는 직화를 제대로 할 수 있도록 등산 버너로 교체 하였다. 

블로그를 좀 찾아보고 최초에 3분정도 수분날리기를 진행. 양이 적어서인지 이미 색깔이 변하기 시작

불을 최대로 하여 3분정도 더 볶았다. 4분부터 1차 팝핑이 시작되었다. 

1차 팝핑이 6분 정도에 끝나고 곧바로 2차 팝핑 소리가 들리기 시작하여 수망을 불에서 조금 멀리하여 

1분정도 더 볶았다. 

기름이 약간 나오고 색깔은 고르게 잘 볶였다. 



#9 2013.04.06

* 원두 : 탄자니아 AA+ 180g

* 총 로스팅 시간 : 12분

* 1차 팝핑 시작 : 6분 40초 

* 2차 팝핑 시작 : 11분 정도 

* 무게 : 180 -> 140g


#8 후에 180g 도 실험해 보고자 바로 볶기 시작했다. 

콩이 달라서인지 양이 더 많아서인지 3분정도 수분날리기를 하였으나 색깔 변화는 없었고 크기만 약간 변화되었다. 

중간에 가스가 거의 떨어지면서 불이 조금 약해진게 아쉬웠다. 

3분 부터 불 세기를 최대로 하여 볶기 시작 6분 40초에 1차 팝핑이 시작되었다. 

이후 10분까지 서서히 색깔이 검게 변하였다. 11분정도에 2차 팝핑 소리가 나서 수망을 열어보니 커피 색깔이 좀 옅어서 

1분정도 수망과 불 사이를 조금 멀게 하여 조금 더 볶았다. 

기름은 없고 전체 적으로 색깔이 옅어지게 볶였다. 


바로 커피를 내려 봤는데 생각보다 이전 원두들 보다 맛이 깊고 신맛은 있으나 좀 덜하였다. 

맛은 그동안 내려먹었던 것중에서 손에 꼽을 정도로 좋았음. (그동안 볶은 횟수 전체가 손에 꼽힌다는게 함정)


저작자 표시 비영리 동일 조건 변경 허락
신고
IT 이야기 | Posted by 민창 2013.03.29 14:10

Spring 3.2 에서 @MatrixVariable 사용하기

RESTful API 를 디자인하는 과정에서 특정 필드의 조건을 만족하는 데이터(리소스)를 조회하는 API 를 만들어야 할 때가 있다. 리소스의 계층적인 구조는 / 를 이용해서 URI 로 표현하기 쉽겠지만 필드들의 값을 만족하는 부분을 어떻게 URI 에 표현할 수 있을까 하는 고민을 하게 된다. 이를 위해 사용할 수 있는 방법 중 하나가 바로 Matrix URI 이다. 


http://www.w3.org/DesignIssues/MatrixURIs.html


Maxrix URI 는 파라미터로 넘길 key, value 쌍을 ; ( 세미콜론) 으로 구분하여 명시하도록 제안한다. 


Query parameters : http://example.com/apples?order=random&color=blue

Matrix parameters : http://example.com/apples;order=random;color=blue


프로그래머 입장에서는 위와 같은 matrix 방식을 사용할 시 해당 부분을 파싱하여 ; 기준으로 나누고 key , value 쌍을 구분해내는 등의 작업을 해야 하는데 여간 귀찮은 것이 아니다. 

이를 위해 Spring 3.2 버전에서는 기존 @RequestMapping 과 함께 사용할 수 있는 편리한 어노테이션인 @MatrixVariable 이 추가 되었다. 


예제 : 

1. 특정 컬렉션내 키워드를 조회 

2. 키워드 조회시 필요에 따라 3가지 필드 group, keyword, exp 의 값을 만족하는 키워드만 조회 

3. 조회 결과를 페이지별로 볼 수 있도록 함. 


URI : http://example.com/testcoll;group=name;keyword=민창/1


구현 : 


@RequestMapping(value="/{coll}/{page}", method=RequestMethod.GET)

public ModelAndView showKeyword( @PathVariable (value="coll") String coll

,@PathVariable (value="page") int page

,@MatrixVariable ( value="group", required=false, pathVar="coll") String group     ,@MatrixVariable ( value="keyword", required=false, pathVar="coll") String keyword

,@MatrixVariable ( value="exp", required=false, pathVar="coll") String exp ){

}



4번과 같은 주소를 호출 하면 위 함수에서는 아래와같이 자동으로 각 변수에 값을 바인딩 해준다. 


coll = testcoll

page = 1

keyset = name

keyword = 민창

expinfo = null

@MatrixVariable 에 사용되는 각 필드는 아래와 같은 의미 이다. 


value : 파라미터명 

required = 파라미터가 반드시 명시되어야 하는지 여부, 파라미터가 없으면 해당 함수로 매핑이 안됨

pathVar : 파라미터가 어떤 PathVariable 에 붙어서 오는지. 위에서 pathVar 값을 page 로 하였다면 모든 변수가 null

defaultValue : 변수의 기본값 세팅 가능



저작자 표시 비영리 동일 조건 변경 허락
신고


티스토리 툴바