이디군만세이글루

기능 테스트 중인 이글루입니다. 내용은 아직 없습니다.
by 이디군 dagui.egloos.com | 이글루스 | 로그인

웹프로그래머가 주변사람들에게 폐끼치지 않고 살기 위해 갖추어야 할 능력

1년 전에 PHP스쿨에 올려서 히트쳤던 글

가끔 스스로 읽어보면서 각오를 다시 다시기도 한답니다.
1년이 지난 지금 별로 한게 없군요.

http://www.phpschool.com/bbs2/inc_view.html?id=17510&code=phorum2




웹 프로그래머로 몇년 굴렀습니다.
개인적으로 이러한 것들이 필요하다고 생각이 되는군요.

웹프로그래머가 되려고 생각하시는 분들에게 말해드리고 싶습니다.

물론 첨부터 이것을 다 알고 시작하는 사람은 없겠죠..
저도 마찬가지구요. 하지만 결국 이런 것들을 대충이라도 감을 잡아야
주변사람들한테 폐끼치지 않고 살 수 있다는 생각입니다.

여기서 주변사람들에게 폐끼치는 유형은 다음과 같습니다.

사장: 저새끼 짤라야 되나 말아야 되나
동료: 저새끼하고 일할라면 답답해 죽겠어
친구: 저새끼는 이바닥 몇년인데 아직도 그런것도 몰라서 나한테 물어보냐
부하직원: 저새끼는 아는것도 없으면서 대우만받을라구하네

물론 개인적인 생각일 뿐이니 더 추가할것도 빠질것도 있을거라 생각됩니다.
그냥 마음을 비우시고 한번 참고삼아 보시면 감사하겠습니다.


순서는 이론, 플랫폼 지식, 언어 입니다.
흔히 프로그램을 생각할 때 언어를 가장 먼저 생각하시는데.
저는 맨 마지막이라고 생각합니다.

언어는 말하는데 쓰는 것입니다. 생각을 하기위한 방법이나 기본 재로들이 없이
말만할 수는 없는 겁니다.


1. 이론

- 인터넷 규약
TCP/IP, Socket 통신, HTTP, SMTP, DNS
공개키 암호화 개념, SSL

인터넷 규약은 어렵지는 않지만 너무 많다는것이 문제

모든 규약을 줄줄 외울 필요는 없겠지만
어떻게 돌아간다는 기본 개념 정도는 알아두어야

HTTP, STMP 정도는 주요 명령어와 문법정도는 알아야

- DBMS
기본 개념(정규화 등 논리설계 관련)
기본 설계 요령(인덱스 등 물리설계 관련)

아무리 파도 끝이 없는 샘물과도 같은 주제
하지만 아무리 많이 배워도 지나침이 없는 주제

그렇다고 DB만 파고 있을 수는 없는 노릇이지만
기본은 갖출 필요가 있음

- 보안
공격 유형
보안 헛점의 유형
웹서버 SSL 구성방법 등

최근들어 급격히 필수 소양으로 자리잡아가는 추세

웹서버 구성방법은 이론적 지식이라고 할 수는 없지만
분류를 하다보니 그만...


2. 플랫폼

- Unix 플랫폼
기본 명령어(ls 부터 find, grep 등 까지)
개발도구([g]cc, make 등)
쉘스크립팅
C 언어 기초

C언어 개발도구가 들어있는 이유는 C로 개발을 하지 않더라도
소프트웨어를 설치하고 구성하는데 있어서 필요함

그리고 C언어 지식은 Unix 시스템을 이해하는데 있어서
매우 중요한 역할을 함

유닉스는 알면 알수록 사용하기 편해지는 운영체제

- Windows 플랫폼
Unix 지식
시스템 관리도구(mmc 등)
COM/ActiveX
Visual Basic

Unix 지식을 넣어놓은 이유는 Windows의 관리도구들은
Unix의 개념에 UI를 씌워놓은 것처럼 느껴질때가 많기 때문
특히 네트워크 서비스 관련된 부분은 더욱.

단 사용자 계정/권한 부분이나 디스크관리 등
보다 더 로우레벨 부분은 그렇지 않음

