Tags
bootstrap, 분산시스템, 이력서, MicroService, MSA, spring, spring-cloud-config, spring-integration, trace
admin bootstrap themes
https://daveismyname.com/free-bootstrap-admin-themes-bp#.VPz9sFOsU7Z
저같은 back-end 개발자들에게는 front 구현 역량이 좀 부족한 것은 사실입니다. 정확히는 생산성과 퀄리티가 떨어지죠. 🙂
특히 UI관련해서는 센스가 부족하기도 하고, 작업하다보면 개발자스럽게 화면이 나옵니다.
다행히 BootStrap같은 UI Template이 나와서 많은 도움이 되었죠.
어떤 프로젝트를 하던간에 admin tool은 거의 만들텐데요. 내부 운영자가 사용하는 만큼 Ux guide나 제한조건등을 까다롭게 따지지 않는다면 위의 BootStrap Theme를 이용하면 백엔드 개발자가 순식간에 운영툴을 만들수 있을겁니다.
S/W엔지니어의 이력서 작성법
http://www.haeyounglee.com/post/41769497481/how-to-write-a-killer-resume#.VP5KCFOsWba
요약하면, 중요한 업무 내용와 자랑거리들을 기술적 업무를 부각시키면서 구체적으로(수치등) 적시하고, 절대 거짓말과 과장을 하지 말라 입니다.
저도 이력서를 상당히 많이 보고, 면접을 봤습니다만, 아무래도 이력서의 내용이 위와 같다면 눈길이 가는게 사실입니다. 여기에 과거 경력이 좋은 경우는 더 눈길이 갑니다.
면접을 진행하면, 구체적으로 업무와 성과를 적시해놓은경우 질문과 답변이 더 원활한경우가 많았고, 거짓으로 점철된 경우 금방 탄로납니다. 🙂
면접을 볼때, 태도도 굉장히 중요한데요. 자신감있게 응하면서, 아는것과 모르는 것을 정확히 구분해, 아는 것은 얘기하고 모르는 것은 모른다고 솔직하게 얘기하는게 저에게는 더 와닿았습니다. 모호한게 말한다면 .. 개발도 모호하고 대충 개발할것 같은 느낌적인 느낌때문이죠 🙂
대규모 분산 시스템 추적 플랫폼, Pinpoint
http://helloworld.naver.com/helloworld/1194202
한줄로 요약하면 네트워크 환경에서 method calll을 추적하는 method.printstacktrace의 느낌? 입니다.
bytecode instrumentation 기법 (http://ukja.tistory.com/17 참고, java의 bytecode를 직접 수정하는 .. )을 이용해서 aop 기법과 같이 소스 수정없이 원하는 코드에 추적코드를 심습니다.
추적코드를 통해 분산환경에서 어떤 로직들이 순서대로 콜되었는지 트리형태로 보여줄 수 있게 됩니다.
네트워크 환경에서 디버깅에 유용할 것 같습니다 🙂
Spring-Integration
http://projects.spring.io/spring-integration/#quick-start
EIP (http://www.eaipatterns.com/)을 지원하는 프로그래밍 모델 확장판입니다. 대략 풀어서 설명해보면 엔터프라이즈환경에서 이기종 플랫폼간의 메시징 서비스를 제공하여 통합을 이끌어내는 것이 아닐까 싶습니다.
EIP에서 얘기하는 아래의 개념은 모두 구현되어 있다고 하네요.
- Endpoint
- Channel (Point-to-point and Publish/Subscribe)
- Aggregator
- Filter
- Transformer
- Control Bus
외부 시스템과의 통합은 아래와 같은 메시징 프로토콜을 지원합니다.
- ReST/HTTP
- FTP/SFTP
- WebServices (SOAP and ReST)
- TCP/UDP
- JMS
- RabbitMQ
다양한 플랫폼상의 메시징 교환이 일어나는 곳이라면 spring-integration을 고려해봐야 하지 않을까요?
Spring Cloud Config
http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_client_side_usage
spring 개발 환경에서 유동적 정보를 context에 전달하기 위해서 spring profile 이나 여러 configuration을 사용할 겁니다. 보통은 startup시 jvm에 parameter로 전달하거나 혹은 properties파일을 이용합니다.
MSA(Micro Service Architecture)가 한창 뜨고 있는 요즈음(?)에 이런 설정정보들을 각각의 프로젝트에서 관리할 수도 있겠지만 cloud 서비스처럼 한곳에서 이런 설정정보를 제공한다면 조금 더 개발 및 관리가 수월할수도 있을것 같습니다.
이를 사용하려면 어느정도 규모가 있는 환경에서 다양한 프로젝트가 구동되어야겠지만요.. 🙂
MicroService
마이크로 서비스 아키텍처의 개념을 어느정도 잡을 수 있는 글입니다. 마틴 파울러 아저씨(?)의 글을 번역한 글입니다.
MSA를 지향할때 무조건적인 신봉은 금물입니다. SOA도 좋은 모델이었지만.. 거의 실패(?)했죠..
MSA도 그럴 가능성이 없다고는 못합니다. 올바른 곳에 올바른 솔루션을 도입해야하는 이유죠.
실제 제가 하고 있는 업무에서는 몇가지 고려할 점이 있었습니다. 트랜잭션 문제? 장애 상황 대처? 분산된 데이터 관리 문제? 어디까지가 마이크로 서비스인가? 등등등..
모놀리딕에서 간단한 문제를 더 복잡하게 푸는것은 아닐까? 라는 생각이 들기도 하지만 분명 이 아키텍처가 도움이 됩니다. 전면적인 도입보다는 순차적, 선별적으로 개념을 도입해보는건 어떨까요?