Java 8 , Reactive

개발자세상 2017. 7. 16. 14:09

올 봄에 John이 추천해 줘서 알게된 "No Fluff Just Stuff" Conference를 어제 오늘 이틀간 참석하게 되었다.


여러 지역을 돌아다니며 하는 세미나 인데 ,그동안 가고 싶었던 Salt Lake Ciy에서도 진행하기에 덥석 신청해서 오게 되었다.


일단 강사들이 작년에 갔던 Strange Loop에 비해 전문적인 강사들이 주로 진행을 하고


1시간 30분 세션에 한 주제에 대해서 2~3개의 세션을 연이어 진행하다 보니 좀더 많은 것을 배우게 되었다.


주제는 Java 8 , Front-end tech, Machine Learning, Spring 등 다양한 주제 였는데 


첫째날은  Java 8, Docker 둘째날은 Reactive를 중점적으로 들었다.


Java 8같은 경우는 Scala 를 하기 시작하면서 한국 E-Book으로 읽어 보긴 했지만 쉽게 이해가 가지 않았는데 


3개 세션을 들으며 Lambda, Stream 들을 듣고 나니 왜 이렇게 되었는가를 쉽게 이해 하게 되었다.


Kenneth Kousen이 진행했는데 , 책도 많이 저술하고 동영상 강의도 제작 했는데 


집으로 돌아가면 꼭 이분이 저술한 책으로 다시 복습해서 확실히 내껄로 만들어야 겠다 싶다.


Docker의 경우는 두개 세션을 들으며 어렴풋이 개념을 이해하기는 했는데 


너무 내부 적인 부분에 집착하면서 들어서인지 100% 내것으로 소화해 내지는 못한 느낌이다.


하지만 적어도 어떤 기술이고 어떻게 응용되는지에 대해서는 어렴풋이 개념이 잡히는 느낌이다. 


앞으로 회사에서도 Docker를 계속 적용할 예정이니 좀 더 시간을 두고 긴 호흡으로 접근해야 할 느낌이다.


둘째 날은 Reactive에 대해서 중점적으로 들었는데 


얼마전까지 Toby씨가 진행했던 동영상 강의와 Java8 Future관련 내용을 먼저 듣고 들으니 


개념에 대해서는 어느정도 이해 할 수 있었다.


근데 과연 어떤 부분에서 적용해 볼 수 있을 까 하는 생각을 해보니 역시 좀더 공부가 필요할 것 같다.



AppNexus에 Join하고 작년 부터 Conference를 다니게 되면서 들게 되는 생각은 


미국 넘어 온 이후  너무 OAS에 집착하며 스스로를 너무 도태시켜 버렸다는 생각이 든다.


6년이 넘는 시간동안 정말 많은 기술이 나오고, 그런 기술을 배울 수 있는 기회들이 있었는데,


그 기간을 너무 쉽게 보내버렸다는 아쉬움이 든다.


이제라도 따라 가보려고 발버둥 쳐보고는 있는데 


솔직히 언제 다 따라 잡을 수 있을 까 하는 걱정이 많이 든다.



지난 이틀의 컨퍼런스가 정말 많은 걸 배우고 자극이 되는 시간이었다.


당장 내년에는 또 어떤 컨퍼런스를 가볼까 


그리고 그 전까지 난 얼마나 더 발전할 수 있을 까 하는 생각이 든다.


'개발자세상' 카테고리의 다른 글

Kotlin  (0) 2018.10.30
Apache 2.0, PHP 7.0 and Ubuntu  (0) 2017.12.20
Mobile세상 ....  (0) 2017.06.03
JavaScript polling  (0) 2017.03.17
BoneCP DB Pooling  (0) 2016.11.22
Posted by headiron
,

작년 부터 Device-Manager 프로젝트를 진행중이다.

회사에 들어오는 Traffic중 일정 Percentage의 Sample Traffic에서 UserAgent를 추출해서 

UserAgent 정보를 이용해서 OS/Browser/Device 정보를 추출하고 System에 없는 데이터는 추가하는 일이다.


프로젝트를 진행하면서 회사 내부 시스템도 좀더 깊게 알게 되고

Kafka consumer code, Angular, Redis, Scala 등도 실무로 적용해 보면서 

Technical하게 많은 도움이 된 ( 되고 있는 ) 프로젝트 이다.


Technical한 것과 별개로 Sample traffic data를 사용하면서 

Mobile Traffic이 상당히 큰 비중을 차지 하게 되는 걸 알게 되었다.


