변수 와 메서드 명에 대한 15가지 명명 규칙

  1. 코드의 각각 시점에 따라 변수명을 길게 혹은 짧게 쓴다. 보편적으로 말해보자면 loop counter의 경우 1 char로, condition/loop 변수 경우에는 1단어, 메서드의 경우 1-2 단어, 클래스의 경우 2-3단어, globals한 모든 변수/메서드의 경우에는 3-4단어를 사용한다.
  2. 변수의 이름에 구체적인 이름을 사용해야한다. 해서는 않되는 예를 들어보자면 “value”,”equals”,”data”이러한 이름을 사용해서는 안된다.
  3. 변수에 대한 의미있는 이름을 사용합니다. 변수 이름은 그 내용의 정확한 설명을 정의해야합니다.
  4. 변수명이 o_, obj_, m_ etc로 시작해서는 안됩니다. 변수는 변수를 나타내는 태그를 별도로 붙여서는 않됩니다.
  5. 회사 명명 표준을 준수하고 해당 응용 프로그램에 맞춰 지속적으로 변수 이름을 작성해야합니다. : e.g. txtUserName, lblUserName, cmbSchoolType, … 그렇지 않으면 가독성을 reduce and find/replace시키는 툴들을 사용할수 없을것입니다.
  6. 프로그래밍 언어 표준을 준수하고 모순되는 소문자 / 대문자를 사용하지 마십시오: e.g. userName, UserName, USER_NAME, m_userName, username, …
    •  Java 를 예로 들면,
    • use Camel Case (aka Upper Camel Case) for classes: VelocityResponseWriter
    • use Lower Case for packages: com.company.project.ui
    • use Mixed Case (aka Lower Camel Case) for variables: studentName
    • use Upper Case for constants : MAX_PARAMETER_COUNT = 100
    • enum class 이름 과  enum values의 대문자의 경우 Camel Case를 사용합니다.
    • 상수와 enum 값 (어떤는 상수)를 제외하고 어디서나 ‘_’를 사용하지 않습니다.
  7. 서로 다른 context에서 같은 클래스의 같은 변수 이름을 재사용하지 마십시오: context의 범위 ( 메서드, 생성자, 클래스 안에서). 그렇게 함으로써 모든이들이 쉽게 이해하고 유지보수 할수있습니다.
  8. 다른 목적의 method, conditional etc를 같은 변수로 쓰지말자. 차라리 새로만들거나 다른 명칭의 변수명으로 대신하자. 이것은 유지보수적인 측면과 가독성 측면에서 중요한부분이다.
  9. ASCII 캐릭터가 아닌 변수명을 사용하지 말자. 플랫폼에 따라서 작동하지 않을수가 있다.
  10. 너무 긴 변수명은 쓰지말자 (예. 길이가 50자이상인경우) 너무 긴 이름은 보기 좋지 않고 읽기가 힘들고 몇몇 컴파일러에서 character제한에 걸려서 작동이 안한다.
  11. 하나의 언어로만 명명하자 예를들어 영어랑 독일어랑 섞어서 쓰게되면 뭔가 불일치하고 읽기도 힘들다.
  12. 이름은 메서드의 정확한 동작을 지정해야하며 대부분의 경우에 대해 동사로 시작해야합니다. 예를 들어 createPasswordHash 이런식으로 해야합니다.
  13.  회사의 명명 규칙에 따르고 어플리케이션에 따라 메서드명을 작성해야한다. getTxtUserName(), getLblUserName(), isStudentApproved(), … 같이 그러하지 않으면 가독성을 reduce and find/replace하는  tool들을 사용할수 없습니다.
  14. 회사의 명명 규칙에 따르고 대/소문자가 일치 하지 않는 characters 를 사용해서는 않됩니다. 예를 들어  getUserName, GetUserName, getusername, … 같은
    • Java의 예를 들자면
      • use  Mixed Case  for method names: getStudentSchoolType
      • use  Mixed Case  for method parameters: setSchoolName(String schoolName)
  15. 메서드 매개 변수에 대해 의미있는 이름을 사용한다면, 별도의 문서 정의가 없이도  자체적으로  문서화가 될수 있습니다.

15 Best Practices of Variable & Method Naming를 번역했습니다.

출처 - http://jangnan.wordpress.com/2012/02/21/%EB%B3%80%EC%88%98-%EC%99%80-%EB%A9%94%EC%84%9C%EB%93%9C-%EB%AA%85%EC%97%90-%EB%8C%80%ED%95%9C-15%EA%B0%80%EC%A7%80-%EB%AA%85%EB%AA%85-%EA%B7%9C%EC%B9%99/


