반응형

책소개

“소프트웨어 개발이라는 긴 여로의 시작, 생각하는 프로그래머의 길은 어떻게 가야 하는가.”

『실용주의 프로그래머』가 숙련된 프로그래머에서 마스터로 가는 깊은 통찰을 전해줬다면 이 책은 견습 프로그래머가 숙련 프로그래머로 성장하는 길을 안내하는 지침서다.

흔히 프로그래밍을 공부하면서 진지한 고민 없이 인기 있는 언어를 선택하고, 개발에 몸담은 햇수를 기준으로 앞길을 결정하고는 한다. 

『프로그래머의 길, 멘토에게 묻다』는 당신이 소프트웨어 개발 분야에서 경력의 시작을 설계하고 이 분야에서 탁월한 개발자가 될 수 있도록 자기 자신을 세우는 일에 관한 책이다.

프로그래밍을 생업으로 삼으며 견습이라고 부를 만한 시기에 어떻게 행동해야 이상적인 길을 걸을 수 있을지, 정말로 제대로 배우려면 어떤 마음가짐이어야 하는지, 커뮤니티를 어떻게 활용해야 내게 도움이 되는지 등 구체적인 상황과 해결책을 멘토의 조언을 빌어 제시한다. 

//구매동기.
“소프트웨어 개발이라는 긴 여로의 시작, 생각하는 프로그래머의 길은 어떻게 가야 하는가.”

위에 문구가 마음에 들었다. 개발, 긴 여로, 시작, 생각, 프로그래머, 길 내가 좋아하는 단어들이다.
그 중에 가장 마음에 드는 단어는 프로그래머. 요즘에는 흔히 개발자라고 많이 부른다.
프로그래밍이 재미 있었고 프로그래머란 직업을 동경했다.
그러던 사이 나도 자연스럽게 프로그래밍을 생업으로 삼으며 살아가는 "개발자"가 되어버렸다.
그리고 애초 생각하고 꿈꾸었던 길과는 다른 길을 걷게 되고 고민도 하면서
그저 주저앉아 버렸는지 모르겠다. 이 책을 구매한 동기도 조언을 듣고 싶어서이다.
나에게도 멘토가 있었으면 한다. 소통을 나눌수 있는 멘토.꿈을 이야기 하는 멘토.
부족한 실력으로 꿈을 이야기 하기엔 한국엔 실력있는(?)분들의 질타가 많다.
한국에서 프로그래머의 길은 어떻게 가야하는가? 그 길을 엿볼수 있는 책 이였으면 좋겠다.

