Date | 18/10/16 07:45:35 |
Name | T.Robin |
Subject | 가짜(-_-) 프로그래머입니다 |
서른아홉에 처음 개발자 직함을 받았습니다. 개발 경력은 몇개월 안됩니다. 어쨌든 이제는 직업이 되어서 개발쪽 공부를 좀 깊게 한다고 하고 있는데, 이건 뭐 정우성 얼굴 보는것도 아니고 날마다 새롭군요. 재귀함수만 보면 숨이 막합니다. 솔직히 공간 낭비란 측면이 있어서 왜 쓰나 싶기도 합니다. 퀵정렬과 병합정렬은 시간 좀 들이면 대충 돌아가게는 만듭니다(......). C++을 쓰긴 하는데, C++을 가장 Java처럼 쓰게 만드는 Qt를 전문으로 다루고 있어서 C++ 전문이라고 말하기도 애매하군요. 두 아들녀석의 아빠입니다. 주변 모든 사람들이 인정한 공식 츤데레인 5살 연상의 아내와 함께 살고 있는데 같이 다니면 제가 연상으로 보입니다. 목요일날 부모님 및 동생 부부와 함께 온 가족이 다함께 모여 고지식함이 날마다 천원돌파해 가시는 아버지 칠순 및 몸이 성치 않으신데도 그 연세에 어떻게든 일하시겠다고 고집 피우시는 어머니 생신 기념으로 제주도에 갑니다. 1990년대~2000년대 초반까지 애니메이션을 보는게 낙이었습니다. 자칭 Otaku from 20th century(-_-) 되겠습니다. 뭐 그 외에 기타 여러가지 있을 듯 한데, 뭘 더 말해야 될지 모르겠네요. 하여간 뭐든 좋습니다. 질문 받습니다. 0
이 게시판에 등록된 T.Robin님의 최근 게시물
|
제가 지금 폰으로 월도질 중이라 단답으로 달아서 약간 오해가 있는 것 같은데, 재귀가 나름의 쓸모가 있다는 것이지 재귀호출을 적극 활용해야 한다는 것은 아닙니다. 현업에서는 [재귀호출을 잘 사용하는 방법 1. 재귀호출을 쓰지 않는다.] 라는 말도 있고요. 가능하면 메시지 큐 같은 다른 방법을 많이 쓰게 되죠. (다만, 재귀호출이 공간을 딱히 더 낭비하진 않습니다. 재귀호출을 풀어헤치면 자동으로 자라는 스택 대신 개발자가 힙에 정의한 자료구조를 쓰게 될 뿐이죠.)
그럼에도 불구하고 복잡한 ... 더 보기
그럼에도 불구하고 복잡한 ... 더 보기
제가 지금 폰으로 월도질 중이라 단답으로 달아서 약간 오해가 있는 것 같은데, 재귀가 나름의 쓸모가 있다는 것이지 재귀호출을 적극 활용해야 한다는 것은 아닙니다. 현업에서는 [재귀호출을 잘 사용하는 방법 1. 재귀호출을 쓰지 않는다.] 라는 말도 있고요. 가능하면 메시지 큐 같은 다른 방법을 많이 쓰게 되죠. (다만, 재귀호출이 공간을 딱히 더 낭비하진 않습니다. 재귀호출을 풀어헤치면 자동으로 자라는 스택 대신 개발자가 힙에 정의한 자료구조를 쓰게 될 뿐이죠.)
그럼에도 불구하고 복잡한 시스템에서는 결국 완전히 배제하기 힘든게 재귀호출이기도 합니다. 알고리즘이나 자료구조 자체가 재귀구조를 가지고 있는 경우가 많고 내부 스케쥴러까지 얽히면, 아 이거 생노가다 되겠는데 하고 느낌이 딱 올 때가 있습니다.
그럴 때에 고려할 것들은
1. 알고리즘상 최대 깊이만큼 파고들었을 때 얼마만큼의 스택 용량을 잡아먹는가
2. 다른 컨텍스트가 중간에 끼어들거나, 이 함수가 다른 컨텍스트에서 실행되면서 1에서 상정한 최악의 경우를 넘어서는 경우는 없는가
3. 1 또는 2에서 걸릴 경우 내가 스택 프레임의 크기를 조절할 권한은 있는가 혹은 다른 컨텍스트 전환을 막을 수는 있는가
4. 중간 결과물을 스택 대신 파일 등으로 저장해두는 흑마법을 부려도 되는가(성능에 얼마나 민감한가)
등이 있습니다
그럼에도 불구하고 복잡한 시스템에서는 결국 완전히 배제하기 힘든게 재귀호출이기도 합니다. 알고리즘이나 자료구조 자체가 재귀구조를 가지고 있는 경우가 많고 내부 스케쥴러까지 얽히면, 아 이거 생노가다 되겠는데 하고 느낌이 딱 올 때가 있습니다.
그럴 때에 고려할 것들은
1. 알고리즘상 최대 깊이만큼 파고들었을 때 얼마만큼의 스택 용량을 잡아먹는가
2. 다른 컨텍스트가 중간에 끼어들거나, 이 함수가 다른 컨텍스트에서 실행되면서 1에서 상정한 최악의 경우를 넘어서는 경우는 없는가
3. 1 또는 2에서 걸릴 경우 내가 스택 프레임의 크기를 조절할 권한은 있는가 혹은 다른 컨텍스트 전환을 막을 수는 있는가
4. 중간 결과물을 스택 대신 파일 등으로 저장해두는 흑마법을 부려도 되는가(성능에 얼마나 민감한가)
등이 있습니다
'못 짜게 된지 오래'라면, 지금은 pseudocode 슥 보시면 다시 하실 수 있는 분이시겠군요. 진짜시면서 뭘......
전 저거 짤 수 있게 된지 48시간정도 되었습니다. -_-
Python은 딱 한 번 만져봤습니다. 다른 사람에게 인계할 목적으로 만든 업무용 프로그램이었어요. 반나절 문법만 슥 보고 만들었는데 코드가 원하는데로 움직여주는걸 보고 감탄했습니다. 기회가 되면 다시 써보고 싶습니다. 단, 10Gbps급 패킷을 near-realtime으로 검증하기엔 속력이 많이 느린 것 같더군요(지금 만들고 있는게 그런 거라......).
전 저거 짤 수 있게 된지 48시간정도 되었습니다. -_-
Python은 딱 한 번 만져봤습니다. 다른 사람에게 인계할 목적으로 만든 업무용 프로그램이었어요. 반나절 문법만 슥 보고 만들었는데 코드가 원하는데로 움직여주는걸 보고 감탄했습니다. 기회가 되면 다시 써보고 싶습니다. 단, 10Gbps급 패킷을 near-realtime으로 검증하기엔 속력이 많이 느린 것 같더군요(지금 만들고 있는게 그런 거라......).
제가 웹서비스 분야는 전혀 문외한이라 뭐라 말씀드리기가 매우 조심스럽습니다만, 그냥 상식선에서 몇가지 말씀드리자면......
= 자바스크립트에 집중하세요. 커피스크립트 등은 쳐다보지 않으시는게 건강에 좋습니다. 단, 타입스크립트는 검토해볼만한 가치가 있습니다.
= 꼭 서버개발자가 아니더라도, 클라우드가 어떻게 돌아가는지 이해하시는게 중요합니다. 최소한 AWS, 그 외에 Google Cloud 및 시간이 되시면 Azure도 살펴보세요. 필요한 경우에는 클라이언트가 웹서버를 통하지 않고 바로 클라우드에 접속하는게 더 나을 수도... 더 보기
= 자바스크립트에 집중하세요. 커피스크립트 등은 쳐다보지 않으시는게 건강에 좋습니다. 단, 타입스크립트는 검토해볼만한 가치가 있습니다.
= 꼭 서버개발자가 아니더라도, 클라우드가 어떻게 돌아가는지 이해하시는게 중요합니다. 최소한 AWS, 그 외에 Google Cloud 및 시간이 되시면 Azure도 살펴보세요. 필요한 경우에는 클라이언트가 웹서버를 통하지 않고 바로 클라우드에 접속하는게 더 나을 수도... 더 보기
제가 웹서비스 분야는 전혀 문외한이라 뭐라 말씀드리기가 매우 조심스럽습니다만, 그냥 상식선에서 몇가지 말씀드리자면......
= 자바스크립트에 집중하세요. 커피스크립트 등은 쳐다보지 않으시는게 건강에 좋습니다. 단, 타입스크립트는 검토해볼만한 가치가 있습니다.
= 꼭 서버개발자가 아니더라도, 클라우드가 어떻게 돌아가는지 이해하시는게 중요합니다. 최소한 AWS, 그 외에 Google Cloud 및 시간이 되시면 Azure도 살펴보세요. 필요한 경우에는 클라이언트가 웹서버를 통하지 않고 바로 클라우드에 접속하는게 더 나을 수도 있습니다.
= 꼰대같은 발언이지만...... 항상 내가 교만하지 않는가 살펴보세요. 지금은 아니더라도 2~3년쯤 지나면 분명 백열각으로 이불킥할 날이 옵니다(-_-;). 저도 이렇게 되지 않기 위해 조심 또 조심하고 있습니다만 쉽지 않네요.
= 지속적인 자기 부정만이 살길인 것 같습니다. 자기가 짠 현재의 코드에 만족하지 말고 혹시 다른 방안이 없을지 계속 생각해보세요. 필요하다면 동일한 솔루션을 처음부터 다시 작성해보는 것도 도움이 됩니다
= Concurrent programming에 익숙해지시면 도움이 많이 되시리라 믿습니다. 더 많은 작업을 더 짧은 시간 안에 처리할 수 있게 되더군요. MapReduce같은 것들이 도움이 많이 됩니다.
...... 두서없습니다만, 일단 생각나는건 이 정도네요. 도움이 되셨으면 좋겠습니다.
P. S:
Toby님 휘하 웹서비스 산업 종사자 여러분, 여기 불쌍한 중생에게 가르침을...... OTL
= 자바스크립트에 집중하세요. 커피스크립트 등은 쳐다보지 않으시는게 건강에 좋습니다. 단, 타입스크립트는 검토해볼만한 가치가 있습니다.
= 꼭 서버개발자가 아니더라도, 클라우드가 어떻게 돌아가는지 이해하시는게 중요합니다. 최소한 AWS, 그 외에 Google Cloud 및 시간이 되시면 Azure도 살펴보세요. 필요한 경우에는 클라이언트가 웹서버를 통하지 않고 바로 클라우드에 접속하는게 더 나을 수도 있습니다.
= 꼰대같은 발언이지만...... 항상 내가 교만하지 않는가 살펴보세요. 지금은 아니더라도 2~3년쯤 지나면 분명 백열각으로 이불킥할 날이 옵니다(-_-;). 저도 이렇게 되지 않기 위해 조심 또 조심하고 있습니다만 쉽지 않네요.
= 지속적인 자기 부정만이 살길인 것 같습니다. 자기가 짠 현재의 코드에 만족하지 말고 혹시 다른 방안이 없을지 계속 생각해보세요. 필요하다면 동일한 솔루션을 처음부터 다시 작성해보는 것도 도움이 됩니다
= Concurrent programming에 익숙해지시면 도움이 많이 되시리라 믿습니다. 더 많은 작업을 더 짧은 시간 안에 처리할 수 있게 되더군요. MapReduce같은 것들이 도움이 많이 됩니다.
...... 두서없습니다만, 일단 생각나는건 이 정도네요. 도움이 되셨으면 좋겠습니다.
P. S:
Toby님 휘하 웹서비스 산업 종사자 여러분, 여기 불쌍한 중생에게 가르침을...... OTL
목록 |
|