===================================================================================




출처 - http://cafe.naver.com/centerjava/63












'Development > Common' 카테고리의 다른 글

동기 비동기  (0) 2012.07.03
lang - 정규 표현식  (0) 2012.05.23
Alpha, Beta 버전  (0) 2012.04.27
문자 바이트 수 계산기  (0) 2012.04.12
Base64 원리 2  (0) 2012.04.11
Posted by linuxism
,

'Development > Common' 카테고리의 다른 글

lang - 정규 표현식  (0) 2012.05.23
변수와 메서드 명명 규칙  (0) 2012.04.27
문자 바이트 수 계산기  (0) 2012.04.12
Base64 원리 2  (0) 2012.04.11
unreachable code  (0) 2012.03.12
Posted by linuxism
,

Cloud Computing

System/Common 2012. 4. 27. 09:51


그리드컴퓨팅ㆍ유틸리티컴퓨팅ㆍ서비스로서의 소프트웨어(SaaS : software as a service) 개념이 혼합된 컴퓨팅인프라의 집합

데스크톱PCㆍ휴대폰ㆍ노트북 등 물리적으로 서로 다른 위치에 존재하는 다양한 정보들을 웹 기반 애플리케이션을 활용, 대용량 데이터베이스를 가상화기술로 통합해 제공하는 기술 및 환경을 말한다. 통합된 데이터들은 인터넷가상데이터센터에서 분산처리하고, 이 데이터들을 다시 가공하거나 각 단말기로 보낼 수도 있다. 다시 말해 소프트웨어와 데이터를 인터넷과 연결된 중앙컴퓨터에 저장하고, 기본 기능을 갖춘 단말기로 인터넷에 접속하기만 하면 언제 어디서든 컴퓨터 작업을 할 수 있는 기술이다. 개인 단말기에는 정보를 남기지 않고 중앙시스템에 연결해 사용하므로 정보의 보안성을 높일 수 있다.

클라우드컴퓨팅이라는 명칭은 복잡하고 번거로운 일들을 더 이상 지상(PC)에서 처리하지 않고 구름 위(중앙서버)로 올려보내 필요할 때마다 중앙서버와 연결해 쓴다는 의미에서 붙여졌다. 대표적인 클라우드컴퓨팅 환경으로는 구글의 구글캘린더 서비스, 아마존의 Amazon S3 서비스 등이 있다.

출처 - 네이버 지식사전

=======================================================================

클라우드 컴퓨팅(cloud computing)은 인터넷 기반(cloud)의 컴퓨팅(computing) 기술을 의미한다. 인터넷 상의 유틸리티 데이터 서버에 프로그램을 두고 그때 그때 컴퓨터나 휴대폰 등에 불러와서 사용하는 웹에 기반한 소프트웨어 서비스이다.