광고 회사다 보니 100% 정확하지는 않겠지만,

60% 넘는 Traffic이 Mobile Traffic ( Android 40%, iOS 20% )

Window 계열 Traffic이 30%, Mac OS가 4%정도 였다.


웹 관련해서는 그래도 좀 따라 갈 수 있다고 생각했는데 

Mobile Traffic이 PC Traffic을 이렇게 앞서고 있었구나 생각하니 나에겐 충격이고 또 아찔하게 다가왔다.


뭐 생각해보니 나도 잠깐 짬날때 움직이면서 폰으로 서핑도 하고 다니니 통계가 틀린 건 아닌 듯 싶다.


Back-end쪽 일을 많이 하고 있기는 하지만 Mobile 로 Trend가 넘어가고 있는 걸 내가 못 따라 가고 있다고 생각하니 걱정이 앞었다.


Machine Learning, Mobile, IoT 정말 많은 공부거리도 많고 내가 어디까지 Follow up할 수 있을 지 걱정이다.

뭐.. 그래도 해쳐나가야지 싶다.

 

'개발자세상' 카테고리의 다른 글

Apache 2.0, PHP 7.0 and Ubuntu  (0) 2017.12.20
Java 8 , Reactive  (0) 2017.07.16
JavaScript polling  (0) 2017.03.17
BoneCP DB Pooling  (0) 2016.11.22
Rotating Linux Log file  (0) 2016.03.10
Posted by headiron
,

4살..

사는이야기/Claire 2017. 5. 23. 09:47

한국 다녀오고 시차 적응하다 보니 어느덧 율이 생일이 있는 5월이 되었다.




율이가 요즘 좋아 하는 Dr Seuss.

아마 YMCA에서 찍었던듯..

올해도 우리는 롱우드 가든으로 봄을 맞이했다.

물론 한국 갔다 오면서 좋은 시즌을 좀 놓치기는 했지만 서도..

이번 보궐 선거는 재외 동포도 투표할 수 있다 기해 소중한 한표를 행사했다.

다행이 다른 사람들 처럼 멀리 갈필요 없이 필리에서..


율이는 어디가나 재밌는 것 찾아 내는 재주가 각별한듯..


코스트코에 물 놀이 기구가 나왔길래 한 번 사봤다.

이상하게 뉴저지 해변은 물놀이 기구를 못 갔고 들어가게 해서 

이걸 갔고 놀 수 있을 지는 모르겠다.


Day school에서 기차 타기 놀이... 우리 율이는 어디 있을까요?

처음으로 가본 생일 파티..

YMCA에서 한다기에 가봤는데 파티 장소에 아무도 없어 당황했는데 

애들 생일 파티는 1시간 정도 다 같이 놀고 난뒤에 

파티 장소에서 음식 먹고 ( 뭐 피자 같은 거지만) 파티(?) 좀 하고 끝나는 식이었다.


처음부터 미국 애들 파티에 갔으면 당황했을 텐데 

최근에 알게 된 한국인 가족들이 초청해 준 자리라서 자세히 설명까지 듣게 되어

다음 번 생일 파티 가는 게 어렵지 않았다. 

 

그리고 우리 율이의 생일 파티 

작년 이맘때 율이 생일때 케잌 커팅을 하며 

내년에는 친구들과 생일 파티를 했으면 하는 바램이었는데 

이렇게 Day School에서 친구들과 생일 축하를 하게 되었다.


내년에는 다른 친구들 처럼 생일 파티를 한 번 해보는 것도 생각해 봐야 겠다.

Mother's Day때 Longwood Garden을 갔더니 

풀룻, 바이올린 연주를 하기에 잠시 앉아 감상해 보았다.

연주 후에 율이에게 어떤 악기가 더 좋냐고 물으니 

자기는 바이올린이 좋단다..


