'2016/06'에 해당되는 글 2건

  1. 2016.06.16 Scala 2
  2. 2016.06.04 세살 즈음에

Scala

개발자세상/자바세상 2016. 6. 16. 01:27

팀을 옮긴지 근 1년이 되는 시점에 드디어 Scala로 개발한 Product를 Release하게 되었다.


개발자로 경력시작하면서 의도하지 않게 asp, php를 배운이후로 새로운 언어를 배우는게 근 15년 만인듯 싶다.


1년 가까이 Scala, Play를 공부하며 매달려서 드뎌 하나를 개발했다는 자부심도 느끼지만, 아직도 Scala에 대해서 절반도 이해하지 못한 듯 싶어 너무 아쉽기도 하다.


가끔은 이렇게 어려운 언어가 왜 Popular할까 하는 생각도 하게 되는데... 내가 너무 오랫동안  OOP언어에 갇혀 있었기 때문이 아닌가도 생각된다.

아마도 예전에 Cobol로 개발하던 사람들도 Web시대로 오면서 비슷한 느낌이었을 까..


어쨋든 새로운 창 하나를 얻었다는 것이 기쁘고.. 

또 이번 Project를 하면서 얻었던 정보도 잊기 전에 기록해 두는 것이 좋을 듯 싶다.


회사의 Fireglass Framework을 사용하였지만 그 근간은 Play 2.3이다.

Fireglass에는 여러 Module들이 있는데 그 중 Moria라는 DB 모듈이 있다.

원래대로라면 DB Framework으로 이걸 사용해야 하는데, 어찌 하다 보니 다른 솔루션들을 검토하게 되었고, 그 중에  SkinnyORM을 사용하게 되었다.


http://skinny-framework.org/documentation/orm.html


Skinny Framework의 Sub framework 인데 Light weight하면서도  기능도 Powerful한 Framework이다.

ORM자체로서의 기능도 좋고, 근간이 ScalikeJDBC라는 Native SQL을 사용하기 때문에 Native Query를 사용할 수도 있다.

또 Skinny 에서 제공되는 Validator도 사용방법이 간단하면서도 쉽게 Expandable하게 되어 있어서 선택하게 되었다.


물론 MYSQL을 사용할 떄 다른 DB에 있는 TABLE을 지원하지 못하는 제약사항이 있기는 한데.. 

https://groups.google.com/forum/#!topic/skinny-framework/7zF4cQp3CLY

일단 DB만큼의 DB Pooling을 생성하고 각 Model별로 DB connection name을 overloading하는 방법으로 workaround할 수있었다.


Play와 연동은 아래 문서를 참조하면 되었다.

http://scalikejdbc.org/documentation/playframework-support.html


나는 일단 Play 2.0 ~ 2.3의 scalikejdbc-play-plugin을 이용하는 방법을 사용했는데 , 테스트를 진행하다 보니 Play의 DB config를 읽어 와서 자체 DB Pooling을 생성하여 사용하는 구조였다.

Redundant한 DB Pooling이 생기고 Play에서 설정된 DB Pool관련 Enhanced Option을 사용하지 못하는 문제가 발생했다. 특히나 Play에서 설정한 idleConnectionTestPeriod 설정을 읽지 않아서 DB Connection이 close되는 이슈가 발생했다.

이 문제는 scalikejdbc-play-dbplugin-adapter를 사용함으로써 해결이 되었다.


DB Pooling관련 이슈를 Followup하면서 발견한 사실인데 Play의 경우 2.3 에서 2.4로 넘어 가면서 DB Pooling library가 바뀌었다.

2.3에서는 BoneCP 라는 library를 사용하였는데, 2.4에서 Hikaricp로 변경이 되었다.

 BoneCP : http://www.jolbox.com

 HikariCP : https://brettwooldridge.github.io/HikariCP/


왜 바꾸었는지 보다 보니 BoneCP Framework이 Deprecate되어서 HikariCP로 넘어 가게 되었다.


