나빌레라의 프로그래밍하기 #4

나빌레라의 이미지

4. 공부하기
다른 직업도 이런지는 모르겠지만, 개발자는 은퇴하는 그날까지 끊임없이 새로운 기술을 공부해야 하는 슬픈 운명을 타고난 직업이다. 개발자라는 직업이 이렇게 지속적으로 피곤한 직업인줄 진작 알았더라면 나는 아마 다른 직업을 택했을 것이다. 지금도 늦지 않았다는 생각은 항상하지만 배운게 도둑질이라는 옛말대로 다른 할 줄 아는 것이 별로 없어서 오늘도 이렇게 프로그래밍을 하며 공부를 하며 짬짬히 글을 쓴다.

지난 글에서 웹 프로그래밍을 하기로 결정했다. 나는 2006년 즈음에 PHP와 야후에서 만든 yui라는 자바스크립트 라이브러리를 이용해 웹 프로그래밍을 해봤다. 물론 당시 등록금을 벌기위함이었다. 이것이 내가 마지막으로 웹 프로그래밍을 했던 경험이다. 그때 이후로 웹 프로그래밍은 잘 만들어진 프레임워크를 이용해 개발하는 것이 대세가 되었다.

나도 많이 알지는 못하지만 자바 진영에는 spring이 있고, 루비 진영에는 레일즈가 있다고 한다. 파이썬 진영에는 django가 있다고 한다. 그 외에도 많은 프레임워크가 있지만, 웹 프로그래밍을 업으로 삼고 있지 않은 내가 알 수 있을 정도는 되어야 진정 유명한 프레임워크라고 인정하고 후보군을 좁혔다. 그리고 선택한 프레임워크는 django이다.

일단 파이썬은 할 줄안다. 파이썬으로 대단한 프로그램을 작성해 본적은 없지만, 자잘하고 소소한 프로그램들은 많이 만들어 봤고 이것저것 귀찮은 작업들도 파이썬 스크립트로 많이 만들어 봤다. 최소한 파이썬 문법은 안다. 다음은 django. 하나도 모른다. 그러면 공부를 해야 한다. 역시 공부. 개발자에게 공부란 숙명인것인가! 책을 한 권 샀다. 국내에 django를 설명한 한글 서적은 참 선택하기 쉽다. 몇 권 없으니까. 그리고 책이 배송되는 동안 구글등을 찾아서 django 강좌등을 읽어보면서 어떻게 구성되고 동작하는 프레임워크인지 눈으로 익혀봤다.

책이 도착하면 일단 컴퓨터를 끄고 책을 처음부터 끝까지 그냥 쭉 읽는다. 분명 개발 관련 서적이고, 책의 내용중 상당 부분이 소스 코드로 이뤄져 있지만, 나는 처음부터 소스코드를 타이핑하지 않는다. 내 방식일 뿐이니까 이글을 읽는 여러분들은 본인들만의 방식을 찾길 바란다.

책을 다 읽고 나면, 책의 앞 부분에 나오는 가장 쉬운 예제를 하나만 타이핑해서 실습해 본다. 기분에 따라서 예제를 몇 개 더 따라해볼 수도 있지만, 나는 보통 맨 앞에 나오는 가장 쉬운 예제 하나만 해본다. 어차피 책의 뒷 부분에 나오는 예제들은 내가 본격적으로 프로젝트에 돌입하고 나면 언젠가는 참조해보기 때문이다.

그 외에도 필요한 지식은 DBMS 프로그램 사용법, SQL 문법, DB table 설계, 웹서버 설정, HTML, Javascript, CSS 등이 있는데, django 외엔 내가 할 줄 아는 것들이다.

공부를 다 했으니까, 이제 만들고자 하는 웹 서비스의 설계를 진행해야 한다. 돈을 벌기위한 프로그래밍을 진행 할 때처럼 거창하고 복잡하고 보기 좋은 설계는 필요하지 않다. 어차피 혼자하는 프로그래밍이기 때문에 나만 잘 알아볼 수 있으면 된다. 나는 주로 시나리오 기반으로 설계를 진행한다. 먼저 내가 만들고자하는 프로그램의 동작을 머릿속으로 생각한 다음 이를 글로 쭉 쓴다. 그리고 그 글에서 동사와 명사를 추출한 다음 명사는 객체나 DB 엔티티로 삼고 동사는 함수, 인터페이스, 메소드로 삼는다. 이 과정은 다음 글에서 쓰겠다.

일단은 공부를 철저히 하는 것이 중요하다.

====
이 글은 CC이지만 다른곳에 불펌은 하지 말아 주세요. KLDP와 raonlife에(http://raonlife.com/navilera/blog/view/54/)만 연재합니다. 다른 곳에 연재되어 있는 것은 불펌이오니 저에게 알려주세요.

댓글

oppor의 이미지

django 하시는군요.

급 관심이 생기네요. 책은 뭐 사셨는지 가르쳐 주실수 있으신가요?

나빌레라의 이미지

인사이트 출판사에서 나온 djngo 책입니다.

국내에 한글로 나온 django 책은 몇 권 없습니다.

그리고 처음에 익숙해지기 위함일 뿐 결국 나중엔 책없이 인터넷 뒤져서 개발하게 되더라구요.

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.