아마 나 떄문에 너무 안 예쁜 플룻 소리를 들어거 그런 듯.. :-(









Day School Spring Show.

선생님하고 얘기 해보니 1달 정도 연습 하고 헀다고 한다.


공연하는 내내 집사람도 너무 기뻐서 울뻔하고,

나도 살짝 눈물이 날려고 했다.


더구나 율이는 올 봄 부터 2달 좀 넘게 다니고 공연한건데 

잘 따라 가고 있는 것 같아 좀 안심이 됐다.

율이 Regular Check up하러 다니는 중에 때를 좀 부려서 

혼낸다고 병원 대기실에서 손을 들게 했다.

한국 다녀온 이후로 율이를 좀 훈육을 하면서 키워야 겠다 싶어서 종종 혼냈었는데 

의사선생님하고 상담해보니  

아직은 안 좋은 행동에 대해서 Argue하기에는 4살은 좀 어리다고 한다.

6살 정도 까지는 기다려야 할꺼라고.


자꾸 한 말 또 하게 한다고 요즘 많이 혼냈는데 자꾸 미안해 진다.


언젠가 진상형이 응답하라 시리즈에서 나왔다고 올려준 문구가 생각이 난다.


아빠도 아빠로 사는 건 처음이잖아.


율아.. 

아빠도 아빠로 사는게 처음이잖아.

율이한테 잘 못해줘서 미안해...


4살 된 노스웨일즈 김씨 율이는 .

Chalfont에서 잘 자라고 있다.



'사는이야기 > Claire' 카테고리의 다른 글

Conference  (0) 2017.11.08
Summer Camp  (0) 2017.08.21
2017년 새로운 봄을 기다리며  (0) 2017.02.20
가을과 겨울 사이...  (0) 2016.12.15
2016년 여름 ( 세번째 여름 )  (0) 2016.08.18
Posted by headiron
,

JavaScript polling

개발자세상 2017. 3. 17. 03:26

Device Atlas관련 프로젝트를 진행하면서 오랜만에 UI coding을 하게 되었다. 

OAS API를 맏기 시작하면서 UI 코딩을 하지 않았으니, 근 10년간 UI 코드를 보지 않았던 것이다.


그 사이에 Ajax -> jQuery -> Angular -> Angular 2, React Js 등으로 UI기술은 발전하고,

TypeScript니 하는 것들이 생겨나 버렸다.


다행히 이번에 하는 프로젝트는 내부 시스템이고 해서 

기존에  Angular JS로 팀장이 만든 Project에 페이지 두개 정도를 넣는 걸로 진행하게 되었다.


나름 Angular 인터넷 찾아가보면서 재밌고 진행해 보았는데 

두가지 issue가 발생하는 것이다.


1. 데이터 가져오는 Controller method가 꼭 두번 실행이 된다.

2. 화면을 Refresh하기 위해서 SetTimeout 메소드를 사용했는데, 이상하게 Refresh가 timeout에 상관 없이 바로 되는 것이다.


나는 JS에 routing을 설정하면서 template와 controller를 설정하였는데 

html내에서 다시 ng-controller를 사용하니 controller가 두번 호출 되는 문제 였다.

이건 ng-controller를 html에서 삭제하니 바로 해결이 되었다.


근데 두번째는 도무지 해결책이 나지 않는다.

이렇게 저렇게 해보다가 한번 구글링을 했더니 아래 Q/A가 보인다.


http://stackoverflow.com/questions/4120781/settimeout-ignores-timeout-fires-immediately


setTimeout의 첫번쨰 파라미터에 함수를 설정할 때  () 를 넣으면 해당 함수가 바로 호출된다는 얘기다. -.-


대체 왜 이렇게 해 놓았는지 이해 가지 않지만 어쨋든 ()를 뺴고 해당 함수의 파라미터를 세 번째 변수로 바꾸었더니 바로 해결된다.


setTimeout( getData(id), 20000 ) ->

setTimeout( getData, 20000, id)


오랜만에 UI코드를 해보니 나름 재밌기도 하고 한게 

함 개인 프로젝트를 한 번 해볼까 하는 생각도 든다.

'개발자세상' 카테고리의 다른 글

Java 8 , Reactive  (0) 2017.07.16
Mobile세상 ....  (0) 2017.06.03
BoneCP DB Pooling  (0) 2016.11.22
Rotating Linux Log file  (0) 2016.03.10
Continuous Integration with Jenkins  (0) 2016.03.04
Posted by headiron
,

처음에 미국에 와서는 회식 문화가 없어서 좋기도 하고 심심하기도 했는데 

AppNexus로 오게 되면서는 분기별로 팀 회식을 가지게 되었다.


분기별로 나는 괜 찮은 음식들을 즐겨서 좋기는 한데 식구들한테는 좀 미안한 마음도..

그래서 새로 알게 된 괜찮은 음식점은 식구들하고도 함께 가려고 해본다... ( 뭐.. 식당들이 뉴욕이니 여기서는 좀 어렵지만. ) 


작년 여름에 인턴으로 일하던 친구가 정식으로 조인하게 되면서 

이번 분기는 두 번째 팀 회식을 하게 되었다.


뭐. 어디로 가게 되려나 했는데, 이번엔 Korean BBQ를 먹으로 가자면서 코리아타운의 종로상회로 가게 되었다.

오랜만에 느껴보는 한국 고깃집 분위기 ( 미국와선 식당들이 좀 비싸서 고기집을 잘 안가게 되었다.) 에 

미국 와서 가장 오랫동안 한국 가요 ( 그것도 내가 좋아하는 옛날 가요 ) 를 2시간 넘게 듣다 보니 참 낮선 느낌이었다.


삽겹살, 모듬 소고기, 육회 등을 시켜 먹었는데 

미국 친구들 입맛에는 소 갈비가 제일 맛있었단다.


난... 입이 싼 맛인지 삼겹살이 아직 좋은데..



고기 회식을 한 후 종로상회 맞은편에 있는 커피숍에서 팥빙수로 마무리...

참고로 내 옆에 있는 중국인 친구가 팀장인데

나름 일도 열심히 하고 관리도 열심히 하고..


뭐.. 전체적으로 같이 일하는 친구들이 실력도 좋고 성격들도 좋아서 맘에 드는 편이다.


회식이 있었던 주 금요일..

아침에 출근 준비 하면서 낮 온도가 화씨 70도 정도 ( 아마 한 섭씨 20도 정도 ) 될꺼라는 예보를 보고 

2월 말에 이게 무슨 일인가 했는데 


오전에 일을 좀 하다 보니 이상한 메일이 와 있다.


It is "no change Friday" and the weather is going to be great so... 


내용을 읽어 보니... 날씨 좋고 오늘은 시스템 변경 안하는 금요일 이니 다들 오전 근무만 하고 좋은 날씨 즐기란다. ( 집에 가라고.. ) 

한국에 있을 때, 어느 회사 개발팀장이 

날씨 좋으니깐 다들 나가 놀고 일은 자기가 하겠다는 

얘기 들은 이후로 처음 들어보는 얘기 



덕분에 우리 율이는 Mondauk 공원에 가서 좋아하는 모래 놀이를 원 없이 하였다.


미국 와서 본의아니게 여러 회사를 다니게 됐는데 

( 여기서 함정은 나는 옮기지 않고.. 회사가 분사.. 합병.. 인수 이런일을 겪었다. ) 

아직 까진 지금 회사가 제일 합리적이고 직원들한테도 잘 해 주는 것 같다.

물론 배움의 기회가 많은 것도 우리 회사가 맘에 드는 점 중에 하나이다...

'사는이야기 > 미국생활' 카테고리의 다른 글

Sweet home...1년  (0) 2017.10.01
뉴욕에서 친구 만나기  (0) 2017.08.15
PA에서 집 사기  (0) 2016.08.12
한국에서 미국 송금 하기  (0) 2015.12.07
뉴스룸, 9/11 , 빈 라덴  (0) 2014.07.01
Posted by headiron
,

새로운 집을 산 이후로 IKEA에 가는 게 이제는 일상이 되어 버린 것 같다.

하긴 처음에 미국와서 몇 달 동안 거의 매일 갔던 거에 비하면야..


언제나 IKEA에 가게 되면 율이는 IKEA 아이스크림이라는 선물을 받고, 

놀이터에서 놀기도 하고 하니 오히려 반겨하는 눈치다.

Winter brake동안 플로리다를 가볼까 하다가 80도 정도 밖에 안되서 어렵겠다 싶어서 그냥 근처에 있는 곳들을 돌아 다니기로.. ( 같은 팀의 플로리다 출신 Erik에게 물어보니 남부 플로리다는 겨울에도 해변에서 놀 수 있단가.. :-( ) 

그 첫번째로 율이가 좋아하는 Creyola Experience.

그냥 가기만 하기 그래서 근처 맞집을 찾아가 Brunch를 즐기며 한 컷..

저 식탁에 있는 French Toast 가 우리를 요즘 동네 Brunch 가게 탐방에 나서게 만들었다.


지난 번에 왔을 때는 없었는데... 

크레용으로 색칠한 새들이 춤추는 장치..

나름 새로운 것들도 많이 생겼고..

평일에 오다보니 율이가 좋아하는 Play ground에도 아이들이 적어서 마음껏 놀 수 있었다.

뭐.. 우리도 Easton Farmers Market에서 맛있는 음식이랑 커피도 즐기고 했으니 우리 가족 모두 행복했던 날이 었다고나 할까.




뭐.. 우리 가족에게는 빠질 수 없는 Longwood Garden..

특히나 요번에는 크리스마스 이브를 즐겼다.




집에 굴뚝이 생겼으니 산타할아버지가 선물도 주셨네... :-)


동네에 있는 Kid 카페에도 한번..

나름 괜찮은 것 같은데 집사람은 좀.. :-(

작년에 알게 되어 자주  가게된  Japaneses Grossory store인  Maido에서 마침 떡 만드는 행사가 있길 래 율이도 한번..

난 민속촌도 한번 안 가봐서 떡 매 치는 건 한 번도 안해 봤는데 율이는 아빠보다 먼저 이런 걸 해보네...

잠시 애플 매장에 가서 내 볼일마치고 

다시 Maido에 와서 우동에 저녁 먹고..

마스코트 같은 곰돌이 인형과 함께...

새해 맞이 불꽃 놀이 가려고 하는데 

마침 리딩 터미널 마켓에  율이가 좋아하는 모형 Train을 설치 해 놓았다고 해서 

맛있는 것도 먹고.... 모형 기차 구경도 하고..

뭐.. 리딩 터미널 마켓이 기차역에서 출발했으니 나름 괜찮은 아이디어 인듯 하다.

 


2017년도  온 식구가 필리 다운타운에 불꽃 놀이를 보며 맞이하였다. 

( 물론 우리는 6시에 하는 불꽃 놀이를 즐겼다. ) 

이사 하고 처음 눈 다운 눈이 왔을 때 .

나름 1인치 정도 왔기에 눈 삽들고 치웠는데 

오후 되니 바로 녹아 버렸다는... 

어쩐지 다른 사람들은 그냥 나두더라니....

친구네 분식점에서 사장님이 서비스로 주신 핫도그 먹으면서 옛 생각이 나서 

냉동 핫도그를 샀었는데 

율이가 귀신 같이 기억하고 엄마를 졸라서 먹었단다..

먹는거 잘 기억하는 건 정말 날 닮은 듯..


햇볕이 있어서 밖에서 놀고 있는데.

마침 Patio 의 응달 진 곳에 살짝 얼음 언것을 보고 

자기는 스케이트를 탄단다.

아직 한번도 해본적은 없는데 

TV 쇼에서 본적이 있어서 어떤건지는 대충 아는 듯..

나는 이런 생각 못하는데..

아직 마인드가 열려 있는 율이가 부럽고 대견하고...

한 달에 한번씩 YMCA에서 하는 Family Fun night.

처음 참석해 보았는데 

포켓몬도 잡고, 그림도 그리고 다양한 행사를 하길래 .

괜찮아서 다음달에도 갔는데 주제만 다르고 하는 내용은 거의 비슷..


그래도 율이가 좋아해서 다음달에도 또 가게 될 듯. 



결혼 하고 처음으로 사본 내 생일 케잌.

뭐.. 내가 운전해서 가서 사오기 뻘쭘해서 안 했었는데 

율이가 워낙 케잌을 좋아해서 한 번 사보았다.

결국 나중에 나 먹으라고 한 조각 남겨주고.. 

율이가 일주일 내내 즐겼다나.. :-) 

힘들다고 해서 결국 또 목마탄 율이..

나름 아빠 생일인데.. :-(


일요일 브런치를 즐기러 간 New Hope에 

아이들 놀이터가 있어서 회전 목마도 같이 타보고...

같은 팀의 Dawid이라는 친구가 포켓몬을 좋아해서 

회사에 인형들을 많이 사서 빈 자리에 두고 있었는데 

이번에 새로운 친구가 들어오게 되서 그 자리를 치워야 핟다고 하길래

나름 귀여워 보이는 인형들로 집에 가져왔다. 

율이한테는 인형을 잘 안 사 줬었는데 이렇게 좋아 하네...

동네 친구 아영이, 윤아 자매랑 몽고메리몰 놀이터 가서 한 컷..

올 겨울 마지막으로 온 폭설이 온후 같이 눈을 치우며..

6인치 정도왔는데... 옆에옆 집의 Tom아저씨가 Snow Blower로 많이 치워주셔서 비교적 쉽게 치울 수 있었다.

마침 눈 치우러 나온 옆집 아줌마랑 인사도 하고 ..


얼마전 GroundHog Day때  6 more week이라고 했는데 

아직 2월 19일인데 벌써 60도 가까이 기온이 올라 버렸다.

올해도 GroundHog의 예측은 틀린 것 같은데 기분이 나쁘지 만은 않다.


덕분에 율이도 President Day Long weekend동안 Mondauk, Everybody's Playgound에서 하루 3~4시간씩 놀며 

그동안 못 푼 에너지를 마음껏 발산했다.


우리 율이는 새로운 집에서 

새롭게 맞이하는 봄을 기다리며 행복하게 잘 자라고 있다. .. ( 그렇지 율아 :-) ) 


'사는이야기 > Claire' 카테고리의 다른 글

Summer Camp  (0) 2017.08.21
4살..  (0) 2017.05.23
가을과 겨울 사이...  (0) 2016.12.15
2016년 여름 ( 세번째 여름 )  (0) 2016.08.18
세살 즈음에  (0) 2016.06.04
Posted by headiron
,



6개월에 한 번씩 가는 치과. 

불 빛 때문에 눈이 부실까 선글라스(?)를 씌워졌기에 한번 



012345

암만해도 집을 사게 되니 IKEA갈일이 많아 졌다.

좀 큰 가구를 주문하고 기다리는데 율이가 아이스크림 너무 맛있게 먹길래 상황극을 한 번..

우리 율이는 착해서 맛 있는 것도 잘 나눠줘요. :-)