목차

  [숨기기

[편집]개요

[편집]일반

  • 클라우드 컴퓨팅은 IT 관련된 기능들이 서비스 형태로 제공되는 컴퓨팅 스타일이다.
  • 사용자들은 지원하는 기술 인프라스트럭처에 대한 전문 지식이 없어도 또는 제어할 줄 몰라도 인터넷으로부터 서비스를 이용할 수 있다.
  • IEEE 에서는 "정보가 인터넷 상의 서버에 영구적으로 저장되고 데스크탑이나 테이블 컴퓨터, 노트북, 벽걸이 컴퓨터, 휴대용 기기 등과 같은 클라이언트에는 일시적으로 보관되는 패러다임이다." 라고 말한다.
일반적인 클라우드 컴퓨팅에서 소프트웨어와 데이터는 서버에 저장된다.
  • 클라우드 컴퓨팅은 웹 2.0SaaS(software as a service)와 같이 최근 잘 알려진 기술 경향들과 연관성을 가지는 일반화된 개념이다.
이들 개념들의 공통점은 사용자들의 컴퓨팅 요구를 만족시키기 위해 인터넷을 이용한다는 사실이다. 예로서 구글 앱스(Google Apps)가 있다.

[편집]모식도

Cloud computing.svg

컴퓨터 네트워크 구성도에서 인터넷을 구름으로 표현한다. 이때 구름은 숨겨진 복잡한 인프라 구조를 의미한다. 사용자는 이러한 복잡한 인프라 구조를 알지 못해도 클라우드 컴퓨팅을 이용 할 수 있다.


1. 클라우드 컴퓨팅 Techno MBA 홍형우

[편집]역사

클라우드 컴퓨팅의 개념은 1965년경 미국의 컴퓨터 학자인 존 매카시가 "컴퓨팅 환경은 공공 시설을 쓰는 것과도 같을 것" 이라는 개념을 제시한데에 있다. 1990년대 중반에는 이미 클라우드라는 용어가 거대한 규모의 ATM을 지칭하는 데 쓰였다. General Magic라는 회사는 1995년 3월부터 AT&T와 다른 여러 통신사들과 제휴를 맺고 클라우드 컴퓨팅을 서비스를 최초로 시작했다. 하지만 이 시기는 소비자 중심의 웹 기반이 형성되기 전의 일이었기 때문에 클라우드 컴퓨팅 사업은 실패했다. 10년이 지난 2005년에 들어서야 클라우드 컴퓨팅이라는 단어가 널리 퍼지기 시작했다. 하지만 2005년 당시에도 클라우드 컴퓨팅의 대부분의 내용들은 SaaS에 집중되어 있었다. 이후에는 꾸준히 발전하여 2012년 현재는 SaaS에만 집중되어있지 않다.


[편집]장점

  • 초기 구입 비용과 비용 지출이 적으며 휴대성이 높다.
  • 컴퓨터 가용율이 높다. 이러한 높은 가용율은 그린 IT 전략과도 일치한다.
  • 다양한 기기를 단말기로 사용하는 것이 가능하며 서비스를 통한 일치된 사용자 환경을 구현할 수 있다.
  • 사용자의 데이터를 신뢰성 높은 서버에 보관함으로써 안전하게 보관 할 수 있다.

[편집]단점

  • 서버가 공격당하면 개인정보가 유출될 수 있다.
  • 재해에 서버의 데이터가 손상되면, 미리 백업하지 않은 정보는 되살리지 못하는 경우도 있다.
  • 사용자가 원하는 애플리케이션을 설치하는 데에 제약이 심하거나 새로운 애플리케이션을 지원하지 않는다.
  • 통신환경이 열악하면 서비스받기 힘들다.

[편집]공용 클라우드와 사설 클라우드

공용 클라우드(Public cloud)는 아마존 웹 서비스와 같은 외부 서비스 제공자가 관리하며, 인터넷을 통해 접근하기도 하며, 일반적인 공적업무를 위해 이용된다.[1] 사설 클라우드(Private cloud)는 네트워크 소유자나 데이터 센터에서 가상화의 서비스와 같이 서버, 저장, 네트워크 데이터 그리고 애플리케이션 함께 묶어 둔다. 그래서 회사 내부의 이용자들이 공유할 수 있도록 하는 것이다. 공용 클라우드와 달리, 사설 클라우드는 데이터 저장과 컴퓨팅 전력을 할당할 수 있고, 또 다른 자원을 균일하게 제공할 수 있다. 재무제표와 헬스케어 제공자들은 사설 클라우드를 더 많이 이용하는데 그 이유는 민감한 재무적 자료와 개인적 데이터를 조정해야 하기 때문이다.[2]

[편집]주석

  1.  Laudon, Kenneth C, Jane P. 《Management Information Systems 12/E: Managing the Digital Firm, CHAPTER 5, 213P》. Pearson Education Asia. ISBN-10 : 027375453X / ISBN-13 : 9780273754534
  2.  Laudon, Kenneth C, Jane P. 《Management Information Systems 12/E: Managing the Digital Firm, CHAPTER 5, 213P》. Pearson Education Asia. ISBN-10 : 027375453X / ISBN-13 : 9780273754534


[편집]같이 보기

[편집]주석



=======================================================================

클라우드 컴퓨팅의 이미지도. 사용자 관점에서 클라우드 (구름 네트워크)에 공급자가 제공하는 각종 서비스가있다.


클라우드 컴퓨팅 ( 영어 : cloud computing )은 네트워크 , 특히 인터넷 을 기반 컴퓨터 의 이용 형태이다. 사용자는 컴퓨터 작업을 네트워크를 통해 서비스 로 이용한다.

목차

  [ 숨기기 ] 

이름 편집 ]

Cloud computing icon.svg

클라우드 "(구름)은 네트워크 (대개 인터넷 )을 나타낸다. 기존보다 "컴퓨터 시스템의 이미지도"에서는 네트워크를 구름 그림에서 나타내는 경우가 많고, 그것이 유래가 전해지고있다. "클라우드 컴퓨팅"이라는 용어가 버즈 워드라는 논의는 아래의 유사한 용어 를 참조하십시오.

