본문 바로가기

클린 코더스 강의 3. Function 인텔리제이는 리펙토링을 하는데 많은 기능을 제공한다. 이 기능들만 잘 사용해도 쉽게 리펙토링 할수 있다. Ctrl + Shift + A : 기능탐색 -> "Extract Method Object" : 본래코드는 클래스를 만들어서 콜하게 된다. 모든 코드를 메소드로 추출한것. -> "Field" 검색 : 변수 필드로 빼기. 여러군데에서 사용하고 있는 변수를 필드 변수로 올리기. 이점 : 파라미터가 2개이상인 변수는 Extract Method를 이용해서 함수를 추출할 수 없을뿐더라 파라미터가 많은 함수는 클린코더스가 추구하는 방향과 맞지 않다. 가독성이 떨어지기 때문. -> "Extract Variable" 검색 : Extract Method를 하기 전에 중복된 코드이나 스트링이 다른 경우에 변수로 빼내어 ..
Jersey RESTful Web Services and JerseyRESTful API 웹 서비스는 웹에서 가장 잘 동작하도록 만들어진 서비스입니다. Representational State Transfer (REST)는 일관된 인터페이스와 같은 제약 조건을 지정하는 아키텍쳐 스타일로서 웹 서비스에 적용하는 경우, 성능, 확장성 및 수정 가능성과 같은 바람직한 속성을 유도하여 웹에서 최상의 서비스 동작을 가능하게 합니다. REST 아키텍쳐 스타일에서 데이터 및 기능은 리소스로 간주하며, URI (Uniform Resource Identifier)를 사용하여 접근합니다. URI는 일반적으로 웹에서 연결합니다. 리소스는 일련의 단순하고 잘 정의된 작업을 사용하여 수행합니다. REST는 서버-클라이언트 아키텍쳐에 한하여..
클라우드 SW 사례 연구 소프트웨어의 환경이나 네트워크 속도가 빨라지면서 클라우드 서비스의 관심이 늘어가는 추세지만 지금까지도 시스템 구동을 위해서는 서버와 스토리지, 네트워크를 설치하는 부담을 가지고 있다. 클라우드 서비스는 이러한 부담을 줄이는 매우 효과적인 방법으로 알려져 있고 구글이나 아마존과 같은 클라우드 서비스 업체는 소프트웨어 개발 환경까지 클라우드 서비스로 제공하면서 클라우드 서비스는 더 늘어날 것으로 보인다. 소프트웨어는 어떻게 구성하느냐에 따라 성능이 큰 차이를 보이기 때문에 이번 회에서는 효과적인 소프트웨어 구성을 위한 클라우드 아키텍처에 대한 정의와 필요한 요소에 대해 살펴보기로 한다.사례 연구 전 확인 사항클라우드(Cloud) 서비스의 정의클라우드 서비스는 사용하려는 기술이나 장비에 대한 정확한 지식이 없..
쿠버네티스 Kubernetes #1 - 소개 조대협 (http://bcho.tistory.com)배경도커와 쿠버네티스를 알게 된건 수년전인데, 근래에 들어서 다시 쿠버네티스를 보기 시작하였다.컨테이너 기반의 환경은 배포에 장점이 있고 마이크로 서비스 아키텍쳐 구조에 잘 맞아들어가는 듯 싶지만, 컨테이너가 약간 빠르다는 장점은 있지만, 가상 머신으로도 충분히 패키징이 가능하고, 로컬의 개발환경을 동기화 시키는 장점은 vagrant 로도 충분하다는 생각을 가지고 있었다. 그리고 결정적으로 도커 컨테이너를 운용하기 위한 컨테이너 관리 환경이 그다지 성숙하지 못했었다. Mesosphere, Swarm, Kubernetes 등 다양한 환경이 나오기는 하였지만 기능적으로 부족한 부분도 많았고, 딱히 어떤 플랫폼이 대세라고 정..
Elastic Beanstalk 간편하게 사용하는 애플리케이션 플랫폼 서비스 Elastic Beanstalk이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30Elastic Beanstalk은 Node.js, PHP, Python, Ruby, Java, .NET 애플리케이션을 실행하고 배포할 수 있는 플랫폼을 제공하는 서비스입니다. Elastic Beanstalk은 실제로 서비스를 제공하는 AWS 리소스가 아니라서 사용 요금이 없습니다.Elastic Beanstalk은 벤처 기업, 스타트업 같은 작은 조직에서 유용합니다. 또는, 전문 서버 인력을 상시 배치할 수 없는 조직에서도 유용합니다. 그리고 규모가 큰 대기업에서도 구매, 결재, IT 부서의 지원을 기다리지 않고 빠르게 프로토타입을 구현하는데도..
Message Queue Message Queue는 왜 사용해야 하는가?일반적인 서버-클라이언트 구조에서는 사용자가 요청을 하면 서버는 그에 대한 처리를 한 후 사용자에게 응답을 한다. 간단한 서버 구조에서는 굳이 Message Queue(이하 MQ)를 사용할 필요가 없다. 우선 MQ를 적용하려면 RabbitMQ, Kafka, ActiveMQ등 다양한 MQ 중에서 시스템 목적에 맞는 MQ를 선정해야 하고 또 서버에 MQ를 설치해야 한다. 설치로 끝이 아니라 그 사용 방법 및 라이브러리 사용법도 익혀야 하며 MQ가 지원하는 다양한 옵션 중에 시스템 목적에 맞는 옵션을 찾아 설정해야 하고 주고 받을 메시지 구조도 정의해야 할 뿐만 아니라 다양한 전달 방식 중 시스템 목적에 맞는 방식을 선정해야 한다. 단순히 서버에서 처리하면 이런 ..
CI, CD CI : “CI”는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미. CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 병합되므로 여러명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결.CI(지속적 통합)를 통해 개발자들은 코드 변경 사항을 공유 브랜치 또는 "트렁크"로 다시 병합하는 작업을 더욱 수월하게 자주 수행할 수 있습니다. 개발자가 애플리케이션에 적용한 변경 사항이 병합되면 이러한 변경 사항이 애플리케이션을 손상시키지 않도록 자동으로 애플리케이션을 구축하고 각기 다른 레벨의 자동화 테스트 (일반적으로 단위 테스트 및 통합 테..