Spring 4 + Esper로 websocket으로 실시간 모니터링 데이터를 보는 프로젝트 조사중에
MDN에 websocket 문서가 누구나 (Github 계정만 있으면) 수정 가능하다는 걸 알았다!
언제나 도움만 받았는데 나도 미흡하게나마 번역을 해봐야겠다 흐흐
요즘 들어서 Scala를 공부하고 있다. 아직 많이 부족하지만, 지금까지 배운 것들 기록해두고, 또 혹시 조금이라도 도움이 되는 분들이 있을 지 몰라 공유해보고자 한다.
뭘 또 배워야 한단 말인가? 이미 C++, Java, Python, Ruby, JavaScript 등 많은 프로그래밍 언어들이 있는데, 왜 자꾸 새로운 언어가 나오고 있냐? 기존 걸로 안되냐?
라는 의문을 가질 수 있다. 나 역시 처음에 그런 생각을 했었다. 하지만, Scala에 대해 공부를 하다 보니, 이제는 그런 의문들이 많이 없어졌다. 어떻게 의문을 해소했었는지, 그럼 조금 자세히 이야기 해보겠다.
Scala는 다음과 같은 특징이 있다.
Ruby나 C#을 쓰다가 Java나 C++ 같은 언어를 쓸 때 조금 답답한 것이, lambda와 같은 functioncal language적인 syntax가 없다는 것이다. 이것을 안 쓸때는 몰랐는데, 일단 손에 익으면 생산성이 매우 높아진다. Scala는 lambda를 비롯하여 여러 functional language의 문법을 지원한다. 동시에, object-oriented적인 요소도 지원하기 때문에, objected-oriented language에 익숙한 프로그래머들이 functional language를 배우고자 할 때 쉽게 다가갈 수 있다.
나는…
원본 글 보기 938단어 남음
주변에서 Play Framework과 Scala에 대한 관심이 많아지고 있는 것 같다. 지난 2년간 이 조합으로 application 서버를 개발하면서 성능이나 개발 생산성에서 아주 만족하고는 있지만, 아직은 reference가 많지 않아서 중간에 어려움을 많이 겪었다. 오늘은 Scala + Play Framework2의 조합에서, thread를 활용해 성능 향상을 할 수 있는 부분에 대해서 공유해보려고 한다.
Scala 및 Play Framework에 대해서는 이전에 작성한 포스팅을 참고.
일반적인 웹서비스는 보통 다음의 flow로 사용자의 request를 처리하는 것 같다.
규모가 있거나 좀더 복잡한 서비스의 경우에는 DB서버나 Cache 서버 외에 또 다른 application 서버를 이용하기도 한다. 이때 병목이 되는 부분은, 대개의 경우에는 외부의 서버와 통신하는 부분이다. 즉, DB, Cache, 다른 application 서버에 무언가를 요청하고 결과를 기다리는 작업에서 CPU 연산과는 order가 다른 수준으로 시간이 걸린다. 그래서, 어떻게 외부 서버와 효율적으로 통신을…
원본 글 보기 578단어 남음
여기저기 글들을 읽다가 재밌는 채용공고를 찾았다. (주기적으로 바뀌는거 같으니 링크는 언제 잘릴지 난 모름)
서류전형에서부터 출제된 퀴즈를 풀어서 같이 내는 건데
이 회사 채용 프로세스가 빡세다.
서류전형에서 퀴즈
미션 코딩 시험 한번 더
면접 때 또 다시 코딩 시험
프로젝트가 오늘로서 끝이 났기 때문에 마음의 여유가 생겨서 그런가
갑자기 재밌어보여서 나름대로 끄적여 보았다.
끄적인 수준이기 때문에 코드는 더럽…
github
Github의 편리한 사용을 위해서 (매번 패스워드를 치다니!!)
Github에 공용키를 등록하고 개인키를 사용해서 인증을 받아 사용하는 방법을 주로 사용한다.
개인키를 등록하는 방법은
#ssh-agent를 시작 $ ssh-agent -s #개인키를 등록 $ ssh-add ~/.ssh/id_rsa
그런데 Git Bash에 개인키를 등록시 아래와 같은 에러가 나는 경우가 있다.
Could not open a connection to your authentication agent
그럴 땐
#ssh-agent를 시작 $ eval $(ssh-agent) #개인키를 등록 $ ssh-add ~/.ssh/id_rsa
로 등록하면 등록이 성공적으로 된다.
DEBUG o.a.t.d.d.BaseLocaleUrlDefinitionDAO - File Resource file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-admin.xml at file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-admin.xml not found, continue DEBUG o.a.t.d.d.BaseLocaleUrlDefinitionDAO - File Resource file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-test.xml at file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-test.xml not found, continue DEBUG o.a.t.d.d.BaseLocaleUrlDefinitionDAO - File Resource file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-admin_en.xml at file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-admin_en.xml not found, continue DEBUG o.a.t.d.d.BaseLocaleUrlDefinitionDAO - File Resource file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-test_en.xml at file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-test_en.xml not found, continue DEBUG o.a.t.d.d.BaseLocaleUrlDefinitionDAO - File Resource file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-admin_en_US.xml at file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-admin_en_US.xml not found, continue DEBUG o.a.t.d.d.BaseLocaleUrlDefinitionDAO - File Resource file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-test_en_US.xml at file:/D:/Utils/for%20DEV/Apache%20Tomcat/Tomcat/webapps/ekrWeb/WEB-INF/classes/tiles/tiles-test_en_US.xml not found, continue
Example 1.
Exmple 2.
위의 코드를 Javascript 엔진이 해석할 때는 아래와 같다.
이러한 Hoisting 으로 때문에 개발자는 예상치 못한 오류를 만날 수 있기 때문에
한 함수 안에서 모든 선언문은 명시적으로 함수 맨 처음에 선언해주는 것이 좋다.
아직 8개월 반남았다 !