Category Archives: 배우기

C# 6.0 완벽 가이드/ 그 밖의 XML 기술들

XmlReader 클래스

  • XmlReader는 XML 스트림을 저수준, 전진 전용 방식으로 읽어들이는 고성능 XML 판독기를 나타내는 클래스이다.
  • XML 판독기는 XmlReader.Create를 호출해서 생성하는데, 이 메서드는 Stream이나 TextReader 또는 파일 이름을 뜻하는 URI 문자열을 인수로 받는다.
using (XmlReader reader = XmlReader.Create("customer.xml"))
  • Stream과 URI에서 XML 자료를 가져오는 속도가 느릴 수도 있기 때문에, XmlReader의 메서드들에는 비차단(nonblocking) 코드를 작성하는데 적합한 비동기 버전들이 존재한다.
  • 다음은 문자열로부터 XML을 읽어 들이는 XmlReader 인스턴스를 생성하는 예이다.
XmlReader reader = XmlReader.Create(new System.IO.StringReader(myString));

Continue reading

C# 6.0 완벽 가이드/ LINQ to XML

  • .NET Famework는 XML 자료를 다루는 여러 API를 제공한다. .NET Framework 3.5부터 범용 XML 문서 처리의 주된 수단은 LINQ to XML 이다. LINQ to XML은 가볍고 LINQ 친화적인 DOM과 이를 보충하는 일단의 질의 연산자들로 구성되어 있다.
  • LINQ to XML의 모든 형식은 System.Xml.Linq 이름공간에 있다.

전체적인 구조

DOM이란 무엇인가?

  • 다음과 같은 XML 파일을 생각해 보자
<?xml version="1.0" encoding="utf-8"?>
<customer id="123" status="archived">
  <firstname>Joe</firstname>
  <lastname>Bloggs<lastname>
</customer>
  • 다른 모든 XML 파이렃럼 이 파일은 하나의 XML 선언(declaration)으로 시작한다.
    • 그 다음은 XML 문서 전체의 뿌리(루트)에 해당하는 요소(element)로 그 이름은 customer이다.
    • 이 customer 요소에는 2개의 특성(attribute)이 있다. 각 특성은 이름(id와 status)과 값(“123”, “archived”)으로 구성된다.
    • customer 요소 안에는 두 자식 요소 firstname과 lastname이 있다. 이 요소들은 각자 단순 텍스트 내용(“Joe”와 “Bloggs”)을 담고 있다.
  • 이러한 구성요소들(선언, 요소, 특성, 값, 텍스트 내용)을 각각 클래스로 나타낼 수 있다.
    • 그리고 그런 클래스에 자식 내용을 저장할 수 있는 컬렉션 속성들을 부여한다면, 문서 전체를 나타내는 객체들의 트리를 형성할 수 있다.
    • 그러한 트리가 바로 흔히 DOM이라고 줄여서 표기하는 문서 객체 모형(document object model)이다.

Continue reading

시각의 이해

1

  • 시신경(optic nerve)
    • 망막에서 받아들인 시각정보를 뇌에 절달하는 역할을 하며 120만개의 신경섬유로 이루어진 2번 뇌신경
  • 시각 세포는 빛 자극에서 흥분된 전압 충격파(pulse)를 보낸다.

Continue reading

신경회로

  • 전정척수로(vestibulospinal tract)는 뇌간에서 시작되는 신경로의 하나로 자세 조절에 관여한다.
  • 내측세로다발의 하행로는 척수로 내려가 근육을 통해 균형을 잡는다.
  • 내측세로다발의 상행로는 동안신경, 외전신경을 통해 눈동자의 움직임으로 균형을 잡는다.
  • 기억한다는 것은 사건과 사물의 관계를 기억하는 것.
    • 기억을 위해서는 순서화가 중요하다. 이는 시간적, 공간적 관계이기 때문.
    • 학습을 위해서는 관계를 기억해야 한다.
  • 나이를 먹어도 나의 정체성이 유지되는 이유는 내 몸 전체 세포의 관계성 때문.
  • 공통인 관계의 집합이 범주.
  • 사람이 총명하다는 것은 패턴 인식을 잘 하는 것.
    • 패턴 인식이란 공통인 관계를 파악하는 것.
  • 청신경은 달팽이관에서 나가는 나선형의 뉴런 신경세포체인 나선신경절에서 시작한다.
  • 청각 신호의 중계기관인 등쪽 및 배쪽와우핵으로 연결된다.
  • 청신호의 1차적 종착지는 하구이다.
  • 내측슬상핵을 통해 청각이 만나는 1차 피질인 상측두엽과 최종 시냅스한다.