일단 우리는 2.3을 사용하니 BoneCP에 맞추어 아래와 같은 Advanced Option을 사용하였다.


connectionTestStatement = "/* ping */ select 1"
idleConnectionTestPeriod = 1 minute

idleMaxAge = 10 minute
connectionTimeout = 20000
partitionCount = 2
minConnectionsPerPartition = 2
maxConnectionsPerPartition = 5
poolMaxSize = 10

다른 Option들에 대해서는 좀더 체크해 봐야 겠지만 특히나 좋은 부분은 idelConnectionTestPeriod인것 같다.

여기에 설정된 Duration에 맞추어 connection 을 테스트 하기때문에 DB 서버에서 Timeout 되어서  DB close하는 이슈를 방지할 수 있다.


일단 새로운 언어, 새로운 Framework에 대해서 알게 되었으니 좀더 공부해서 완전한 나의 창으로 만들어야 겠다.

특히나  Type System, Actor Model, Monad 등 좀더 고급 기능에 대해서 좀더 파해치다보면 Scala전문가가 될 수 있지 않을까 싶다.

 


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

Chronos Notification issue  (0) 2018.06.09
POI로 Pivot테이블 만들기  (0) 2017.11.28
Mockup 테스트  (0) 2016.02.02
java.lang.OutOfMemoryError: unable to create new native thread  (0) 2015.08.15
Control character in XML  (0) 2014.05.28
Posted by headiron
,

Ladybug 율이...

Ikea에서...

율이가 이제는 자신의 어떤 모습이 예쁜 모습인지 아는것 같다. 시키지 않았는데 자연스럽게 예쁜 모습이 나온다.


올해도 어김없이 집 앞 목련 나무는 예쁘가 피었다.


우연히 알게된 필리 유일의 일본 가게 마이도... 가끔 일본 음식이 생각 나면 가곤 한다.

뭐... 뉴저지의 미쯔와 만큼은 아니지만 뭐.. 그래도 그럭저럭 일본음식을 즐길 수 있다.

아마 율이가 엄마 뱃속에 있었을 때 알았다면 더 좋았을 텐데..








올 봄에도 어김없이 가본 Longwood Garden. 올 봄 날씨가 좀 Crazy해서 인지 벗꽃 구경도 못하고.. -.-

그래도 예쁜 Tulip을 보면 늘 기분은 즐겁다.

예전에는 생각도 못했는데 이제는 마트에서 김밥 사서 즐기기도 한다는..


우리 율이에게 새로 생긴 도깨비 친구..

영미 누나 고마워요..

세계에서 제일 큰 크레용 에서



우연히 뉴저지 사는 지인 통해서 알게된 Creyola Experience.

우리 집에서 한시간 거리의 Easton이라는 곳에 있다.

한 번 가봐야지 하다가 비오는 날에 맞추어 가서 놀아 보았다.

율이보다는 한 두살 많은 아이들에게 좋은 곳일 듯 싶었는데 

율이는 재밌었는지 자주 가고싶다고 졸라대곤 한다.

조만간 비오는 주말에 한 번쯤 더 가볼 듯...


갈 수록 이뻐지고 있는 우리 율이

그래도 배고 푼건 못 챂는 듯..


세 살을 맞이 하여 이번에는 제대로 된 케잌으로 축하해 주었다.

촛불에 불을 붙이자 갑자기 율이가 울기 시작한다.

왜 그럴 까 생각해 보니 지난 겨울에 화재가 났던 아파트가 생각 나서 불이 무서웠나보다.

( 아파트 단지내의 다른 건물에서 불이 났었는데 .. 우리는 다음날에 서야 알게 되었다. 종종 아파트 산책하다 불에 탄 집을 보다 보니 불이 조금은 무서워 졌나보다. ) 



우리 율이는 생일 소원을 뭘 생각 했을까..