할로윈 날 한국 교회에서 잔득 받아온 사탕을 즐기는 율이.

한국 교회들은 유독 할로윈 때 교회에서 별도의 행사를 하는데 

이웃집에서 같이 가자고 해서 갔다가 사탕을 잔득 받아 왔단다.

사실 이빨 상할까봐 안주고 있었는데 율이는 처음으로 사탕의 맛도 알게 되었다.

이웃 집 아기들과 놀고 있는 율이 

그동안 혼자 지내서 사회성이 걱정이었는데,

 친구가 생기니 다른 문제들이 걱정이 된다.



Fireplace 가 생기면 군 고구마 구워먹어야지 생각했었는데 아직까지 한 번도 사용하지 않고 있다.

내가 뉴욕 간 사이에 찍은 사진이니 아마도 율이가 찍은 듯..

이제는 율이가 사진까지 찍을 줄 안다.




최근에 가본 Red Robin.

맥도날드 보다 좀더 고급인 햄버거 체인 인데..

내 입맛에는 다른 Pub에서 먹는 버거가 좀더 맛있는 듯.


Black Friday 때 너무 피곤해서 카트에서 잠 듯 율이...

미안하기는 한데 율이 선물 사러 나왔던 거라서... :-)


Horsham Library 에서 

그동안 많은 사람들에게 추천을 받았던 곳인데 이제서야 가보게 되었다.

