기본 콘텐츠로 건너뛰기

7월, 2018의 게시물 표시

[간단번역] Top 20 REST and Spring MVC Interview Questions for Java Developers - Javin Paul

Javin Paul( LinkedIn , Javarevisited , JAVA67 )은 프로그래머면서 블로거인데, 자바나 스프링과 관련돼서 저도 가끔 들어가는 블로그의 주인장입니다. 특히 저 JAVA67 사이트는 자바와 관련된 기술적인 다양한 글들이 있어서 몇 번 도움을 받았던 부분이 있었습니다. 이번에 Javin Paul이 Top 20 REST and Spring MVC Interview Questions for Java Developers라는 제목으로 DZone에 글이 하나 올라왔는데 꽤 간단히 정리를 잘했더군요. 초보 개발자나 중급 개발자 정도의 레벨에서 주로 할만한 질문들을 정리해 놓은 글들인데, 일단 제가 볼 때는 3년 이하의 개발자들이 한 번쯤 정리하고 지나간다 생각하고 볼만한 글로 보입니다. 진짜 못하는 영어이지만 간단히 번역해서 소개해 봅니다. 번역은 그냥 반말 대화체로 진행합니다. 말투나 의역이 거슬리더라도 이해 바랍니다. 20개의 질문이라더니 실제로는 22개네요. 정말 번역하시는 분들 존경합니다. 이리 힘든 일을... 원문 :  Top 20 REST and Spring MVC Interview Questions for Java Developers - Javin Paul (DZone) 안녕 친구들! 최근 몇 개월 동안 그리고 오늘까지 REST와 Spring 강좌를 나눠왔는데, 자바 웹 개발자를 지원했을 때 자주 받게 되는 Spring MVC와 REST에 대한 질문들을 나눠볼까 해. 자바 웹 프로그램과 RESTful Web Service를 개발하면서 Springframework는 가장 보편적이고 표준적인 프레임워크이기 때문에, Senior 자바 개발자에게는 Spring Core와 Spring MVC에 대한 충분한 지식이 필요해. 그러나 작업 명세에 REST와 Web Service가 명시되어있다면, 스프링을 이용해서 RESTful web service를 어떻게 개발할 것인가 하는 것도 알아야 해. Spring 3.1 이후로 S

Pivotal이 Knative에서 구글과 힘을 합쳤다고 합니다.

며칠 된 소식으로 보이는군요. Pivotal이 Knative에서 구글과 힘을 합쳤다고 합니다. Knative는 구글이 Google Cloud Service에서 Kubernetes + Istio를 발전시켜서 Serverless 생태계에 좀 더 나은 솔루션을 제공하려고 만든 프로젝트라고 합니다. ( Knative 프로젝트 메인 페이지 , Knative Github ) Kubernetes와 Istio는 Cloud Service에 관심 있으신 분들은 잘 아시는 내용일 텐데요. 전 Istio는 이번에 처음 봤습니다. 찾아보니 Google, IBM, Lyft가 기여하고 있는 오픈소스 Service Mesh 구현체라고 합니다. 즉, 서비스 간의 통신을 추상화하고 거기에 Service discovery, Load balancing, Dynamic Request Routing, Circuit breaking, Retry and timeout, Distributed tracing 등등을 지원하는 서비스를 Service Mesh Service라고 하는데, 이것의 구현체 중 하나가 Istio라고 보시면 될 것 같습니다. (자세한 내용은 Cloud Labs Tech의 글을 참고 ) Spring Cloud에는 이미 Spring Cloud Neflix 프로젝트에 의해서 대부분 포함이 되어있는 기능이 아니냐고 생각하실 텐데요. 이 기능을 스프링 프로젝트에 설정하지 않고 Kubernetes + Istio 에서 지원을 한다는 뭐 그런 내용이지요. 아무튼 이 프로젝트에 그동안 Pivotal의 엔지니어들이 풀타임으로 지원을 했다고 하네요. 결국 Pivotal이 서비스하고 있는  Pivotal Container Service (PKS) 에  Knative가 통합이 되었다고 합니다. 현재 저는 그냥 앞서 말씀드렸던 Spring Cloud의 일부 모듈을 설정해서 사용하고 그 위에 docker-compose의 내부 통신 추상화 기능을 사용하고 있습니다만, 관련 글들

[포스트 공유] Top Five Books to Learn Spring Boot and Spring Cloud for Java Developers

