Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

서비스 로직보다. 자신이 작성한 자료구조가 얼마나 더 빠른고 안전한지에대해 더 열정을 퍼 붓던 시절이다.

자신의 기술력을 훈련할수 있는 정량적인 문제 해결에 집중을 하던 시대라고 정의를 해놓겠다.

Code Block
languagecpp
themeEmacs
#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;
}
............................................
// 이하생략 이만큼의 코드로도 리스트가 제대로 작동하지않는다.
// 또한 스레드 세이프하기위해서 더 신경쓰야할 부분도있다.

...

이러한 코드를 사용하는것이  고급개발자인것처럼 포장되는경우도 있다.

이것이 지원되지 않는 언어는 구닥다리 언어인것처럼 배척하기도한다.

하지만 수많은 도메인을 처리한 경험있는 개발자에 의해 작성된 코드들은 위와같이 우아한 방식을 사용하지 않고도

성공적인 프로젝트를 수행하였고 수익을 내고 있다.

이러한 충돌은 항상 다른환경의 개발자 사이에 존재해왔으며


더 본질적이고 중요한 가치에대해 이야기를 하고 선택을 해야할것이다.

예를 들면 빅데이터를 빠르게 분석하기위해 Spark+Scala(Python) 를 선택했을때

얻는 이점과 기존 플랫폼과의 연동방안등이다. 


여기서 자바/닷넷  혹은 최근 핫한 스칼라등에서 위와같은 컨셉이  최근배운 언어스펙에서

...

  • 영속성 엔티티를 OOP를 통해 설계하는방법과, Aggregate,Repository를 작성하는 방법 (OOP설계능력 향상)
  • 역압력 사용을 위한 스트림의 활용과 메시지큐의 활용 ( Akka,Kafka 등등)
  • 분산처리를 위한 라우팅설계와 클러스터활용
  • 전통적인 예외처리를 개선하는 패러다임의 활용 ( Let it Crash By Supervisor )
  • 도커를  통합 개발환경 구축과 유닛테스트 커버리지를 올릴수 있는 방안등등
  • .............................

...

실행가능한 마이크로서비스 Spring Boot Cloud for MicroService를연구중에 있습니다. MicroService 이다.


Next :

...