웹 프로그래밍을 시작하는 개발자에게 어느 기술을 추천하겠습니까?

2013-02-14 12:27

어제 SK 플래닛, 쿠팡, nhn, 스펙트라, 재택 근무자와 술 한잔할 수 있는 기회가 있었다. 오랫만에 술잔을 기울이며 프로그래밍과 관련한 이런 저런 이야기 나눌 수 있어 즐거운 시간이었다.

그런데 술자리에서 채수원 친구가 "웹 프로그래밍을 시작하는 개발자에게 어느 기술을 추천하겠습니까?"라는 질문을 했다. 본인은 아직까지 잘 모르겠다면서...

이에 대한 답변은 PHP, PYTHON 기반, Rails, 자바 기반 등등 다양했다. 이유도 다양하다. 현재 업계를 봤을 때 자바 기반으로 가야되지 않냐? 자바는 너무 복잡하다. 서비스 마인드를 가지려면 자신이 만들고 싶은 기능을 바로 만들어 가면서 경험할 수 있을텐데 자바는 현실적으로 한계가 있다고 생각한다. 따라서 동적 언어인 Python 기반이나 Rails로 접근하는 것이 좋겠다. 자바는 서비스 마인드를 가지기 위한 기술을 쌓는데 너무 많은 시간이 걸린다. 오랜 만에 이런 저런 이야기로 많이 떠들었다.

