본문 바로가기

반응형

분류 전체보기

(347)
도메인 주도 설계의 개념 소프트웨어가 복잡한 이유는 도메인이 복잡하기 때문인데, 도메인 주도 설계란 그러한 복잡도를 낮추기 위한 방법론 중의 하나라고 볼 수 있다. 소프트웨어 설계를 할 때 우리는 도메인을 올바르게 관리하고 표현할 방법을 찾아야 하는데 흔히 빠지는 착각 중에 하나가 기술에만 집착을 하는 것이다. 도메인을 깊이 이해하는 것이 프로그램의 복잡성을 낮추는 핵심이다.
살아감에 집중하기 삶을 살아가다보면, 행복이라는 것은 사실 큰 성취를 해야 하거나 사회적인 성공을 해야 오는 것이 아니라는 것을 느낄 수 있다. 행복은 내 주변에 내가 아끼고 싶은 사람들이 많아지고, 이들과 나눌 수 있는 것이 있고, 충분히 잠을 자거나 책을 읽더라도 죄책감이 들지 않는 상황이면서, 여전히 다양한 것들을 흥미롭게 배울 수 있는 상황에서 온다고 본다. 어려운 일은 아니지만, 실제로 이렇게 산다는 것은 그렇게 쉬운 일도 아니다. 많은 것을 잃을 것 같은 두려움도 함께 하기 때문이다. 내가 아끼는 사람이 많아지는 법은 간단하다. 내가 먼저 사람들을 많이 아끼고 사랑하게 되면 된다. 충분히 잠을 자거나 좋아하는 책을 읽어도 죄책감이 들지 않는다는 것은 내가 이뤄야 하거나 급하게 무언가를 해야할 일이 없어져 살아감..
너무 복잡하지 않게 살고 싶다 최근 잠자고 일어나는 습관을 바꾼다고 10~11시가 되면 무조건 잠자리에 드는 연습을 하고 있다. 다행이 이제는 10시가 되면 잠이 솔솔 오고, 아침 5시면 눈을 뜨고 있다. 하루종일 졸리지도 않을 뿐더러, 그래서 그런지 몰라도 마음도 편안하고 걱정근심이라는 것이 사라졌다. 뭔가를 계속 하고 있어야만 할 것 같은 긴장감 같은 것이 사라졌다. 다만 오늘은 조금은 힘들고 지치는 꿈을 꿨다. 군대에 재입대를 해서 새로운 선임들 비위를 맞추어야 했고, 어느 순간부터 나는 혼자서 마라톤을 뛰고 있었는데, 심지어 맨발로 뛰고 있었다. 조만간 한 학교에 도착했는데, 교수가 될 거라고 했다. 잠을 자기는 했지만, 꿈도 많이 꾸고 아주 깊이 잠이 든 것 같지는 않았다. 귀찮기는 하지만, 잠이 들기 전에 잠에 깊이 들 수..
프로그래머처럼 생각하는 법 좋지 않은 조언 - 간단한 게임부터 만들어봐라' - 테트리스 같은 거 - C++ 같은 거 많이 쓰니까 그거부터 해봐라. - 제일 좋은 방법은 너가 풀고 싶은 문제부터 풀기 시작하는거야. - 실제 real world 문제를 풀어보도록 하자. 좋은 조언 - 프로그래밍은 언어에 관한 것이 아니다. - 언어는 사실 중요하지 않다. - 외워야할 것은 어디에도 없다. - 프로그래밍 대부분은 수학과 관련이 없다. - 프로그래밍 언어는 사실 인간의 언어보다 단순하다. - 프로그래밍은 사실 문제해결이다. - 바보같은 컴퓨터에 하나하나 가르쳐주는 것이다. 프로그래밍은 언어에 관한 것이 아니다. 1. 코딩은 8가지 개념만 있다. 2. 모든 언어에서 작용한다. 3. 이 개념을 인간의 언어로 쓰는 법을 배워라. 4. 자신이 쓰..
자급자족의 생존력 자급자족에 관심을 가지게 된 계기 내가 살아오면서 꾸준히 관심을 가지고 있었던 키워드가 하나 있다. 바로 자급자족이라는 키워드다. 말그대로 자신에게 필요한 것을 스스로 만들고 만족하는 삶이다. 내가 이 키워드에 관심을 가지게 된 것은 언제부터였을까? 그 근원을 거슬러 찾아가려면 사실 자연을 동경하는 내 성향에서 찾아야 할 것 같다. 난 어릴 적부터 땅에서 무언가가 솟아나고, 생명이 태어나고 죽고, 다양한 생물들이 생태계를 이루고 하는 이런 것이 흥미로웠다. 그래서 TV를 봐도 항상 내셔널지오그래픽이나, 디스커버리 채널이 내 최애 채널이었던 것이 기억이 난다. 그리고서 고등학생 때 접한 헨리 데이비드소로우의 월든이라는 책에서 "살아가는데 꼭 필요한 것만을 취하고 사는 삶"이라는 점에서 상당한 공감을 느꼈던..
행복하기만 하면 되는 삶 일기를 작성하지 않게 되는 이유. 최근 들어서는 일기를 적어도 당시 상황을 묘사하거나 내 상태가 어땠는지 등에 대한 구체적인 상황표현을 하지 않게 되었다. 왜 그럴까를 사실 생각해보면, 과거처럼 내 안에 있는 마음을 스스로 들여다보기 위해서 깊이있게 내려가야할 이유도 없어졌고, 속에 있는 이야기를 남에게 꺼내지 못해 유일한 친구가 일기였던 과거와는 다르기 때문이다. 요약하자면, 내 최근 삶은 정말이지 만족에 가득차있다. 사람이 정말 행복하고 만족하기란 쉽지 않은 일인데, 그 힘든 것을 나는 해내고 있다. 내가 성공했기 때문일까? 내가 이루고 싶은 일들을 모두 이루었기 때문일까? 아니다. 미래에 대한 희망이 있을 지 언정, 미래만 보지 않고 현재의 행복을 충분히 알아차릴만큼 성장했기 때문이다. 앞으로의 미..
포인터, 배열, 구조체 포인터 변수란? 변수 - 프로그램에서 사용되는 값을 저장하기 위한 컴퓨터 메모리 상의 일정 영역 포인터 변수 - 어떤 변수의 위치를 참조하고 그 주소값을 저장한다. - 포인터 변수에는 주소값만을 저장할 수 있다. 포인터의 장점 - 기존 프로그래밍에서는 변수만 조작이 가능하기 때문에 변수를 수정해야 했지만, 포인터를 사용하므로써, 변수는 그대로 두고 포인터를 조작할 수 있다는 장점이 있다. - 가장 빠르게 프로그램할 수 있다는 것.
C언어를 활용한 스택자료구조 구현 (포인터 개념 제외) #include int arr[10]; int idx = 0; void push(int n) { if(idx>=10) { printf("오류: 배열이 꽉 찼습니다.\n"); return; } arr[idx] = n; idx++; return; } int Top(void) { if (idx < 0) { printf("오류: 배열이 비었습니다.\n"); return; } return arr[idx-1]; } int pop() { if (idx < 0) { printf("오류: 배열이 비었습니다.\n"); return; } idx--; return arr[idx]; } void clear(void) { idx = 0; return; } void StackPrint(void) { int i; for (i=0;i

반응형