4737
2015-12-04 00:51:45
0
만약 스스로 창업하시거나 1인개발자가 되실 의지가 있으신거라면 총체적으로 다 배우셔야 합니다.
혼자서 10분짜리 단편 영화 한편 만드는 데에도 각본을 쓰는 능력, 구도를 잡는 방법, 편집을 하는 기술 등 다양한 것이 필요하듯이 단순히 서버개발이나 웹개발식으로 부르기에는 1인 개발자가 되기 위해 필요한 것이 엄청 많습니다.
백엔드 언어(자바, Python, Ruby 등)와 프론트엔드 언어(Javascript, 혹은 앱), 각종 html 태그와 CSS 적용 기법, 서버 셋팅부터 유지관리(유닉스/리눅스) 등은 기본으로 알고 그위에 애자일이니 익스트림프로그래밍이니 하는 개발 방법론들이나 적재적소에 필요한 라이브러리를 적용 할 수 있는 경험치나 비 코드적 문제에서 발생하는 각종 문제들의 원인을 판단하고 해결책을 찾을 수 있는 폭넓은 공학적 지식까지 하면 1인 개발자로써 넘어야 할 산은 매우 높고 또한 많습니다.
일단 학교공부와 별개로 공부를 진행하신다면 백엔드 언어는 Python3을 추천드리고요(Python2.x는 안하셔도 됩니다, Python3.x 지원 안하는 라이브러리나 플랫폼은 아마 다른 지우너들도 미비할 가능성이 큽니다), 웹개발을 위해 javascript도 같이 사용하시는 게 좋습니다.
Node.js는 마이크로프로젝트 하기에는 좋은데 개발 스펙트럼상 Python이 학술용으로도 많이 사용되는 등 더 낫습니다.(php는 가능한 고려도 하지 마세요)
개발은 가능하면 Unix/Linux/Mac 같은 Posix 환경에서 하시구요, 그러면서 각종 명령어와 운영체제 구조에 대해서 익혀두는 것이 좋습니다.
HTTP를 사용하는 만큼 평소 개발은 그단계까지 안하더라도 L3 이상은 숙지하고 있는게 여러모로 좋습니다.
그리고 가능하면 DB입출력은 SQL문 직접 짜지 마시고 ORM 쓰시고요, 높은 확률로 초보자가 막무가내로 짠 쿼리보다 ORM이 자동생성해준 SQL쿼리가 더 효율적입니다. 사실 고급인력 쯤 되면 ORM만으로도 최적화된 쿼리 다 생성하여 사용하니 처음 공부하실 땐 SQL은 표준 SQL문 정도만 기억하고 특정 RDBMS 전용 SQL들은 빼고 전체적인 구조랑 조인원리등만 숙지하세요.
mybatis는 ORM이라 부르기에 조악합니다. 공부할 땐 피하세요. 공부할 때에는 mysql은 기능이 제한적이니 oracle 수준의 기능들을 지원하는 postgresql 9.x를 사용하는게 공부에 좋습니다.
HA의 개념이나 부하분산 전략등은 한단계 위로 올라가기 위해서는 필수고요, 사실상 한번 유입이 생기면 유저가 폭증하는 요즘 인터넷 특징상 서비스 만들기에 필수에 가깝습니다.
대충 5분안에 생각나는 것들만 나열해도 벌써 이만큼이네요. 필요하다면 CPU 동작 원리나 압축알고리즘 동장방식 같은 세세한 부분까지 알고 있는게 베스트입니다.
다만 이것들 다하는데 일이년으로는 택도 없고, 어느정도 했다 싶으면 또 신기술이 나와 있거나 트렌드가 바뀌거나 하므로 1인 개발자로 살아남으려면 정말 매일같이 공부해야 합니다.