이 내용은 한편으로 보면 프로그래머가 알아야할 기본 지식은 어디까지일까?(http://www.slipp.net/questions/80)) 글과도 약간 관련성이 있는 글이다. 웹 프로그래밍을 시작하려는 친구에게 무엇부터 시작하도록 가이드하는 것이 좋을까? 나도 이제 next 학생들에게 조언을 해야되는 입장에서 고민이 되는 부분이다.

2개의 의견 from FB

BEST 의견 원본위치로↓
2013-02-14 12:51

제가 했던 말을 정리하면...

프로그래밍을 전혀 모르거나 랭귀지를 막 공부한 사람이라는 전제 아래에서

  • 당장 서비스를 만들어 돌려서 성패를 봐야 한다면 PHP
  • 출시나 펀딩에 조금 여유가 있어서 공부할 시간이 있다면 Python + Flask
  • 서비스의 성패가 중요하지 않고 자금줄이 든든해서 나중에 개발자를 많이 뽑을 것까지 생각한다면 Java + #$!^%!#@$^!#$!@#^*&#$%$^$#

제가 자바는 서비스 마인드를 갖기에 불리하다고 말한 것은 대략 이런 의도입니다.

남이 요구한 일을 받아서 구현하는 사람이 아닌 스스로 아이디어를 낼 수 있으려면, 수시로 프로그래밍을 통해 자기 일이나 삶을 개선하려고 시도하는 일을 자주하는 게 좋다.

이를 위해서는 자기 삶의 문제를 해결할 아이디어가 떠올랐을 때 아주 수시로 이를 큰 부담 없이 시도하고 맘에 안 들 때 버릴 수 있는 기술이 유리하다.

자바는 언어적 특성이나, 커뮤니티의 문화 등이 일을 시작하기 전에 준비를 많이 해야 하는, 정지 마찰 계수가 높은 기술이다. (최근에 많이 해결되었음에도 불구하고...)

따라서 파이선이나 루비 같은 언어가 단순 직업 프로그래머가 아닌 서비스 마인드 갖은 프로그래머로 성장하는데 도움이 된다.

예를 들어 대규모의 DB 테이블을 이전을 해야 한다고 할 때 툴을 찾는 대신 맘 편히 스크립트를 작성할 수 있어야 하지 않을지...

15개의 의견 from SLiPP

2013-02-14 12:40

@fupfin 어제 이야기한 내용들을 더 구체적으로 공유하고 싶은데 술 기운 때문인지 잘 기억이 나지 않네요. 어제 정말 좋은 이야기들 많았고, 그 이야기들을 다른 개발자들에게도 나누어 주고 싶은데요.

기회가 되면 개발자들이 궁금해 하는 몇 가지 이슈들 정리해서 talk concert 같은 거 하면 재미있을 듯 해요.

2013-02-14 12:51

제가 했던 말을 정리하면...

프로그래밍을 전혀 모르거나 랭귀지를 막 공부한 사람이라는 전제 아래에서

  • 당장 서비스를 만들어 돌려서 성패를 봐야 한다면 PHP
  • 출시나 펀딩에 조금 여유가 있어서 공부할 시간이 있다면 Python + Flask
  • 서비스의 성패가 중요하지 않고 자금줄이 든든해서 나중에 개발자를 많이 뽑을 것까지 생각한다면 Java + #$!^%!#@$^!#$!@#^*&#$%$^$#

제가 자바는 서비스 마인드를 갖기에 불리하다고 말한 것은 대략 이런 의도입니다.

남이 요구한 일을 받아서 구현하는 사람이 아닌 스스로 아이디어를 낼 수 있으려면, 수시로 프로그래밍을 통해 자기 일이나 삶을 개선하려고 시도하는 일을 자주하는 게 좋다.

이를 위해서는 자기 삶의 문제를 해결할 아이디어가 떠올랐을 때 아주 수시로 이를 큰 부담 없이 시도하고 맘에 안 들 때 버릴 수 있는 기술이 유리하다.

자바는 언어적 특성이나, 커뮤니티의 문화 등이 일을 시작하기 전에 준비를 많이 해야 하는, 정지 마찰 계수가 높은 기술이다. (최근에 많이 해결되었음에도 불구하고...)

따라서 파이선이나 루비 같은 언어가 단순 직업 프로그래머가 아닌 서비스 마인드 갖은 프로그래머로 성장하는데 도움이 된다.

예를 들어 대규모의 DB 테이블을 이전을 해야 한다고 할 때 툴을 찾는 대신 맘 편히 스크립트를 작성할 수 있어야 하지 않을지...

2013-02-14 13:26

PHP는 피했으면 좋겠습니다. 고수라면 PHP를 고집할 이유가 없고, 처음 시작하는 사람이라면 안 좋은 프로그래밍 습관만 잔뜩 떠 안게 되지 않을까 싶습니다.

Django, Rails로도 충분히 즉시/고속 개발가능한 환경이 구축가능합니다. 오히려 Apache등을 깔지 않고 즉시 웹서버를 띄울 수 있어서(요즘 PHP도 이렇게 바뀌었나요?) 더 빨리 개발에 들어갈 수 있다고 봅니다.

저 또한 자바는 준비 시간이 너무 오래걸려서 피하는게 좋다고 생각되는데요, 요즘에는 Grails, Play 같은 Java는 아니지만 나중에 프로젝트가 완숙단계에 다달았을 때 JVM의 장점을 모두 끌어 안으면서 Django, Rails 같은 고속 개발 가능한 환경이 만들어지고 있으니까 Java라기 보다는 JVM 환경에 대한 고려를 뺄 필요는 없어보입니다.

저 개인적으로는 Grails를 프로토타이핑 겸 실제 서비스 즉시 적용 가능하면서 서비스 확장 단계에서 JVM의 장점을 끌어안을 수 있는 프레임워크 1순위로 보고 있습니다. 문제는 실제로 해본적이 없다는거...

2013-02-14 13:44

저도 PHP는 정말 안 좋은 기술이라고 생각하고요. 그래서 늘 쓰지 말라고 말리지만, 한두달 안에 어떤 기술을 익혀서 돌아가는 시스템을 만들어야 한다면 어쩔 수 없는 거 같아요.

2013-02-14 14:14

Grails 가 쓸만하고 참 좋은데, Co-Work 할때 안 좋아요. 특히 한국에서는.

뭐... 개인적인 경험이라 일반화 시키긴 어렵지만... 전 JPA/Hibernate도 회의적입니다. 우리나라 개발자의 SQL 사랑은 막을 수가 없어요...

아마 다음 다닐 시절에 구축해 놨었던 Grails도 다 걷어 냈을꺼고...

개인적인 공부는 좋지만, 실무 적용은 제 경험상으로는 끔찍했습니다. SQL을 너무 좋아해요.

2013-02-14 14:34

IE6/7 죽이이 캠페인처럼 No More SQL 캠페인이라도 벌여야 할 것 같아요. SQL 사랑 때문에 90년대 C/S 방식이 지금까지 쭉 이어지고 있지만 이젠 부작용이 너무 커서 더는 이런 방식을 유지할 수 없는 지경에 이르지 않았나 생각됩니다. 모든 개발자를 바꿀 수는 없지만 (그럴 필요도 없고) 지역적으로 바꾸는 노력은 계속해야 한다고 생각해요. 몇년 전에 비하면 바뀌는 모습이 많이 보이고요. NoSQL 덕분에 개발자들이 비 SQL 계열의 데이터 저장소 기술에도 관심을 갖게 되었고 nosql distilled 같은 책처럼 NoSQL을 객체 도메인 모델링과 연결해서 논의하는 일도 많아지고 있으니 말이죠.

2013-02-14 16:03

어제 이야기중에서 나왔던 면접때 물어보는 질문도 공유하면 좋겠습니다. 웹 프로그래밍을 시작하는 개발자들이 모두 관심을 가지고 준비할 내용일테니까요. A께서는 - 최근에 읽어본 책중 인상깊은 3권을 말해보세요 B께서는 - 전반적으로 만족스럽지 않을 때, 자신이 제일 잘 이야기할 수 있는 것으로 이야기해보세요(마지막 기회) - 하지만, 마지막 기회를 살린 사례는 없었다. C - 어느 분야의 경험/전문가라고 써 놨다면 써본 느낌/장단점을 말해보세요. - 예: 왜 스프링을 썼나요? D - 자기소개를 할 때 특정 질문에 왜? 라는 질문을 세 번 더 물어본다. E - HelloWorld를 찍어본 언어를 나열해보세요. - 직접 노트북을 주고 HelloWorld를 찍어보라고 시킨다.

이렇게 기억에 남네요.

2014-05-20 13:49

안녕하세요. 프로그래밍을 공부하기로 마음먹고 이곳 저곳에서 정보를 검색하던 중에 여기 좋은 글을 보게되었네요.

저는 지금까지 기획과 마케팅 분야에서만 활동해왔습니다. 프로그래밍 관련 경험이나 지식은 전혀 없는 백지 상태입니다. (서비스나 컴퓨터를 다루고 활용하는 것은 잘 한다고 생각합니다. 아니.. 좀 친하긴 합니다. 컴퓨터와..)

위에서 조언해주신 글들을 보면서도 고민이 되는 것은 Java를 시작으로 공부 할 것인지 아님 파이썬이나 루비같은 것들을 시작으로 할 것인지 입니다.

개인적인 바람이 있다면 평소 생각나는 것을 개발을 통해 구현하고 싶고 이것을 평생의 업 또는 즐거움으로 두고 살고 싶습니다. 그러기 위해 단단히 배우고 싶은 마음도 있지만 또 한편으로는 필요없는(?) 것들까지 배우면서 너무 늦어지지 않았으면 하는 생각도 있습니다. 혹시 조언해주신다면 어떤 언어로 시작하는 것이 좋을까요?

2014-05-20 14:12

@Kick 현재 Kick님의 상황을 모르는 상태에서 구체적인 조언을 하기는 힘드네요.

위 글만으로 봤을 때 일단 가볍게 시작하시려면 ruby/python 중에 하나 선택해서 하시면 좋지 않을까 생각합니다. 웹으로 진행한다는 가정하에 ruby는 ruby on rails, python은 django로 시작하심 어떨까 제안하네요. 일단 웹 애플리케이션 만들어 보면서 재미를 느끼고, 추가적으로 학습할 부분이 보이면 더 깊이 있게 공부하는 것도 좋겠다는 생각입니다. 일단 한 가지 선택한 후에 도전해 보세요. 그래야 그 다음 단계로 무엇을 공부해야될지가 보입니다.

2014-05-20 14:19

@자바지기 빠르고 자세한 답변 감사합니다. 사실 저는 프로그래밍과 관련하여 어떤 것을 아는지 어떤 것을 모르는지조차 모르는 상황입니다. (웹 개발과 Pc 프로그램 개발을 위한 언어가 다른지 어떤지도 알지 못합니다.)

공부하는데 시간은 꾸준히 지속적으로 또 많이 투자 할 생각입니다. 혹시 공부 하는데 어떻게 하면 도움이 될지도 조언 받을 수 있을까요? 스스로 인터넷에서 정보를 찾고 책을 통해서 공부하는 식으로 혼자서 공부하는게 한계가 있지 않을까요?

바쁜 시간 쪼개어 답변해주셔서 감사합니다 :-)