처음 가는 곳 인데도 율이 생각해서 도전해 보는 집사람이 대견해보였다.








매년 가는 Longwood Garden 크리스마스 장식.

크리스마스때는 트리 장식 보려고 온실에는 잘 안 들어 오는데 

율이가 꽃 보고 싶다고 해서 들어왔더니 실내도 정말 잘 해 놓았다.

덕분에 시간이 부족해서 실외 트리 장식을 못 보았지만, 크리스마스 이브때 다시 한 번 오리로...

Longwood Garden 입구에 직원이 불을 피워놓았기에 그 앞에서 한 컷.

생각해보니 이런 불을 직접 본 게 대학교때 캠프파이어 한 이후로는 처음 인 듯.

율이는 처음 보는 불인데 다행히 무서워 하지는 않았다.




여느 해 처럼 송년회 다음날 식구들과 하루 동안의 뉴욕 여행을 했다.

올해는 갑자기 날씨가 추워진 관계로 박물관을 가기로 하고 벼르고 벼르던 자연사 박물관에 가보았다.

테어도어 루즈벨트 동상 옆에서 

가만 보니 정말 로빈 윌리엄스를 좀 닮으신 듯.






덤덤.... 

사실 별 문에 띄는 것은 아닌데 영화에 한 번 나오다 보니..


