본문 바로가기

Architecture for Software

(91)
C에서 사용되는 형식 지정자 C 프로그래밍은 자주 하지 않기 때문에 간혹 형식 지정자가 생각나지 않을 경우가 많다. 간단하게 "Pointers on C"책에 있는 내용을 토대로 형식 지정자를 정리하였다. 1. printf에서 사용하는 형식 지정자 형식 의미 %d 10 진수 출력 %o 8 진수 출력 %x 16 진수 출력 %g 부동소수점 수 출력 %c 문자 출력 %s 문자열 출력 \n 개행 문자 출력 2. scanf에서 사용되는 형식 지정자 형식 의미 변수 형식 %d 정수값을 읽는다. int %ld long 타입 정수를 읽는다. long %f 부동소수점 수를 읽는다. float %lf double 타입 실수값을 읽는다. double %c 문자를 읽는다. char %s 입력으로부터 문자열을 읽는다. char arrary
CAS와 SAML에 대하여 최근 Federated Identity에 대한 관심이 많습니다. 우리말로는 "연합 사용자 계정관리" 쯤으로 해석될 수 있는 Federated Identity는 최근 다양한 인터넷 상에 존재하는 리소스들을 연합하여 사용할 경우 최적화된 보안모델을 제공하는 솔루션을 총칭합니다. 흔히 CAS(Central Authentication Service)는 많이 알고 계실 것이라고 생각됩니다. 많은 인터넷 사이트들이 SSO(Single Sign-On)을 구축할 때 CAS를 많이 이용하고 있습니다. 하지만 CAS는 최적화된 SSO라고 할 수 없습니다. 왜냐하면 CAS는 크로스 도메인(Cross Domain)을 지원하지 않기 때문입니다. 이는 CAS에서 생성한 토큰(Token)이 일반적이로 로그인하려는 사용자의 브라우저..
소프트웨어 아키텍처 연구 분야 및 IEEE 1471 국제표준 최근 소프트웨어 아키텍처 정의에 대한 글을 찾다가 좋은 문서를 찾아서 올립니다. 짧게 요약하면 다음과 같습니다. 소프트웨어 아키텍처의 정의 소프트웨어 아키텍처는 한마디로 개발하려고 하는 소프트웨어의 큰 밑그림을 그리는 것으로 소프트웨어 개발에 직간접적으로 영향을 미치면서 복잡도를 높이는 다양한 요소들을 체계적으로 다루기 위한 청사진이라 할 수 있다. 소프트웨어 아키텍처의 학술적인 정의는 소프트웨어를 구성하는 컴포넌트들, 이들간의 상호작용 및 관계, 각 컴포넌트들의 특성 및 이들이 구성하는 소프트웨어의 설계 및 진화를 위한 각종 원칙들의 집합이라고 할 수 있다. 실제적으로 아키텍처는 대상이 되는 시스템에 관련된 여러 이해관계자(stakeholder)의 관심사항과 이에 따른 관점을 반영한 다양한 모델들의 집..
C#의 Value Type과 Reference Type 여러 다른 언어들과 마찬가지로 C#에서도 효과적인 메모리 관리를 위하여 고유 데이터 타입을 정의해 두고 있습니다. 예를 들어 정수, 문자열, 부동 소수점, Boolean 등에 대한 타입들이 바로 그런 예입니다. 여기서 특이한 점은 C#에서는 데이터 타입을 "값 기반(Value based)"과 "참조 기반(Reference based)"로 구분해두고 있습니다. 중요한 점은 Value based Type의 경우 스택(Stack)에 값들을 할당하며, Reference Based Type의 경우 힙(Heap)에 값들을 할당한다는 점입니다. 만약 다음과 같은 코드가 존재한다면 Value Type일까요? 아니면 Reference Type일까요? // Assign int a = 2; int b = 3; // Swap..
Devide and conquer와 Separation of Concerns Devide and conquer와 Separation of Concerns는 결국 같은 의미인데 자세한 의미는 다음과 같습니다. 고전적인 프로그래밍 기법중에 해결해야 할 큰 문제가 있으면 최대한 논리적으로 분석해서 자꾸만 작은 문제들로 쪼개서 작은 문제들을 정복하다 보면 결국 큰 문제도 해결된다는 기법입니다. 이를 한국어로는 분할정복기법이라고 많이 이야기하는데 최근 여러 영문 원서에서 Separation of Concerns이란 말로 Devide and conquer와 같은 개념을 설명하여 같은 의미라는 것을 알리고자 적습니다.
MSIL 역어셈블러(ildasm.exe)로 Boxing 확인하기 .NET에 MSIL 역어셈블러(ildasm.exe)가 있어서 MSIL 코드들을 확인할 수 있습니다. ILDasm.exe는 Intermediate Language Disassembler Utility입니다. MSIL 역어셈블러는 .NET Framework에서만 실행될 수 있는 어셈블리이며, 어셈블리를 역으로 해석해주는 역어셈블러 프로그램이다. 간단하게 C#으로 작성된 코드의 내역중 Boxing이 수행된 내역을 MSIL을 통하여 확인해보겠습니다. 우선 다음과 같은 코드를 작성합니다. 간단하게 버튼을 하나 만들고 버튼에서 리스트에 1 ~ 100까지 출력하는 코드입니다. private void button3_Click(object sender, EventArgs e) { // Boxing이 일어나는 코드이다. ..
책에서 들려주지 않는 아키텍트 이야기 세미나 후기입니다. 오늘 데브피아에서 주최하는 "Meet The Architect: 책에서 들려주지 않는 아키텍트 이야기"라는 세미나에 참석하였습니다. 위의 그림에서 처럼 한국 마이크로소프트 5층 교육장에서 진행되었습니다. 약 20분정도 늦게 도착했습니다. 강사님은 박현철 이사님이었는데 이전에 두세번 멀리서 뵈었었는데 오늘 제대로 뵐 수 있었습니다. 박현철 이사님에 자세한 약력은 위와 같습니다. 아마 독자님들 중에 뵈신 분들도 계실것입니다. 오늘 세미나 일정과 각 세션의 주제는 다음과 같았습니다. 시 간 Session 강 좌 제 목 15:00 ~ 15:50 50분 Session 1 니 경험 있나? 내도 있다. 15:50 ~ 16:00 10분 휴식 16:00 ~ 16:50 50분 Session 2 중요한 것은 뭐고, 중요하다..
IP 충돌이 일어났을 경우에 확인하는 방법 서버의 IP를 누군가가 사용하는 경우가 일어 났다. 즉 IP 충돌이 일어난 것이다. 어떤 컴퓨터인지 확인하고자 알아본 결과 nbtstat 라는 명령을 통하여 확인할 수 있었다. [root@C:\Documents and Settings\SUN]#nbtstat -a xxx.xxx.xxx.xxx (충돌나는 IP 주소) 로컬 영역 연결: Node IpAddress: [123.456.789.123] Scope Id: [] NetBIOS Remote Machine Name Table Name Type Status --------------------------------------------- XXXXXX1 UNIQUE Registered AAAAA GROUP Registered AAAAA GROUP Registe..