- Java 플랫폼
Native 플랫폼(Windows or Unix)
객체지향 개념(철저)

Java는 Native 플랫폼 위에 구축된 거의 독자적인 플랫폼이지만
Native 플랫폼 지식은 당연히 알아야함,
Java 서버를 돌리더라도 결국 운영체제의 영향을 받기 마련
운영체제의 문제를 해결하지 못하면 Java도 별 수없음

그와 더불어 Java 플랫폼만의 특수한 지식도 폭넓게 알아야 함.
Java 플랫폼에서는 일단 문제가 발생하면 해결이 쉽지 않다는 특징이...

- DB 플랫폼(Oracle, MySQL 등)
기본적인 관리(백업,복제 등)
SQL 특성
데이터 저장 구조

사실 DB 플랫폼이란 말은 없다. 그러나 DB는 다른 영역에 비해
중요도가 너무 높고 또 제품에 따라 특성이 너무 다르다.

그래서 DBMS 제품 하나가 거의 플랫폼이라고 할만큼의 지식을 필요로 한다.

MySQL이 비교적 단순하고 쉽지만 역시 전문적으로 운영하려면
만만치 않다.

앞서 이야기한 이론적인 DB 지식과 함께 DBMS의 특성에 대한
이러한 지식들이 있어야 문제가 되는 설계를 피할 수 있고 튜닝도 가능하다.

DBA라는 직업이 따로있는 이유는 이 모든 것을
프로그래머 혼자 다 할 수 없기 때문이겠지만
그렇다고 프로그래머가 이런 것들을 하나도 모른다면 프로그래머가 아니라 바보다.

3. 언어

- 웹스크립트언어(택2 이상 권장)
PHP, ASP, JSP 등

처음에는 힘들게 생각될 수 있겠지만
하나에 숙달되고나면 새로 배우는 것도 별로 어렵지 않음.

처음에 힘들게 생각되는 것은 앞서 이야기한 이론적 지식과
플랫폼 지식을 함께 배우기 때문임.

그렇다고 이것저것 수박겉핧기는 곤란.
하나를 마스터하고나면 나머지는 거의 거져 알게된다고 생각하고
임하기 바람.

다시한번 강조하지만 언어는 별로 어렵지 않음
플랫폼 지식이 가장 어려움(양이 많기 때문)

- 시스템 언어(최소한 택1)
Perl, Java, Python 등

시스템이 웹베이스만으로는 돌아갈 수 없다.

사이트를 만들고 운영하다보면
주기적으로 처리해 줘야할 작업이나 서비스 연동을 위한
간단한 데몬을 만들 필요가 발생

이때 사용할 수 있는 부전공 언어를 배워 놓는 것이 좋음

MS 플랫폼의 경우 VBScript 나 JScript도 가능한 선택이지만
언어가 제공하는 기능이 너무 부족하고
플랫폼에 종속된 기술이기 때문에(Unix 에서는 없음) 그렇게 권장하지 않음

PHP도 시스템 스크립트로 사용할 수 있으나
외부 모듈을 사용하기가 여의치 않다는 치명적인 단점이 있다.
웹에서는 필요로하는 거의 모든 것이 갖추어져 있지만
웹이 아닌곳에서는 항상 가려운곳이 생기기 마련

Java는 JSP로 웹도 커버하고 비웹 스크립트도 만들수 있으니
하나만 배워도 될거라고 생각할수 있지만 이것은 오산
Java는 기본적으로 덩치가 커서 JVM 로드하고 하려면 느리다
백그라운드 작업을 하는 데몬을 만들기는 좋지만
코드 몇줄 짜리 정말 간단한 작업을 위해 쓰기에는 너무 거창하다.

- 기타 필수 언어
Javascript, SQL

- 기타 프로그램 언어는 아니지만 필수
XML, CSS

by 이디군 | 2004/10/03 23:57 | +웹프로그래머 이디군 | 트랙백 | 덧글(0)
트랙백 주소 : http://dagui.egloos.com/tb/388051
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

:         :

:

비공개 덧글


◀ 이전 페이지 | ▲ 우으로 | 다음 페이지 ▶