역시 영화에 나와서 인지.. 공룡 앞 자리에서 사진 찍기는 조금 어려웠다.

'사는이야기 > Claire' 카테고리의 다른 글

4살..  (0) 2017.05.23
2017년 새로운 봄을 기다리며  (0) 2017.02.20
2016년 여름 ( 세번째 여름 )  (0) 2016.08.18
세살 즈음에  (0) 2016.06.04
2년 겨울  (0) 2016.02.09
Posted by headiron
,

BoneCP DB Pooling

개발자세상 2016. 11. 22. 07:33

아침에 출근한 이후에 우리 팀의 Fireglass ( Play 2.3 ) App때문에 DB Connection 이슈가 발생했다가 이 부분을 Fix해 달라는 요청이 왔다.


Connection관련해서 FG팀에서 권장(?) 했던 기본 설정을 사용했었는데 마침 Skinny ORM의 Cross DB access 이슈로 인해서 사용되는 Database개수 만큼 Connection을 생성하고 4 Host가 돌아 가다 보니 이슈가 발생한듯 했다.


일단 

        driver = com.mysql.jdbc.Driver

        url = "jdbc:mysql://DBHOST:3306/api?autoReconnect=true"

        user = "DB_USER"

        password = "DB_PASSWORD"

        connectionTestStatement = "/* ping */ select 1"

        idleConnectionTestPeriod = 1 minute

        idleMaxAge = 10 minute

        connectionTimeout = 20000

        partitionCount = 2

        minConnectionsPerPartition = 2

        maxConnectionsPerPartition = 5


