본문 바로가기

분류 전체보기112

[Effective C#] 1. 지역 변수에 대한 var 사용 1. var C#의 var keyword는 compile time에 변수의 자료형을 추론하는 keyword이다. int a = 100; var b = 100; b에 대하여 type을 명시해 주지 않았지만, 컴파일러가 자동으로 RHS의 타입을 b에 할당한다. (단, var keyword를 사용하려면 변수를 선언할 때 초기화해야 한다.) 2. 지역변수에 var keyword를 사용하는 이유 사실 명시적으로 type을 표기하는 것이 지금까지 내가 해 오던 방식이었기에 처음에는 상당히 의아했다. 코드를 이해하기 너무 어려워지는 것 아닌가 하는 생각이 들었기 때문이다. 하지만, var type을 사용하면서도 가독성을 유지하거나 상승시킬 수 있다. 정확히 타입을 기술하는 대신 타입을 유추할 수 있는 변수명을 도입하.. 2023. 11. 6.
[자료구조] Tree 앞서 다룬 자료 구조들과 다르게, 지금부터 다룰 tree는 비선형(non-linear) 자료구조이다. 즉, 하나의 element 뒤에 여러 개의 element가 올 수 있다. 보다 정확히 얘기하면 전자와 후자가 부모자식 관계로 얽힌 hierarchy가 있는 것이다. 앞서 다뤘던 array, linked list, queue, stack 등의 선형(linear) 자료구조가 어떤 element '앞, 뒤에' 어떤 element가 오는지에 초점이 맞춰저 있었다면, tree는 어떤 element가 어떤 element의 '부모인지 자식인지'에 초점이 맞춰져 있다고 이해하였다. Tree의 모든 element들은 (unique) parent를 가지고, 0개 이상의 children을 갖는다. 이 때, hierarchy.. 2023. 9. 16.
[DB] Data Models Database의 구조를 표현하는 데 사용되는 개념 집합. (참조 원문: A data model is a collection of concepts for describing data) data model은 다음 세 가지로 분류된다. 1. 개념적 데이터 모델(high-level data model) 2. 물리적 데이터 모델(low-level data model) 3. 구현 데이터 모델(representational data model). 1. 개념적 데이터 모델(high-level data model) DB 사용자가 이해하는 데이터베이스 구조이다. High-level이라는 표현처럼, 실제 사람이 데이터를 받아들이는 방식에 가깝게 데이터베이스 구조를 설명한다. 예를 들어 miniworld에서 우리가 저장해야.. 2023. 9. 16.
[네트워크] Network Structure 네트워크의 구성요소는 크게 다음 세 가지로 나눌 수 있다. 1. Network Edge client, server. 이들을 묶어 'host'라고 한다. 컴퓨터, 스마트폰, 서버 등 network의 끝단에 있는 device를 end system이라고 하는데, end system과 network edge은 비슷하지만 다소 차이가 있는 개념이다. end system이 network edge에 포함되는 개념이고, 이에 더하여 이들을 네트워크에 연결하는 중간 기기나 기술들 - DSL, cable modem 등 - 까지 포함하는 개념이 network edge이다. 2. Access Network end system을 edge router에 연결하는 역할을 한다. 내가 공부하는 교재에는 이렇게 표현되어 있지는 않았지.. 2023. 9. 14.