Continue reading

뇌간의 운동·감각 영역

  • 운동명령이 내려오는 하행로의 4가지 핵심
    • 전두교뇌섬유(frontopontine fibers)
      • 전두엽에서 교뇌로 이어지는 하행섬유
    • 피질연수섬유(corticobulbar fibers)
      • 대뇌피질에서 뇌간으로 이어지는 운동섬유
    • 피질척수로(corticospinal tract)
      • 대뇌피질에서 시작되어 척수까지 이어지는 수의운동을 관장하는 신경로
    • 교뇌로
      • 후두교뇌로(occipitopontine tract)
        • 후두엽에서 교뇌로 이어지는 신경로
      • 측두교뇌로(temporopontine tract)
        • 측두엽에서 교뇌로 이어지는 신경로
      • 두정교뇌로(parietopontine tract)
        • 두정엽에서 교뇌로 이어지는 신경로

Continue reading

브레인의 본질, 뇌간

  • 뇌간(brainstem)
    • 중뇌(상구+하구) + 교뇌 + 연수로 이루어진 것.
      • 중뇌는 중간뇌, 교뇌는 다리뇌
    • 연수(숨뇌, medulla oblongata)는 호흡
      • 척수와 곧바로 연결되어 있으며 호흡이나 혈액순환을 조절한다.
    • 교뇌(pons)는 균형
      • 척추동물의 중뇌와 연수 사이에 위치하는 중추신경계의 일부
    • 하구(inferior colliculus)는 청각
      • 중뇌의 덮개를 구성하는 한 부위. 청각 정보를 받아서 청각 피질로 전달
    • 상구(superior colliculus)는 시각
      • 중뇌의 상부에 있는 돌출부로 시각계의 일부. 눈 운동 조절에 중요한 역할
    • 뇌간이 브레인의 본질이다.
  • 진화적으로 볼 때 대뇌는 겉보기 현상에 불과 가장 중요한 것은 뇌간
    • 대뇌피질은 시각, 청각의 정보를 2차적으로 더 깊이 처리하는 것.
    • 물고기나 악어 때보다 인간으로 진화하면서 청각, 시각의 정보 처리량이 많아졌고, 예술 활동까지 가능할 정도로 발전하였음.

Continue reading

호흡은 어떻게 이루어지는가

  • 아가미 호흡
    • 아가미는 여러 개의 디스크 구조로 이루어져 있다
    • 디스크들 사이로 물이 통과하게 된다.
    • 디스크의 모세혈관을 통해 물속의 산소를 직접 공급 받는다.
  • 호흡 중추기관은 교뇌(연수)
  • 호와 흡은 다르다
    • 호는 내쉬는 숨으로 날숨(expiration)
    • 흡은 들이마시는 숨으로 들숨(inspiration)
  • 들숨과 날숨은 신경로가 다르다.
    • 등쪽호흡핵은 연수의 등쪽에 있으며, 들숨을 컨트롤한다.
    • 배쪽호흡핵은 연수의 배쪽에 있으며, 날숨을 활성화한다.
  • 심장은 무의식적인데, 호흡은 의식적인 부분이 있다.
    • 말하는 게 호흡

Continue reading

감각신경과 운동신경의 전달

  • 뇌척수액(cerebrospinal fluid)
    • 뇌와 척수 주위를 순환하며 외부의 충격에 대한 완충작용을 하고 호르몬과 노폐물 등의 물질 운반 역할을 하는 무색투명한 액체
  • 내측섬유띠(medial lemniscus)
    • 체감각정보를 시상까지 전달하는 축삭다발로 연수, 교뇌, 중뇌를 두루 거치면서 형성된다
  • 내측세로다발(medial longitudinal fasciculus)
    • 상행성분과 하행성분이 함께 있는 복합섬유다발. 전정신경로와 함께 몸의 균형을 유지하는 역할에 관여한다.
  • 전정신경이 눈동자와 목, 어깨로 각각 향하므로 몸의 균형을 잡을 때 시각과 더불어 목과 어깨 근육이 관여한다.
  • 삼차신경(trigeminal nerve)
    • 얼굴의 감각 및 일부 근육 운동을 담당

Continue reading