이런 설정을 DB 개수 마다 했더니 한 Host에서 16 개의 DB Poolling이 계속 가지고 있었던 것이다.

참고로 우리는 4개 Host를 가지고 있었으니 16 * 4 = 64 개의  DB Connection이 그냥 이유없이 낭비 되고 있었던 것 ..


일단 원인은 알고 있으니 우선 partitionCount를 1로 줄이고, minConnectionsPerPartition을 1로 줄여서 테스트를 해 보았는데 Pool당 Connection이 하나가 아닌 둘이 Initial되는 것이다...


이것 저것 해 보다 maxConnectionsPerPartition 도 아래와 같이 1로 해보니, 그제서야  1개의  Connection만 생긴다.


        partitionCount = 1

        minConnectionsPerPartition = 1

        maxConnectionsPerPartition = 1


근데 이렇게 되면 Traffic이 많아 져서 Connection이 더 필요할 때 문제가 생길 소지가 다분하다.

뭐.. 이거 두고 왈과왈부 하고 있느데 , John이 "maxConnectionAge = 15 minutes"를 넣어 달라고 하면서 이 구문이 이유없이 생겨 있는 Connection 을 Clean up시켜 준다고 한다.

그래서 해보니 처음 Initial할때 일단 2개의 Connection이 생성되지만, 15분이 지나자 Config내용대로 하나의 Connection만 남고 다른 하나는 Clean up되어 버렸다.

        driver = com.mysql.jdbc.Driver

        url = "jdbc:mysql://DBHOST:3306/api?autoReconnect=true"

        user = "DB_USER"

        password = "DB_PASSWORD"

        connectionTestStatement = "/* ping */ select 1"

        idleConnectionTestPeriod = 1 minute

        idleMaxAge = 10 minute

        maxConnectionAge = 15 minutes

        connectionTimeout = 20000

        partitionCount = 1

        minConnectionsPerPartition = 1

        maxConnectionsPerPartition = 10


조금 이상하게 돌아가기는 하는데 어쨋든 원하는 해결책은 찾은 듯 싶다.

그나저나 Play 2.4이후로는 HikariCP라고 좀더 향상된 DB Pooling을 쓴다고 하는데 언제 시간 될떄 한 번 Upgrade를 해 봐야 할 듯 싶다.

'개발자세상' 카테고리의 다른 글

Mobile세상 ....  (0) 2017.06.03
JavaScript polling  (0) 2017.03.17
Rotating Linux Log file  (0) 2016.03.10
Continuous Integration with Jenkins  (0) 2016.03.04
Hibernate interceptor  (0) 2015.05.20
Posted by headiron
,

Console API 쪽으로 넘어 오고 나서 조금 낮설었던 단어 중에 하나가 UPSERT였다.


OAS의 경우는 데이터를 Delete할 경우에 데이터 자체를 없애는 반면 Console의 경우는 deleted field를 '1'로 Setting하여 데이터 자체를 남겨 두었다. 그리고 같은 이름의 데이터가 들어 오게 될 경우 기존 데이터의  deleted field를 '0'로 Flip하여서 재 사용 하는 방식인 것이다.


기본적인 Idea는 괜찮았는데, 문제는 어떻게 구현되어 있는지 모른다는 것이었다.

암만해도 Console API자체가 Framework화 되어 있고, 

Model Configuration하면 자동으로 API가 생성되니 내부적으로 그냥 구현하나 보다 하고 생각하고 있었다.