처음 먹어 본 케잌이 맛있었는지. 케잌이 있는 4일 동안 항상 우리에게 생일 파티하자고.. ( 케잌목자고) 졸라 대곤 헀다.

아직까지 사탕 같은 건 안주고 있는데.. 조금씩 먹게 되는 단 음식 까지 못 먹게 하기는 조금 힘 들다. 


세살 맞이 정기 검진...

그동안은 그냥 검진을 받았는데.. 이제는 일반 병원 처럼 환자 가운을 입혀준다. 

몸무게나 키도 어른 처럼 일반 체중계를 사용하고, 

그리고 이제는 1년 뒤 네살이 되면 오면 된단다. 다만 네살 때 오면 예방 주사 몇 개 맞을꺼라고..

그동안 한달 두달 세달 이렇게 조금씩 기간을 늘려가면서 체크업을 했었는데 아마도 3살 아기는 특별하게 조심해야 하는 부분들이 많지 않기 때문인 듯 하다. 다만 이제는 Social activity를 신경 써야 한다는 얘기를 하는데.. 마침 이날이 회사에 자녀들 대려오는 날이라 병원 검진 끝나고 회사로 gogo..


아직은 어리지만 다른 애기들 이랑 어울려서 잘 놀고.. 또 아빠 엄마랑은 먹어 보기 힘든 단 음식도 많이 먹어 보고..


마침 율이 세살 생일 다음주에 대사관 가야 할 일이 생겨서 식구들 모두 대리고 뉴욕으로 향했다.

나는 회사 가서 일하고 율이랑 엄마는 Central Park가서 시간을 보내고..


율이가 앵무새가 좋았는지.. 계속 Parrot보고 싶다고...

펭귄도 있었다는데.. 펭권 보는 것 보다는 수족관 주위 돌아 다니는 걸 더 좋아했다던가..

놀이터에서 다른 아이들과 놀고 있는 율이 

회사 동료가 나눠 준 인형 들고 좋아 하는 율이..

동료는 필리 오프스에 가져다 놓아 달라고 한거였는데.. 율이가 너무 좋아 해서 다시 가져가기 조금 힘들었다는 ..

뉴욕 대사관 민원실 옆에 있는 한국 문화관에서.. 생각해보니 나도 이런 것 앞에서는 사직 찍어 본적이 없는 것 같은데..


구글 컨퍼런스 갔다가 받았던 선글라스인데 결국 율이 장난감이 되어 버렸다.

너무 좋아 했는데.. 자주 쓰다가 눈 나빠질까바.. 나중에 조용히 치워버렸다..


필리 시청 옆 공원에 있는 분수 앞에서 한컷..


율이 세살 생일 전후로... 여러 일이 있었다.

뭐. 그 중에서 제일 기뻤던 건 병원에서 율이를 어른 처럼 대하기 시작했다는 것이다.

그리고 지난 삼년 동안 크게 아픈 기억없이 잘 자라 주어서 너무 기쁘고 감사했다.

미국에 오면서 제일 걱정 했던 것이 병원 이었고, 특히나 율이가 나을때 쯤 에는 집 사람이나 율이가 아프면 내가 잘 대처할 수 있을 까 걱정이 많았는데.. 그냥 나의 기후로 만들어 준 게 너무 고마웠다.

율아.. 지금까지 별 탈 없이 잘 자라줘서 고마워...

아빠 엄마가 아직 미숙하지만.. 우리 율이 사랑 하는 마음은 세상 어떤 것과도 비교할 수 없단다.


노스웨일즈 김씨 가문의 Claire 율은 오늘도 무럭 무럭 잘 자라고 있다.






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

가을과 겨울 사이...  (0) 2016.12.15
2016년 여름 ( 세번째 여름 )  (0) 2016.08.18
2년 겨울  (0) 2016.02.09
2살 그리고 몇 개월 즈음  (0) 2015.09.11
율이 2살 즈음..  (0) 2015.05.27
Posted by headiron
,