Page History
...
이때는 바이블처럼 메모리누수없는 성능좋은 자료구조를 개발자들이 구현가능했어야 하는 시점이다.
서비스 로직보다. 우리가 작성한 리스트 내부를 더 많이 하든 그런 시절이였다자신이 작성한 자료구조가 얼마나 더 빠른고 안전한지에대해 더 열정을 퍼 붓던 시절이다.
Code Block | ||||
---|---|---|---|---|
| ||||
#include <iostream> struct Node{ Node* prev; Node* next; void* data; }; struct List{ Node* head; }; List* createList(){ Node* head = new Node; head->prev = head; head->next = head; head->data = 0; List* list = new List; list->head = head; return list; } void insertNodeAfter(Node* node, void* data){ Node* before = node; Node* after = node->next; Node* newNode = new Node; newNode->data = data; newNode->next = after; newNode->prev = before; after->prev = newNode; before->next = newNode; } void removeNode(Node* node, bool deleteData){ Node* before = node->prev; Node* after = node->next; before->next = after; after->prev = before; if (deleteData) delete node->data; delete node; } ............................................ 이하생략 이만큼의 코드로도 리스트가 제대로 작동하지않는다. |
...
Code Block | ||||
---|---|---|---|---|
| ||||
List<Person> persons = new List<Person>()
{
new Person { PersonId = 1, car = "Ferrari" },
new Person { PersonId = 1, car = "BMW" },
new Person { PersonId = 2, car = "Audi"}
};
List<Result> results2 = persons
.GroupBy(p => p.PersonId,
(k, c) => new Result()
{
PersonId = k,
Cars = c.Select(cs => cs.car).ToList()
}
).ToList(); |
...
여전히 아주 어려운 일이다. 오랜동안 유지한 팀이 오랫동안 노력해야만 얻을수 있고 그만큼 성능및 퍼포먼스가 나올수 있는 부분이다.
최근에는 자료구조가아닌 마이크로 웹 서비스를 위한 조금더 큰 덩치의 어플리케이션 구성에 고민을 하고 있으며
...
없기때문에 메니져드 언어 ( 스프링이나, ASP.net을 활용하기위해) 로 전향을 하였으며
다음 주제에 대해 지속적인 연구 활동을 하고 있다.
...