본문 바로가기

전체 글

좋은 디자인이란 무엇인가? ◀ <디자인과 인간심리> by Donald A.Norman ‘좋은 디자인이란 무엇일까?’ 이 책을 읽고 드는 생각은, 사람들이 원하는 무언가에 대해 디자이너의 고통과 계산 없이 세상에 뿅 하고 나타나 준 물건은 단 한 개도 없다는 것이다. 흔히 '디자인'이라는 분야에 대해 '창작의 고통을 가장 많이 겪어야 하는 산업'으로 해석하기도 한다. 이 문장은 반은 맞고 반은 틀린 것 같다. 왜냐하면 디자인을 하기 위해서는 무작정 머리를 쥐어 뜯어내는 창의성보다, 제품에 대한 직관적인 평가와 피드백이 반드시 앞서기 때문이다.  디자인을 한다는 것은 직관적인 일이다. 어떤 제품을 디자인하라는 태스크가 주어지면, 처음에는 막막할 것이다. 하지만 사람들로 하여금 이 제품이 어떠한 방식으로 사용되면 좋겠다는 매뉴얼을 잘 알고 있다면, 그에 따른 '이상적인 디자인'이라는 것이 존재.. 더보기
[C#] Network Programming - Communication Model 한 컴퓨터에서 다른 컴퓨터로 "Hello World!"를 전송하기 위해네트워크 상에서는 어떤 과정을 거칠까?   네트워크 통신은 택배 배송 시스템과 유사하다.  다음과 같은 정보로 택배를 배송한다고 가정하자From. A아파트 201호To. B아파트 101호 택배를 배송하는 방법을 다음과 같이 이루어진다.상품 - 배송 정책 - 최종 주소 - 단지 경로 - 택배 운송 A아파트 201호 - A아파트 경비실 - 택배 배송센터  - B아파트 경비실 - B아파트 101호   네트워크 통신도 이와 비슷하게 운영된다. TCP/IP 모델: 어플리케이션 - 트랜스포트 - 네트워크 - 데이터 링크 - 피지컬  A아파트 201호의 관점에서 보았을 때B아파트 101호까지의 택배 배송 방법은네트워크 통신에서의 5가지 계층이 왼쪽.. 더보기
[C#] Multi-threading Programming - Thread Local Storage(TLS) using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ServerCore{ class Program { //TLS static object _lock = new object(); static ThreadLocal ThreadName = new ThreadLocal(); //static String ThreadName으로 선언할 경우, ThreadName.Value는 모두 같은 값이 나옴. //ThreadLocal: T.. 더보기
[C#] Multi-threading Programming - Memory Barrier, DeadLock using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace ServerCore{ class GameManager { static object _lock = new object(); public static void Test() { lock(_lock) { UserManager.UserManager_TestForDeadLock(); } } public s.. 더보기