오늘도 다른 이의 포스트를 공유해 드립니다. 몇 년 전부터 매우 핫한 아이템이죠. 스프링부트와 클라우드서비스! 지금은 철 지난 포스트가 되었지만 몇 년 전에 저도 여러 포스트를 올린 적이 있습니다. 버전을 업해서 포스트를 꾸준히 관리해놔야 하는데, 최근 보다 보니 제 포스트보다는 다른 분들의 포스트가 훨씬 훌륭해서 그냥 과거의 산물로 놔두기로 했습니다. (핑계는 그만~~ ^^) 오늘은 그와 관련된 책을 소개한 포스트 하나를 공유하려고 합니다. Top Five Books to Learn Spring Boot and Spring Cloud for Java Developers Infotech 의 Lead Programmer 시고, 제가 자주 가는 DZone 에서도 활발히 활동하시면서 많은 글을 올리시는  Javin Paul 이라는 분의 시각에서 바라본 Top 5 입니다. Top XX 라는 글들을 그리 좋아하지는 않지만 보다 보면 몰랐던 새로운 것을 발견하게 되는 즐거움이 있기도 하죠. 이 글도 최근에 발표된 책들 위주로 정리가 되어있어서 관심 있게 본 글입니다. 참고로 아래는 글에서 언급된 책에 대한 국내 정보와 간단한 정리입니다. 언제나 그렇듯이 원문에는 더 많은 정보가 있으니 꼭 원문을 봐주시길 바랍니다. 1. Spring Boot in Action Walls, Craig가 쓴 책입니다. 국내에서는 스프링부트 코딩 공작소라는 이름으로 번역되어 발매되어 있습니다. 번역본은 2016년 7월 31일에 발매되었다고 합니다. 저도 이 책을 봤습니다만, 스프링부트에 대해서 개괄적인 이해와 동작을 확인하기에 딱 좋은 책이라고 생각합니다. 스프링부트를 사용하고도 한 1년쯤 지나서 이 책을 봤던 거 같은데, 그냥 무작정 검색하고 레퍼런스를 참고해서 쓸 때의 약간의 답답한 부분들을 해소해줬던 책이었던 기억이 있습니다. 다시 보면서 좀 더 정확한 감상을 적고 싶지만, 서울집에 책이 있어서... 2. Cloud Native Java

[외국 포스트 공유] 어떻게 하면 더 나은 코드를 짤 것인가? (How to Write Better Code?)

프로그래머가 되고 싶어서 시작하는 친구들도 2~3년 정도를 프로그램해 온 친구들도 또는 그 이상을 프로그래머로 회사에서 일했던 친구들도 모두가 가장 궁금해 하는 건 어떻게 하면 더 좋은 코드를 짤 수 있는가가 아닐까 싶습니다. (사실 이런 고민을 하는 친구들은 정말 훌륭한 프로그래머들의 자질이 있다고 생각하죠. 저런 고민조차 없는 직장인 프로그래머들이 훨씬 많긴 하죠) 저도 15년 정도 여러 분야의 여러 직장에서 프로그래머로 일을 하고 지금도 홀로 개발하는 상황에서 가장 많은 질문을 받았고 지금도 받는 질문일지도 모릅니다. 2년 차에는 어떻게 해야 할까요? 전 5년 차인데 뭘 준비하면 좋을까요? 저는 사실 대기업에서 근무를 해본 적도 없고 그리 훌륭한 프로그래머도 아닙니다. (대기업에 다녀야 훌륭한 프로그래머라는 얘기는 아닙니다. 대기업에서 할 수 있을 만큼의 큰 프로젝트를 해 본 적이 없다는 의미입니다.) 즉, 저런 질문에 뻔뻔하게 답을 해 줄 수 있을 만큼의 능력이 안 됩니다. 그래도 최근에 블로그를 새로 열면서 한 번쯤은 제가 중소기업 또는 중견기업에서 일하면서 느꼈던 프로그래머로서의 본질적인 부분들에 대한 내용을 정리해보는 것도 나쁘지 않겠다는 생각이 들더군요. 한 번 준비를 해 보자는 생각으로 조금씩 정리를 해 보고 있는데 참 쉽지 않더군요. 그래서 제가 도움을 받았던 책들이나 생각들이라던가 실제 있었던 일들이라던가를 간단히 정리해 보고 있습니다. 역시 가진 것이 별로 없다 보니 쉽지 않더군요. 그런데 오늘 뉴스리더를 보다 보니 제 생각과 비슷한 부분이 상당히 많은 외국 포스트가 하나 올라왔더군요. 그래서 일단은 이 글을 공유하는 것에서 시작해 보고자 생각했습니다. 이 글의 내용의 핵심을 조금은 극단적인 표현으로 요약하면 협업을 잘하고 다른 동료에게 민폐가 되지 않게 프로그램을 개발하는 것이 좋은 코드를 만드는 방법이라는 겁니다. 저게 전부는 아니겠지만, 아니 아니지만 저런 자세에서 시작되는 게 아닐까 합니