2014-05-20 14:24

@Kick 프로그래밍 경험이 전무하다면 일단 http://opentutorials.org/course/1 같은 곳에서 따라하기식의 코딩이라도 해보고 경험을 쌓아보세요. 그러면서 하나씩 다음 단계로 넘어가고 싶을 때 현재 자신의 상태를 공유하고 다른 분들의 조언을 받거나 본인이 스스로 느끼는 바가 있으면 다음 단계로 도전해 보시면 좋을 듯 하네요.

그럴 여력이 없다면 본인이 만들고 싶은 것이 있다고 하셨으니 그 주제를 해결하기 위해 가장 적합한 언어나 도구를 찾아가는 것도 좋은 방법이라 보여집니다. 본인이 만들고 싶은 것을 공개하고 다른 분들의 의견을 구하는 것도 좋겠네요.

2014-05-20 14:35

@자바지기 사실 어제부터 생활코딩에서 java영상을 들으며 이클립스에 헬로 월드 띄우는 것을 해봤습니다. (자바지기님께서 예전에 업로드 하신 자바웹개발 학습 동영상을 방금 보았는데 이 얘기가 나와서 웃었어요 ㅎㅎ) 조언해주신 것 처럼 제가 주제를 명확히 하여 어떤 도구를 추천 받는 것도 좋을 것 같습니다. 감사합니다. 그 전까지는 일단 친해지기(?) 차원에서 생활코딩에서 java영상을 보며 어색함(?)을 없애기 위해 노력해야겠어요 :-) 그런데 생활코딩에는 ruby나 python관련 강좌는 없는 것 같던데 혹시 관련 강좌를 하는 곳이 있을까요?

아, 제가 확인하니 위 언어 모두 생활코딩에 영상이 있네요 ;; 감사합니다 :-)

2014-05-20 22:35

beginner가 기둥뿌리 썩었다고 뽑을 순 없을테니 역설적으로 DB관련 서적으로 진흙탕을 지나가고 남는 시간에 공부를

http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788994506128&orderClick=LAV&Kc=

그 반대의 경우는 그 조직이 db중심적이지 않다는 것만으로도 소프트웨어 개발에 대한 의식수준이 높다고 생각합니다.

그래서 그 경우에는 그냥 고민말고 사수가 추천하는 책

제가 너무 세파에 쩌든 답변을 했나요.. 이상 진흙탕을 걷고 있는 남자의 답변이었습니다..;;;

의견 추가하기

연관태그

← 목록으로