운동신경이 각 기관으로 전달되는 과정

  • 뇌섬엽(insular)
    • 전두엽과 두정엽, 측두엽에 의해 덮여 보이지 않는 대뇌피질 부위. 생리적 상태를 감지하고 즉각 반응하는 역할
  • 측두엽(관자엽, temporal lobe)
    • 대뇌반구의 양쪽 가에 있는 부분으로 청각정보의 처리를 담당한다
  • 해마(hippocampus)
    • 측두엽의 안쪽에 위치하며 기억과 관련
  • 외측뇌실(가측뇌실, lateral ventricle)
    • 대뇌 내부에 있는 공간으로 좌우 2개가 대칭으로 구성되어 있으며 뇌실 사이 구멍을 통해 서로 연결될 뿐만 아니라 제3뇌실과도 연결된다.
  • 제3뇌실(third ventricle)
    • 사이뇌 사이에 있는 공간으로 뇌실 사이구멍을 통해 외측뇌실과 오고가며 중간뇌수도관을 통해 제4뇌실과 연결된다
  • 제4뇌실(fourth ventricle)
    • 소뇌 앞. 다리뇌와 숨뇌의 뒤에 위치하고 중간뇌수도관을 통해 제3뇌실과 오고 간다.
  • 중뇌수도관
    • 제3뇌실과 제4뇌실을 잇는 뇌실의 일부분

Continue reading

C# 6.0 완벽 가이드/ LINQ 질의 연산자

개요

  • 표준 질의 연산자들은 다음 세 범주로 나뉜다.
    • 순차열을 입력받고 순차열을 출력하는 연산자(순차열 -> 순차열)
    • 순차열을 입력받고 요소 하나 또는 스칼라값 하나늘 출력하는 연산자
    • 입력 없이 순차열을 출력하는 연산자(생성 메서드)

순차열->순차열

  • 이 범주의 질의 연산자는 하나 이상의 순차열을 입력받고 하나의 순차열을 산출한다. 대부분의 질의 연산자가 이 범주에 속한다. 아래 그림은 이 범주의 질의 연산자 중 순차열의 형태를 바꾸는 것들을 나타낸 것이다.

분류 형식 내용 연산자
필터링(선별) IEnumerable<TSource> -> IEnumerable<TSource> 원래 요소들의 부분집합을 출력한다. Where, Take, TakeWhile, Skip, SkipWhile, Distinct
투영 IEnumerable<TSource> -> IEnumerable<TResult> 주어진 람다 함수를 이용해서 각 요소를 변환한다. SelectMany는 중첩된 순차열을 평평한 순차열로 만든다(평탄화).

LINQ to SQL이나 EF에 대한 Select와 SelectMany는 내부 결합(inner join), 왼쪽 외부 결합(left outer join), 교차 결합(cross join), 비등가 결합(non-equi join)을 수행한다.

Select, SelectMany
결합 IEnumerable<TOuter>, IEnumerable<TInner> -> IEnumerable<TResult>
IEnumerable<TFirst>, IEnumerable<TSecond> -> IEnumerable<TResult>
두 순차열의 요소들을 합친다. Join과 GroupJoin 연산자는 지역 질의에 효율적으로 작동하도록 설계된 것으로, 내부 결합과 왼쪽 외부 결합을 지원한다.

Zip 연산자는 두 순차열을 동시에 열거하면서 각 요소 쌍에 함수를 적용한다. Zip 연산자에서는 두 형식 매개변수의 이름이 TOuter와 TInner가 아니라 TFirst와 TSecond이다.

Join, GroupJoin, Zip
정렬 IEnumerable<TSource> -> IOrderedEnumerable<TSource> 입력 순차열 요소들의 순서를 바꾼다. OrderBy, ThenBy, Reverse
그룹화 IEnumerable<TSource> -> IEnumerable<IGrouping<TKey, TElement>> 입력 순차열의 요소들을 적절히 묶어서 여러 개의 부분 순차열들을 출력한다. GroupBy
집합 연산 IEnumerable<TSource>, IEnumerable<TSource> -> IEnumerable<TSource> 같은 형식의 순차열 두 개를 입력 받아서 합집합, 교집합, 차집합을 출력한다. Concat, Union, Intersect
변환 메서드: 가져오기 IEnumerable -> IEnumerable<TResult> OfType, Cast
변환 메서드: 내보내기 IEnumerable<TSource> -> 배열, 목록, 사전, 조회 객체(lookup), 순차열 ToArray, ToList, ToDictionary, ToLookup, AsEnumerable, AsQueryable

Continue reading