create account

Good programmer 1 - 내가 관리할 수 있는 코드량은? by agile

View this thread on: hive.blogpeakd.comecency.com
· @agile · (edited)
$13.67
Good programmer 1 - 내가 관리할 수 있는 코드량은?
몇 달 전에 누가 나에게 이런 질문을 했습니다.
- ( )( )( )님 코인 만들 줄 아십니까?
- 아니요
- 개발자 아닌가요?
- ㅠ.ㅠ
안 만드는 아니 못 만드는 이유는 수천 가지가 넘기 때문에,

![question1.jpg](https://steemitimages.com/DQmNdqcaZqYnk14jnnYP98u35x5m6gLJeLLGd24mUo8aDLN/question1.jpg)

누군가 나에게 "당신은 조잡한 코드를 작성하며, 당신은 초급에서 벗어나지 못한다"라고 한다면, 화가 날 것입니다.  이는 마치 "넌 맞춤법도 못 맞추냐?" 내지는 "넌 음정하나 못 맞추냐?"라는 말로 들릴 수 있기 때문입니다. 도미쏠 할때 음정을 틀리는 사람은 별로 없을 겁니다. 하지만 "햇볕은 쨍쨍 모래알은 반짝" 은 좀 다르죠. 아이러니하게도 잘 맞추려고 할 수록 음정은 이상해지고, 좋은 코드를 내려고 할 수록 엉성한 것만 보입니다.

코딩의 질과는 다르게, 이제 양에 대한 이야기를 해 보겠습니다.

컴퓨터 소프트웨어 전공을 했다면,
대학교 1학년때 2000라인을 넘어야 하며,
대학교 4학년때라면 20000 라인 정도의 코드를 작성해 본 경험이 있어야 합니다.
그리고 3-4명이 같이 프로젝트를 진행하여 20000 라인 정도의 코드를 생산해 냈다면 좋은 경험이 될 것입니다.

대학시절에 이정도 작성하면 졸업시에 이미 초급은 아닙니다.
왜냐하면 스킬 향상없이 이 정도 코드량을 만들고 코드가 동작하는 것은 기적에 가깝기 때문입니다.
그리고 이정도 코드량을 통해서 얻는 것이 없다면 죄송한 말씀이지만 적성에 안맞는다고 볼 수 있을 것입니다.
프로젝트가 성공하지 않았다 치더라도, 그 정도까지 가 본 것으로도 좋은 경험이 될 수 있습니다.

> 프로젝트가 항상 성공하면, 그건 조작이지 성공이 아닐 겁니다.
> 아이러니하게도 국내 프로젝트는 거의 100% 성공하며, 모든 목표도 100% 달성합니다.
> 실패를 통해 성공에 다가갈 수 있다면 100% 라고 보아도 괜찮겠지만 말입니다.

몇년전에 본 블로그에서 흥미로운 글을 하나 보았고 여기에 소개합니다.

https://www.teamten.com/lawrence/writings/norris-numbers.html

> My friend Clift Norris has identified a fundamental constant that I call Norris’ number, the average amount of code an untrained programmer can write before he or she hits a wall. Clift estimates this as 1,500 lines. Beyond that the code becomes so tangled that the author cannot debug or modify it without herculean effort.

번역해 보면,

> 내 친구 Norris 는 어떤 기본적인 값에 대해 정의했는데, 나는 이것을 Norris's Number 라고 부른다. 그 값은 숙련되지 않은 프로그래머가 장벽을 만나기 전까지 작성할 수 있는 평균적인 코드량인데, Clift Norris 는 1,500 라인이라고 추정하였다. 그 이상의 코드를 작성하면, 코드가 얼키고 섞여서 매우 큰 노력(헤라클레스의 힘에 비유) 없이는 디버깅하거나 수정하기 어렵다.

이후의 이야기는 대략 다음과 같습니다만, 재밌는 이야기가 많으니 가볍게 읽어 보십시오.
- 2만, 20만 라인을 극복하기 위해서는 스킬의 전환이 필요하지만, 가르치기는 어렵다. (Dijkstra)
- 모든 코드는 잠재적인 버그를 가지고 있으며, 간단한 것이 최고다.
- 교과서에서는 수백라인의 예제만 보여줄 분, 3만 라인의 코드를 보여주는 교과서는 없다.
- 마지막으로 순수 함수형 스타일이 이 20만 라인의 장벽을 뛰어넘도록 도와주리라 기대한다고 적혀있는데 저도 얼마간은 동의합니다.

Good Programmer 라는 제목으로 몇개의 글을 더 작성하려고 합니다.
주제는 다음과 같습니다만, 제목은 다소 바뀔 소지가 있습니다.

1. 내가 관리할 수 있는 코드량은?
2. HOWTO be Professional
3. Practice 프랙티스 1
4. Practice 프랙티스 2
👍  , , , , , , , , , ,
properties (23)
authoragile
permlinkgood-programmer-1
categorykr-dev
json_metadata{"tags":["kr-dev","kr","agile"],"links":["https://www.teamten.com/lawrence/writings/norris-numbers.html"],"app":"steemit/0.1","format":"markdown","image":["https://steemitimages.com/DQmNdqcaZqYnk14jnnYP98u35x5m6gLJeLLGd24mUo8aDLN/question1.jpg"]}
created2017-06-27 15:03:21
last_update2017-07-01 05:23:39
depth0
children11
last_payout2017-07-04 15:03:21
cashout_time1969-12-31 23:59:59
total_payout_value10.440 HBD
curator_payout_value3.227 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2,104
author_reputation879,680,857,135
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,342,698
net_rshares1,532,704,246,817
author_curate_reward""
vote details (11)
@deathnote9 ·
패키지만 잔뜩 만들고.. 막상하려고 하면 뒤죽박죽.. 코딩은 노력이 99%라고 하는데 열심히 해봐야할거 같습니다.
properties (22)
authordeathnote9
permlinkre-agile-good-programmer-1-20170628t004125147z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-06-28 00:41:27
last_update2017-06-28 00:41:27
depth1
children1
last_payout2017-07-05 00:41:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length63
author_reputation94,070,047,675
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,409,708
net_rshares0
@agile ·
리팩토링이라는 말을 들어보셨는지요?
properties (22)
authoragile
permlinkre-deathnote9-re-agile-good-programmer-1-20170701t173833064z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-07-01 17:38:33
last_update2017-07-01 17:38:33
depth2
children0
last_payout2017-07-08 17:38:33
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length19
author_reputation879,680,857,135
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,917,224
net_rshares0
@emalron · (edited)
다음 글이 기대됩니다. 1~2만줄은 커녕 몇백줄만 되도 햇갈리거든요... ㅠ.ㅠ
properties (22)
authoremalron
permlinkre-agile-good-programmer-1-20170627t153008101z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-06-27 15:30:09
last_update2017-06-27 15:30:36
depth1
children2
last_payout2017-07-04 15:30:09
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length44
author_reputation127,041,388,477
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,345,996
net_rshares0
@kdj ·
무심히 하면 됩니다. 욕심내지 말고....
properties (22)
authorkdj
permlinkre-emalron-re-agile-good-programmer-1-20170627t160357795z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-06-27 16:04:00
last_update2017-06-27 16:04:00
depth2
children1
last_payout2017-07-04 16:04:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length23
author_reputation4,188,781,313,300
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,350,278
net_rshares0
@emalron ·
그 번뇌가 ... 끊어지질 않습니다. ㅋㅋㅋ
properties (22)
authoremalron
permlinkre-kdj-re-emalron-re-agile-good-programmer-1-20170627t161654767z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-06-27 16:16:54
last_update2017-06-27 16:16:54
depth3
children0
last_payout2017-07-04 16:16:54
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length24
author_reputation127,041,388,477
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,351,915
net_rshares0
@krdoko ·
프로그래머로서 흥미로운 글입니다. 

요즘에 저도 이런 문제는 아닌데.. 어떤 계단에서 막혔다는 게 느껴져용 

그걸 넘으면 좀 더 고수가 될 것 같은...데

파워업하고싶어!
properties (22)
authorkrdoko
permlinkre-agile-good-programmer-1-20170627t154656233z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-06-27 15:47:00
last_update2017-06-27 15:47:00
depth1
children1
last_payout2017-07-04 15:47:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length98
author_reputation2,029,450,526,779
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,348,057
net_rshares0
@kdj ·
여행을 추천합니다.
properties (22)
authorkdj
permlinkre-krdoko-re-agile-good-programmer-1-20170627t160426192z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-06-27 16:04:27
last_update2017-06-27 16:04:27
depth2
children0
last_payout2017-07-04 16:04:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length10
author_reputation4,188,781,313,300
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,350,326
net_rshares0
@minari ·
간단간단하게 직관적으로 코딩하자는 python이 인기를 끄는 요즘 생각해 볼만한 주제네요. 팔로우 맺고 갑니다~
properties (22)
authorminari
permlinkre-agile-good-programmer-1-20170701t145631668z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-07-01 14:56:30
last_update2017-07-01 14:56:30
depth1
children1
last_payout2017-07-08 14:56:30
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length62
author_reputation18,256,774,154,134
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,899,725
net_rshares0
@agile ·
간단간단하게 코딩하는 것은 매우 바람직한 일입니다.
만일 그렇게 하고 있다면 "조금 더 나아가기"를 시도할 때입니다.
properties (22)
authoragile
permlinkre-minari-re-agile-good-programmer-1-20170701t173944322z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-07-01 17:39:45
last_update2017-07-01 17:39:45
depth2
children0
last_payout2017-07-08 17:39:45
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length65
author_reputation879,680,857,135
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,917,338
net_rshares0
@rlawls1991 ·
잘 읽고 갑니다. 대학교 때 논게 후회가 많이 되네요..
팔로우하고 갈게요!
properties (22)
authorrlawls1991
permlinkre-agile-good-programmer-1-20170627t151220302z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-06-27 15:12:18
last_update2017-06-27 15:12:18
depth1
children1
last_payout2017-07-04 15:12:18
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length42
author_reputation253,942,262,331
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,343,765
net_rshares0
@agile ·
대학때 안 논 사람이 어디있나요?
위에 올린 이야기는 다소 이상적인 이야기인 것 같네요.
나중에 취미로 다시 도전해 보세요...
properties (22)
authoragile
permlinkre-rlawls1991-re-agile-good-programmer-1-20170627t151849205z
categorykr-dev
json_metadata{"tags":["kr-dev"],"app":"steemit/0.1"}
created2017-06-27 15:18:51
last_update2017-06-27 15:18:51
depth2
children0
last_payout2017-07-04 15:18:51
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length71
author_reputation879,680,857,135
root_title"Good programmer 1 - 내가 관리할 수 있는 코드량은?"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id6,344,593
net_rshares0