반응형

 
  1. 특정 데이터베이스의 DEFAULT CHARACTER SET 확인 방법
    • SHOW CREATE DATABASE db_name;
    • 이렇게 하면, 해당 데이터베이스를 생성하는데 사용할 수 있는 DDL 문장을 보여주는데, 거기에 기본 문자셋에 대한 정보도 포함되어 있음.
  2. 특정 테이블의 DEFAULT CHARACTER SET 확인 방법
    • SHOW CREATE TABLE table_name;
    • 이렇게 하면, 데이터베이스와 동일하게 해당 테이블을 생성하는데 사용할 수 있는 DDL 문장을 보여주는데, 거기에 기본 문자셋에 대한 정보도 포함되어 있음.
  3. 특정 데이터베이스의 DEFAULT CHARACTER SET 수정하는 방법
    • ALTER DATABASE db_name [DEFAULT] CHARACTER SET = charset_name;
    • 참고로, 이 방법은 현재 이 데이터베이스에 속해있는 테이블들의 문자셋을 변경하는 것은 아님. 다만, 향후에 CREATE TABLE 문장으로 테이블(들)을 새로이 추가하려고 할 때 (해당 테이블들에 명시적으로 문자셋이 지정되지 않은 경우) 해당 테이블들이 기본적으로 가지게 될 DEFAULT 문자셋을 지정하는 것에 불과함.
  4. 특정 데이터베이스의 DEFAULT COLLATION 수정하는 방법
    • ALTER DATABASE db_name [DEFAULT] COLLATE = collation_name;
    • 참고로, 이 방법은 현재 이 데이터베이스에 속해있는 테이블들의 collation을 변경하는 것은 아님. 다만, 향후에 CREATE TABLE 문장으로 테이블(들)을 새로이 추가하려고 할 때 (해당 테이블들에 명시적으로 collation이 지정되지 않은 경우) 해당 테이블들이 기본적으로 가지게 될 DEFAULT collation을 지정하는 것에 불과함.
  5. 특정 테이블의 DEFAULT CHARACTER SET 수정하는 방법
    • ALTER TABLE table_name [DEFAULT] CHARACTER SET = charset_name;
    • 참고로, 이 방법은 현재 테이블에 들어가있는 칼럼들의 문자셋이나 collation을 변경하지는 않는다. 다만, 향후에 ALTER TABLE 문장으로 칼럼(들)을 새로이 추가하려고 할 때 (해당 칼럼들에 명시적으로 문자셋이나 collation이 지정되지 않은 경우) 해당 칼럼들이 기본적으로 가지게 될 DEFAULT 문자셋을 지정하는 것에 불과함.
    • collation도 함께 수정하려고 할 때는 다음과 같이 한다.
    • ALTER TABLE table_name [DEFAULT] CHARACTER SET = charset_name COLLATE = collation_name;
    • 만약, 이미 테이블에 포함되어있는 칼럼들에 지정되어있는 문자셋이나 collation을 수정하고 싶은 경우에는 다음과 같이 'CONVERT TO'를 사용해야 한다.
      • ALTER TABLE table_name CONVERT TO CHARACTER SET = charset_name [COLLATE =collation_name];
      • 이렇게 하면 현재 테이블에 포함되어있던 각 컬럼들에 지정되어있던 문자셋이 모두 동일하게 새로운 문자셋과 collation으로 변경되게 됨.
      • 그런데, 이렇게 'CONVERT TO'를 사용하면 새로운 문자셋이 기존의 문자셋보다 Max_len 이 큰 경우 각 컬럼들에 지정되어있던 데이터 타입의 크기 역시 함께 변경이 된다. (예를 들어, TEXT 타입이었다면 MEDIUMTEXT 타입으로 변경되기도 함) 또한 각 컬럼들에 저장되어있는 실제 '값'도 역시 새로운 문자셋으로 변경이 일어난다(매뉴얼에서는 이렇게 이야기하고 있는데, 직접 확인 필요)
      • 만약, 이렇게 데이터 타입의 크기나 '값'의 변화를 원하지 않는 경우에는 'CONVERT TO'를 사용하면 안되고 각 컬럼마다 'MODIFY' 명령어를 통해 각각 수정해주어야 함.
      • ALTER TABLE table_name MODIFY column_name VARCHAR(10) CHARACTER SET charset_name [COLLATE collation_name];
      • 좀 더 자세한 사항은 직접 매뉴얼을 참고할 것.
  6. [참고] 현재 시스템에서 지원하는 문자셋들의 목록을 보고 싶을 때
    • SHOW CHARACTER SET;
      • 이렇게 하면 지원하는 문자셋 목록을 모두 다 보여줌. 문자셋 이외에도 해당 문자셋이 선택되었을때 (별도로 명시적으로 collation을 지정하지 않았을때 사용되는) Default collation도 보여주고, 해당 문자셋이 최대 몇 바이트를 차지하는지에 대한 Maxlen 정보도 함께 보여줌.(고정폭 인코딩을 사용하는 문자셋이 아니라 가변폭 인코딩을 사용하는 문자셋도 있으므로 그야말로 Maxlen임)
    • 만약, 전체 목록이 아니라 필터를 사용해서 일부 목록만 보고 싶을 때는 다음과 같이 하면 된다.
    • SHOW CHARACTER SET LIKE '%euc%';
  7. [참고] 현재 시스템에서 지원하는 collation 목록을 보고 싶을 때
    • SHOW COLLATION;
      • 이렇게 하면 지원하는 collation 목록을 모두 다 보여줌. 해당 collation이 속해있는 문자셋 정보, 해당 collation이 Default collation인지 여부 등의 정보도 함께 보여줌.
    • 만약, 전체 목록이 아니라 필터를 사용해서 일부 목록만 보고 싶을 때는 다음과 같이 하면 된다.
    • SHOW COLLATION LIKE '%euc%';
    • 또한, 각 문자셋별로 Default collation만을 걸러서 보고 싶을 때는 다음과 같이 한다.
    • SHOW COLLATION WHERE 'Default' = 'Yes';

 

다시한번 강조하지만, 여기에서 정리한 것들은 이미 값이 들어가있는 테이블이나 칼럼 등에 영향을 주는 것이 아니라는 점... 헷갈리지 마시길!!! 
<출처: http://blog.naver.com/kumimo?Redirect=Log&logNo=80090608750 >


각 데이터베이스 별로 인코딩을 설정하기
1. 생성시
CREATE DATABASE [DB_NAME]  DEFAULT CHARACTER SET [char_set] COLLATE [coll_name];
ex> CREATE DATABASE db_name CHARACTER SET euckr COLLATE euckr_korean_ci;

2. 생성된 데이터베이스 수정시
ALTER DATABASE [DB_NAME] CHARACTER SET  [char_set] COLLATE  [coll_name];
ex> ALTER DATABASE db_name DEFAULT CHARACTER SET  euckr DEFAULT COLLATE  euckr_korean_ci;

3. 테이블의 텍스트 값과 기본 인코딩 변경하기
ALTER TABLE [TABLE_NAME] CONVERT TO CHARACTER SET [char_set];

위 명령은 컬럼들의 값을 바꾸는데, 값이 바뀌는 것을 원하지 않는 경우(예를 들어, 테이블은 latin1을 사용하는데 저장된 텍스트들은 utf8인 경우, 테이블의 캐릭터 셋만 바꾸면 되므로)엔 다음과 같이 칼럼별로 수행한다.

