5월, 2017의 게시물 표시

Naver/JAVA

기업 소개 [본 채용 공고는 잡플래닛 매칭서비스 일환으로, 예비 서류 전형 통과 시에만 개별연락을 통해 진행되는 점 양해 부탁드립니다] 주요 업무 - 네이버 페이플랫폼 개발 - JAVA기반의 full stack개발 자격 요건 핵심 직무 역량 - 쇼핑이나 PG, 결제관련 연동개발 경력 3-10년사이 - 네이버 페이 플랫폼의 확장성 및 가용성을 높이는데 기여할 수 있는 분 - Linux플랫폼에서 Java를 이용한 웹서비스 개발 경험 - Java 및 관련 프레임웍(예:스프링) 개발 경험 - Micro service architecture (MSA)기술 경험자 우대 -내경험 MSA: google protobuffer 사용하여 HMI와 south side 서비스와의 통신 MSA: RSI 인퍼이스 및 마이크로서비스아키텍쳐를 사용하여 통신 리눅스자바: MIB3프로젝트가 리눅스기반의 자바 프로젝트임 AsyncIO로 통신 스프링으로 RESTFUL API 간단한 서버 구축 OAuth 서버 구축 JAVA ANdroid 포팅&테스틩&관리 5년 JAVA SCJP 자격증 및 LG사내 JAVA자격증 취득

마이크로서비스아키텍쳐(MSA)란?

일단 모노리틱 아키텍쳐에 대해서 알아보면 -단일 기술로 사용 -관리는 편함 -하나의 서버에 모든 비지니스 로직이 들어가 있는 형태 -하나의 집중화된 데이터베이스에 모든 데이터가 저장됨 -여러개의 기술을 혼용하기 어려움 (node.js. spring, Ruby, python) -배포 및 재기동 시간이 오래 걸림 -수정이 용이하지 않음 (타 컴포넌트 의존성) 마이크로서비스 아키텍쳐란? -시스템을 여러개의 독립서비스로 나누어 연결 -SOA의 경량화 버전 -인터페이스로는 (Rest,Thrift,Protocolbuffer,AMQP...) -End point는 API gateway -여러 API를 묶어서 요구사항에 맞는 로직을 구현해야 하는 곳 : Orchestration -Common APIs는 여러 서비스들이다 마이크로서비스의 장점 -홈쇼핑을 예로들어 -사용자관리,상품관리,주문관리를 해야함 -이 세가지의 기능을 분리하여 개별서비스로 만듬 -신뢰성이 필요한시스템(사용자관리,주문관리)는 JAVA로 만듬 -상품관리는 신뢰성이 비교적 덜 중요하기떄문에 빠르게 개발할수 있는 node.js+mysql로 구현 -복잡한 데이터 면 RDMS를 사용 -양이 많고 단순한 데이터면 NoSQL 사용 -ROI향상 및 TCO경감(개발기간다운 및 기존서비스재사용, 싼머신채용가능) 단점 -테스팅이 어려움(서비스하나를 추가하면 종속요소가 많이 늘어남) -장애 진단 -팀의 역량에 따른 일정 및 품질 문제 -트렌젝션 관리 API 게이트웨이 -API인증/인가 -로깅 -라우팅 -메시지 변환 -메시지 프로토콜 변환 -있어도되고 없어도 됨(없으면 클라이언트가 하부서비스에 개별 접근해야겠지) -잘못쓰면 망하는 지름길 그래서 실패를 염두에 두고 디자인해야한다 시스템의 다운타임, 서비스 속도 지연, 얘기치않은 응답등을 처리할 수 있어야함 그리고 로드밸런싱도 중요하다 http://cfile8.uf.tistory.com/image/27...

실용주의 방법론 Iterative&Incremental

-애자일기반 -요구사항이 변할것을 가정 -에러가 있을것을 가정하여 자주 테스트 -협업과 커뮤니케이션 -Scrum!

요즘 개발환경

아침에 출근해서 -이클립스를 켜고 -repo로 묶인 소스코드를 git에서 check out -JIRA를 통해서 오늘의 할일을 확인한 후 코딩 -PC에서 Junit등을 이용하여 유닛테스트 -repo upload (git push) -Jenkins에서 코드를 감지하여 빌드테스트/단위테스트를 수행하고 코드의 라인 커버리지를 분석하여 리포팅 -리뷰어 및 팀장은 단위테스트100%완료 및 라인커버리지80%완료를 확인 -릴리즈시 Jenkins에서 빌드된 그날 WAR를 확인하고 Fabric으로 된 배포스크립트를 수행하며 QA환경으로 자동배포도 이루어지어 테스트도 수행. 만약 테스트실패시 이전 버전으로 자동 롤백