근데 최근에 API에 데이터를 입력하는데 오류가 발생한다는 Issue를 Follow up하다 보니 API Framework내부에서 MariaDB의 INSERT ON DUPLICATE KEY UPDATE 구문을 사용하는 걸 발견하였다.


https://mariadb.com/kb/en/mariadb/insert-on-duplicate-key-update/


INSERT INTO ...

ON DUPLICATE KEY UPDATE

  col=expr ....


DUPLICATE CHECK 대상은 Unique Index가 생성된 Field에 대해서다. 따라서 PK도 포함된다는.

괜찮은 기능인데 Oracle에서는 보았던 기억이 없다.


뭐.. Oracle이 이런 세세한 부분에서 조금 기능이 부족한 부분이 있으니깐 뭐..


참고로 Console API에서 발생했던 이슈는..

Facebook Mapping관련 테이블인데 

다른 테이블과 달리 Facebook Account ID를 PK로 두고 , brand, member를 Unique로 두고 있는데  

( 보통 Console은 Incremental Id를 PK로 사용하는데 대체 누가 이런 테이블 구조를 만들었는지..)

PI팀에서 기존 매핑을 지우고 새로운 Account Id를 brand, member 에 Mapping하고 싶었는데 

(brand, member) 의 Unique index때문에 새로운 row를 생성하지 않고 기존 데이터의 deleted column을 0으로 Filp하는 방식으로 처리되서 문제가 발생한 것이었다.

( API Framework내부에서 PK관련 FIELD들을 ON DUPLICATE KEY UPDATE clause에서 빼버리기 때문인데 뭐  reasonable하긴 한데 이런 부분에서 좀 문제가 생길 수 밖에 없었다. )

Facebook의 AdNetwork사업을 11월에 접기로 했으니 

Code수정 없이 그냥 DBA에게 해당 PK를 업데이터 하는 Query를 실행하도록 하여 이슈를 해결하도록 했다.

'개발자세상 > Database관련' 카테고리의 다른 글

Open Cursor issue  (0) 2014.10.25
listagg function and ORA-01489  (0) 2014.01.09
Oracle TEMP 파일 삭제  (0) 2013.09.23
오라클 DB에서 테이블마다 용량 구하기  (0) 2013.08.10
Overlap 데이터 구하기  (0) 2013.08.04
Posted by headiron
,

처음 해본 딸기피킹.

집 근처에도 있지만 회사 동료가 추천 해준 1시간 정도 거리에 가서 해 보았다.

재밌고 신기하기는 한데, 앉아서 따다 보니 조금 힘들긴하다.

하지만 율이는 자기 키 높이에 있어서 인지 재밌어 했다.

가을에는 사과 피킹도 할까 했는데 아마도 올해는 조금 힘들지 않을까 싶다.

집에서 율이와 셀카 찍기 놀이

가끔 가는 마이도에서 음식 기다리며... 

곰 인형은 거기 있는거..

올해도 어김없이 동네 카니발... 

작년에는 놀이 기구 몇 개 탈 수 없었는데..올해는 작년보다 더 많은 기구를 탈 수 있었다.

아마도 내년에는 대 부분의 기구를 탈 수 있을 듯 하다. 

오랜만에 맛보는 Funnel Cake과 처음 맛보는 솜 사탕.

초여름에 즐겨보는 동네 수영장..

누에고치 돌이도 해보고...

동네 iHop에 식사 하러 갔더니 풍선으로 인형만들어 주는 아저씨가 있었다.

율이 한테 꽃 만들어 주셨는데... 우리 엄마는 외계인에 꼳히셨다는..


회사 Field Day에 처음 해보는 Face painting

회사 Summer Friday를 맞이하여 가본 뉴저지 해변.

휴가 내서 2박 3일로 가보니 좀더 여유 있게 즐길 수 있었다.

마눌님은 뉴저지 해변이 파도도 쌔고 좀더 좋은 곳에 가보고 싶다고 하지만 그래도 가까운 곳에 해변이 있는 우리 동네가 좋다.


올 여름은 많이 즐기지 못했지만 내년에는 좀더 즐거운 여름을 보내보고 싶다.

'사는이야기 > Claire' 카테고리의 다른 글

2017년 새로운 봄을 기다리며  (0) 2017.02.20
가을과 겨울 사이...  (0) 2016.12.15
세살 즈음에  (0) 2016.06.04
2년 겨울  (0) 2016.02.09
2살 그리고 몇 개월 즈음  (0) 2015.09.11
Posted by headiron
,