ALTER TABLE t1 CHANGE c1 c1 BLOB;
ALTER TABLE t1 CHANGE c1 c1 TEXT CHARACTER SET utf8;
ALTER TABLE t1 DEFAULT CHARACTER SET utf8;

반응형
출처: http://www.ibm.com/developerworks/kr/xml/standards/x-soapspec.html
 난이도 : 중급

필자: W3C

2007 년 6 월 26 일

SOAP 프로토콜에서는, 인터넷 프로토콜로 연결된 시스템들간 통신에 XML을 사용할 수 있습니다. XML 정보에 표준 인벨롭(envelope)을 제공하여 네트워크 메시지들을 통해 전송될 수 있도록 하고, 메시지 바디(body)에 대한 규약도 제공합니다. SOAP의 역사를 이해하고, 웹 서비스, 서비스 지향 아키텍처(SOA), Representational State Transfer (REST)와의 관계를 이해해 봅시다.

SOAP [W3C Recommendation]은 인터넷 프로토콜을 사용하여 연결되어 있는 시스템들 간 통신에 XML을 사용하는 프로토콜이다. 많은 사람들은 SOAP을 XML 웹 서비스의 토대, XML 데이터 포맷을 사용하여 연결된 시스템간 인터랙션을 관리 및 구성하는 기술, 인터넷 통신 프로토콜로 생각하고 있다. SOAP은 원래 IBM®을 비롯한 다양한 기업에서 모인 사람들에 의해 개발되었다. 견고한 아키텍처와 상용 지원을 갖추었던 초기 XML 메시징과 유사한 기능을 제공했기 때문에 빠르게 대중화되었다. World Wide Web Consortium (W3C)으로 넘어간 SOAP의 개발은 SOAP 1.2까지 탄생시켰고, 많은 아키텍처 향상을 이룩했지만, 이에 못지않게 많은 논란의 대상이 되었다. SOAP 프로토콜은 가상 XML 페이로드를 포함하여 XML Envelope 포맷을 정의하고 있다. (실제 SOAP 메시지의 페이로드가 XML의 완전한 기능을 사용하지 못한다는 사실은 상당한 논쟁거리가 된다.)

XML 웹 서비스는 서비스 지향 아키텍처(SOA)라고 하는 일반적인 개념과 밀접하게 연관되어 있지만, 이 중 어떤 개념들도 SOAP을 대체하지는 못한다. 많은 사람들은 HTTP를 통해서 직접 미가공 XML 문서들을 교환한다는 개념을 옹호하고 있다. 이는 Representational State Transfer (REST)가 추구하는 방식이기도 하다. REST는 Roy Fielding이라고 하는 아키텍트가 명명한 웹의 아키텍처 스타일이다. REST 스타일의 웹 서비스 옹호자는 SOAP은 복잡하고, XML 페이로드를 방해하고, 웹의 강점을 충분히 활용하지 못한다고 지적하고 있다. SOAP 옹호론자들은 SOAP의 원격 프로시저 호출(RPC) 루트에서 document-literal 스타일의 SOAP으로 강조를 옮김으로써 이러한 문제를 해결해왔다. RPC 스타일에서, 전송되는 데이터는 특별한 XML 페이로드 포맷(SOAP encoding)에 개별 데이터 유형으로 마샬링 된다. document-literal 스타일에서, XML 페이로드는 보다 설명적이고 가독성 있는 자연스러운 XML 포맷으로 구성된다.

SOAP 조직

SOAP과 관련하여 많은 표준들이 만들어지고 있지만, 이 글에서는 다루지 않겠다. 다음은 SOAP 관련 표준과 관련한 리소스들이다.

SOAP의 전신에 해당하는 XML Remote Procedure Calls (XML-RPC) [community specification]는 여전히 광범위하게 사용되고 있다. XML-RPC는 XML로 인코딩 되고 HTTP를 통해 통신하는 프로시저 호출을 정의한다. 단순함(전체 스팩은 불과 10페이지 밖에 안된다.)과 대부분의 언어와 많은 애플리케이션 프레임웍이 표준 또는 쉽게 사용할 수 있는 XML RPC 구현을 갖고 있다는 사실 때문에 여전히 대중성을 확보하고 있다. 원시적인 데이터 타이핑과 문자 인코딩 지원의 부족이라는 치명적인 단점이 있다.


아는 지인이 SOAP 과 ebXML에 대한 질문을 해왔다. 현재 일하고 있는 곳에서 사용하고 있지만
개념을 확실히 알고 사용하는 것이 아니였기에 지인에게 정확한 답변을 해주지 못하였다.
이에 개념을 확실히 정리해야 겠다는 생각이 들어 자료를 정리해본다.
현재 하고 있는 일에 관한 많은 부분에 대해서 개념은 없고 사용만 하는 부분이 많다.
좀 더 하는 일에 대해 개념을 정립하고 그에 관련된 정보를 모아서 정리해야겠다.

+ Recent posts