개요 편집 ]

기존의 컴퓨터 사용은 사용자 (기업, 개인 등)가 컴퓨터의 하드웨어 , 소프트웨어 , 데이터 등을 자신의 보유 · 관리하고 있던 반면, 클라우드 컴퓨팅에 대한 "사용자는 인터넷의 저편 에서 서비스를 받아 서비스 이용 요금을 지불 "형태가된다.

사용자가 준비해야 할 것은 최소한의 접속 환경 ( 개인용 컴퓨터 와 휴대 정보 단말기 등의 클라이언트 , 그 위에 움직이는 브라우저 , 인터넷 접속 환경) 만이며, 또한 클라우드 서비스 이용 요금을 지불한다. 실제로 작업이 실행되는 컴퓨터와 컴퓨터의 네트워크 서비스를 제공하는 기업 측에 설치되고 해당 컴퓨터 본체 및 네트워크의 구입 및 관리 운영 비용과 축적된 데이터 관리의 수고는 감소 된다.

클라우드 컴퓨팅은 기존부터 존재하는 네트워크 컴퓨팅 , 유틸리티 컴퓨팅 , SaaS 등을言い替え것, 또는 이러한 요소를 포함 더욱 발전시킨 것, 등이된다.

정의 로, 미국 국립 표준 기술 연구소 (NIST)에 따르면 다음 정의가 인용되는 경우가 많다.

  • Cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (eg, networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. This cloud model promotes availability and is composed of five essential characteristics, three service models, and four deployment models. [1]
  • (참고 직역) 클라우드 컴퓨팅 (이하의) 편리성을 제공하는 모델의 것이다 (아래는) 구성이 가능한 컴퓨팅 리소스 (예 : 네트워크 / 서버 / 스토리지 / 응용 프로그램 / 서비스)로 구성된 공유 레이어에, 온 디맨드 네트워크 접속. 이러한 리소스는 빠르게 최소 관리 노력 또는 서비스 제공자 상호와의 교환으로 공급하고 선보일 수있다. 이 클라우드 모델은 5 가지 기본적인 특성 세 가지 서비스 모델 및 4 개의 배포 모델되고 그에 따라 효과를 촉진한다.
클라우드 컴퓨팅 계층 ( SaaS 는 Application을 PaaS 는 Platform을 IaaS 는 Infrastructure를 제공한다)

클라우드 컴퓨팅은 다음의 3 종류로 분류되는 경우가 많다. 또한 다음을 총칭하여 XaaS 라고 부르는 경우도있다.

SaaS
인터넷을 통한 소프트웨어 패키지 제공. 전자 메일 , 그룹웨어 , CRM 등. 세일즈 포스 닷컴 의 Salesforce CRM,마이크로 소프트 의 Microsoft Online Services , Google의 Google Apps 가있다.
PaaS
인터넷을 통해 응용 프로그램 실행을위한 플랫폼을 제공. 가상화 된 애플 리케이션 서버 와 데이터베이스 등.사용자가 응용 프로그램을 배치하고 운용할 수있다. 세일즈 포스 닷컴 의 Force.com 플랫폼, Google의 Google App Engine , AppScale , 마이크로 소프트 의 Windows Azure , Amazon.com 의 Amazon S3 및 Amazon DynamoDB및 Amazon SimpleDB 등.
HaaS 또는 IaaS
인터넷을 통해 하드웨어 및 인프라 제공. 서버 가상화 및 데스크탑 가상화 및 공유 디스크 등. 사용자가 직접 OS 등을 포함한 시스템 도입 · 구축할 수있다. Amazon.com 의 Amazon EC2 등.

클라우드 컴퓨팅의 형태로 제공하는 서비스를 "클라우드 컴퓨팅 서비스"또는 간단히 " 클라우드 서비스 "해당 서비스 사업자를"클라우드 서비스 제공자 "또는 간단히" 클라우드 공급자 "라고도 부른다.


클라우드 컴퓨팅의 종류 (퍼블릭 클라우드, 프라이빗 클라우드, 하이브리드 클라우드)


'System > Common' 카테고리의 다른 글

libpcap  (0) 2012.07.09
DNS - named 설정 점검  (0) 2012.05.14
대용량 데이터 분석 기술 (Big Data Analytics)  (0) 2012.04.26
HP LoadRunner  (0) 2012.04.24
로케일(Locale)이란  (0) 2012.04.19
Posted by linuxism
,