자바 vs. PHP

 IT  Comments Off on 자바 vs. PHP
May 292013
 

자바가 좋냐 PHP 가 좋냐?

2000 년대 초반 PHP 가 뜨기 시작하면서부터 있어왔던 이 질문은 무려 10년이 넘은 현재까지도 풀리지 않는 난제로 남아있는 듯하다.

여태까지 그 질문에 대한 명백한 해답이 없다는 것은 그만큼 양 진영의 장단이 뚜렷하다는 반증일테고, 트렌드가 급변하는 “웹” 이라는 분야에서 10년넘게 주류로 살아남았다는 것을 봤을때 “둘다 대단하다” 라고 결론내도 부족함이 없을것이다.

이 글의 목적은 php 와 자바간의 성능차이를 말하고 싶은건 아니고, 두 언어중에 하나를 선택해야만 하는 사업가나 개발자를 위한 글이다. 당연히 개인적인 의견이고, 일반화나 비약이 있을 수 있다. 참고로 필자의 개발경력은 php 5년, 자바 5년이니 참고하시면 좋을듯하다.
일단 결론

긴글 읽기 싫은 분들을 위해 결론부터 얘기해보면 아래와 같다.

1) 블로그/게시판/포럼 형태의 프로젝트 – php
2) 좀더 복잡한 기능의 프로젝트 – java
3) 개발을 업으로 삼고 싶다면 – 둘다

1) 블로그/게시판/포럼 형태의 프로젝트

블로그나 게시판등 오픈소스로 구현할수 있는 수준의 프로젝트라면 단연 php 다. 굳이 있는걸 다시 만들 필요는 없기 때문이다. 일례로 간단한 블로그를 구축하는데 드는 시간과 돈을 측정해보자.

php 로 블로그를 구축

개발용 APM 원클릭 설치 (5분)
넘쳐나는 오픈소스 블로그 중 택일해서 다운로드 (5분)
브라우저를 통한 간단한 설치 (5분)
저가 호스팅 구매 (월 천원)
소스 업로드 (5분)

자바로 블로그를 구축

개발용 mysql 및 웹서버 수동설치 (30분)
오픈소스 블로그 검색 (하루)
좋은게 없어서 직접 개발 (이틀)
저가 JVM 호스팅 검색 (하루)
좋은게 없어서 VPN 구입 (월 5천원)
리눅스, 웹서버, DB, 배포 script 등 세팅 (하루)
소스 배포

물론 웃자고 쓴 내용도 있지만 여러가지 면에서 php 가 훨씬 쉽고 간단한게 사실이다.

php 진영에는 쉽게 설치해서 사용할수 있는 오픈소스 CMS 들이 너무나도 풍부하다. 물론 자바진영에도 훌륭한 오픈소스들이 많지만, php 처럼 설치만 해주면 돌아가는 stand-alone 형태 보다는 개발중에 활용가능한 라이브러리나 프레임워크인 경우가 많다. 무료에 퀄리티 높은 CMS 는 거의 전무하다고 봐도 좋다.

실제로 자바로 서비스를 구축한 대부분의 회사들이 포럼이나 게시판에 한해선 php를 사용하는 일이 다반사일 정도다.

요새 CMS 들은 어지간한 커뮤니티 기능은 다 제공한다.

개발 환경구축, 실서버 환경구축 적인 면에서도 php 가 훨신 간단하다. 호스팅을 받아서 아무것도 하지않고 그냥 php 스크립트만 올리면 되는 경우가 대부분이다. 사이트 규모가 커져서 직접 서버를 구축해야된다면 또 다른얘기지만 , 규모가 작을때도 서버를 직접 구축해야하는 자바에 비하면 큰 장점이라고 볼수있다.

2) 좀더 복잡한 기능의 프로젝트

자바가 답이라고 생각하지만 php 로도 복잡한 기능을 충분히 구현할 수 있다. 단, 훌륭한 개발자가 있다는 전제하에다. 큰 규모의 홈페이지를 만들때는 php 보다 자바가 낫다라는 말을 쉽게 듣는데, 사실 이런 말을 하는 이유는 php 가 자바보다 떨어지는 언어라서가 아니다.

모든 개발물들은 복잡하고 규모가 커지게 되면 안정성, 보안, 효율성.. 특히 유지보수와 확장성(expandability, reusability) 등의 요소가 중요해진다. 자바로 개발된 웹프로젝트는 이런 요소들을 기본적으로 충족시킬 가능성이 크다.

우선, 자바 개발을 위해선 기본적으로 j2ee 스펙과 이를 구현한 한가지 이상의 framework 을 알아야 한다. 즉 초보자가 hello world 정도만 찍어보고 뚝딱! 웹페이지를 만들어 낼 수 없다는 것인데 이게 왜 중요하냐면, 어느정도 스펙과 framework 을 숙지한후에 만들어 내는 결과물은 일정수준의 코드 퀄리티를 보장할수 있기 때문이다. 또한 JSR 로 통칭되는 자바진영의 공통스펙과 유명 framework 들은 개발자들간의 용이한 협업을 가능하게 해준다. 이말은 결국, 협업의 효율이 좋고 사람이 나가서 새로 뽑아도 코드를 파악하고 이해하는데 시간이 적게 걸린다라는 이야기다.

이 부분에 대해서 제발 오해가 없었으면 하는것이, php 로도 충분히 고레벨의 프로젝트를 구현할 수 있으며 유명 framework 들이 존재한다는 사실이다. 다만 java 계열보다 무수히 많은 framework 들과 cms 들이 공존하고 있고, 두명의 PHP 개발자를 무작위로 뽑았을때 아마도 다른 플랫폼에서 개발해왔을 가능성이 농후할 것이라는 얘기다. 그리고 PHP 는 간단한 홈페이지를 만드는데 필요한 모든 기능을 자체 라이브러리에 가지고 있는데 이는 배우기 쉽고, 또 결과물을 만들기 쉽게 하지만 역설적으로 쉽기 때문에 전체적인 개발아키텍쳐에 대한 큰 고민없이 뚝딱 무언가를 만들기 쉬우며 실제로 이런 코드들이 빈번하게 발생한다. (후임자를 분노하게 만드는 일명 ‘발코딩’ 혹은 ‘똥’ 이라는 전문용어가 존재한다). 이러한 연유로 초급개발자 풀도 넓은 편이고 “php 로 개발된 무언가는 코드의 재활용성이 떨어지는 경우가 많다”라는 오해가 생긴 것이다.

다시 말하지만 이 모든것은 허접한 일반론일 뿐이니 실력파 php 개발자 분들이 분노하시는 일은 없길 바라고, 개인적으로 자바의 spring 이나 struts 와 같이 통일된 framework 이 없다는것이 더 큰 이유라고 생각한다.

3) 개발을 업으로 삼고 싶다

웹개발을 업으로 삼고 싶다면 자바와 php 를 모두 배울 것을 추천한다. 그리고 자바를 더 깊게 팔것을 추천한다.

자바를 알아야 하는 이유부터 보자. “일반적”으로 자바 개발자들의 수준은 꽤나 높은 편이며, 이는 많은 회사에서 인지하고 있다. 자바웹개발이 상대적으로 어렵고, 일정수준에 도달하지 않고서는 퍼포먼스를 내지 못하는 점도 있고, 계속해서 발전하는 프레임워크와 스펙을 알지 못하고는 현업에 남아있을수 없기 때문에 울며겨자먹기로 열공하는 경우가 많기 때문일지도 모른다. 대체자가 많은 php 개발자보다 ‘고급개발자’로 우대받을 수 있을 가능성이 높고 봉급도 더 높은 편이다. 얼마전 유명 스타트업이 사이트의 급성장과 이를 어떻게 대비했는지를 공유한 블로그가 있었는데, php 에서 자바로 옮긴 이유중 하나가, 새로 뽑은 우수인력들이 자바를 선호해서라는 글도 있었다. 아쉽게도 어떤 회산지 기억이 나지 않아 링크는 불가 (지어낸거 아님 ㅠ.ㅠ)

그러나 php 도 소홀하지 않는것이 좋다. 일단, php 는 구직의 문이 넓다. 중소규모의 회사라면 자바보다는 php 가 부담이 덜하기 때문에 (또 친숙도가 높기 때문에) 직업도 많고 프리랜스 기회도 많다. 또한 php 의 넓은 오픈소스풀 때문에 어쩔수 없이 php 를 건드려야 하는 경우도 많기도 하고.

PHP 보다는 자바가 공부할게 많다. framework 이나 라이브러리를 쓸때도 몇개를 다 써보고 비교해봐야하고, 트렌드가 어떻게 바뀌는지도 따라가기 더 힘들다 (더 자주 바뀌기 때문이다). 열공하자..

4) 부록

최근들어 자바진영에는 JVM 을 기반으로한 스크립트 언어들이 양산되고 있다. php 는 스크립트 언어라며 무시(?)하던 소수의 자바개발자들도 있는걸 생각하면 스크립트 언어들이 우후죽순 생기는 것이 의아하기도 하다. Groovy, JRuby 그리고 Scala 로 대표되는 이런 언어들은 php 와 같이 접근성이 뛰어나고 간단한 사이트들을 만들기에 적합하게 되어 있다. 또한 스크립트 언어이면서도 JVM 을 기반으로 하기 때문에 java 로 제작된 library 들을 사용할수 있다는 장점도 가지고 있다. 메인웹은 자바로 제작하고 관리툴을 스크립트 언어로 작성하는것도 하나의 큰 트렌드인듯 하니 관심을 가져볼 만 하다.

http://itwire.tistory.com/entry/%EB%B3%B8%EA%B2%A9-%EC%9E%90%EB%B0%94-PHP-%EB%B9%84%EA%B5%90%EA%B8%80

Punography

 유머  Comments Off on Punography
May 292013
 

Punography가 뭔가 했더니 영어식 말장난이네요.
이런 것 이해할 정도면 원어민.

1. I do not enjoy computer jokes. Not one bit.

2. I changed my iPod name to Titanic. It’s syncing now.

3. When chemists die, they barium.

4. Jokes about German sausage are the wurst.

5. I know a guy who’s addicted to brake fluid. He says he can stop anytime.

6.How does Moses make his tea ? Hebrews it.

7. I stayed up all night to see where the sun went. Then it dawned on me .

8. This girl said she recognized me from the vegetarian club, but I’d never met herbivore.

9. I’m reading a book about anti-gravity. I can’t put it down .

10. I did a theatrical performance about puns. It was a play on words.

11. They told me I had type A blood , but it was a Type O.

12. A dyslexic man walks into a bra.

13. PMS jokes aren’t funny, period.

14. Why were the Indians here first? They had reservations.

15. Class trip to the Coca-Cola factory. I hope there’s no pop quiz.

16. Energizer Bunny arrested. Charged with battery.

17. I didn’t like my beard at first. Then it grew on me.

18. How do you make holy water? Boil the hell out of it!

19. Did you hear about the cross eyed teacher who lost her job because she couldn’t control her pupils?

20. When you get a bladder infection, urine trouble.

21. What does a clock do when it’s hungry? It goes back four seconds.

22. I wondered why the baseball was getting bigger. Then it hit me!

23. Broken pencils are pointless.

24. I tried to catch some fog. I mist.

25. What do you call a dinosaur with an extensive vocabulary? A thesaurus.

26. England has no kidney bank, but it does have a Liverpool.

27. I used to be a banker, but then I lost interest.

28. I dropped out of communism class because of lousy Marx.

29. All the toilets in New York’s police stations have been stolen . Police have nothing to go on.

30. I got a job at a bakery because I kneaded dough.

31. Haunted French pancakes give me the crepes.

32. Velcro – what a rip off!

33. Cartoonist found dead in home. Details are sketchy.

34. Venison for dinner? Oh deer!

35. Earthquake in Washington, obviously government’s fault.

36. I used to think I was indecisive, but now I’m not so sure.

I used to have a fear of hurdles, but I got over it.

I’m reading a book about anti-gravity; it’s impossible to put down.

I’m glad I know sign language; it comes in handy.

If towels could tell jokes, they would probably have a dry sense of humour.

Police were called to a nursery where a three year old was resisting a rest.

I was going to look for my missing watch, but I could never find the time.

A man had his left arm and leg amputated; he’s all right now.

I wondered why the football was getting bigger, and then it hit me.

I couldn’t quite remember how to throw a boomerang, but then it came back to me.

If you asked a plastic surgeon to make you look like a pelican, would you get a massive bill?

When ancient wall sculptors finished their work, it was a relief.

Someone left a piece of Plasticine in my house. I didn’t know what to make of it.

As one frog croaked to the other; “Time’s fun when you’re having flies!”

Darth Vader knew what Luke Skywalker was getting for Christmas because he felt his presents.

I bought my wife a wooden leg for Christmas. It’s not her main present, just a stocking filler.

Just watched a religious order playing stringed instruments; there’s too much sects and violins on TV these days.

I nearly lost my frog puppet recently; it tried to Kermit suicide.

Never trust an atom. They make up everything.

I saw a kidnapping today, but decided not to wake him up.

I’ve spilt glue all over my autobiography. At least that’s my story and I’m sticking to it.

I’ve just eaten a very hard biscuit; that was one tough cookie.

There are a few grave diggers wandering around the local graveyard; I think they’ve lost the plot.

I have a job crushing pop cans. It’s soda pressing.

Why did the Archaeopteryx catch the worm? Because it was an early bird.

What do you call a dinosaur that smashes everything in its path? Tyrannosaurus wrecks.

Palaeontologists thought they’d found new evidence of a missing link, but it was just another fossil arm.

There’s a terrible smell in the local Apple store; it’s a shame they don’t have Windows.

I use my iPhone when I can’t get to sleep; I have a nap for it.

I found out why our refuse collectors are so miserable; they’ve been down in the dumps.

Whoever stole my Microsoft Office DVD is in big trouble; you have my Word.

A woman said she’d recognised me from the vegetarian club, but I’d never met herbivore.

I stayed up all night to see where the sun went, and then it dawned on me.

What do you call someone with neither a body nor a nose? Nobody nose.

I heard a song about a tortilla today; actually it was more of a wrap.

I decided not to return to my drumming lessons for fear of the repercussions.

I heard that OXYGEN and MAGNESIUM were going out and I was like O Mg!

If the devil ever loses his hair there will be hell toupée.

Why do you never hear a pterodactyl use a toilet? Because the P is silent.

I haven’t done the hokey cokey in years. As you get older, you just forget what it’s all about.

I just read an advert for a job inspecting mirrors; I could really see myself doing that.

I have an irrational fear of speed bumps; but I’m slowly getting over it.

People who shorten their name to Pat are missing a trick.

Picasso once had a job as a stadium illustrator; he always drew a big crowd.

I worked in a paperless office once; everyone avoided the toilets.

The invention of the pickaxe was ground breaking.

I had to fire a masseuse today; she was rubbing people up the wrong way.

Apparently, the Sydney Opera House is off quay.

I have a very successful business building yachts in the attic; sails are going through the roof.

I often get a lift from an old school friend who always drives in reverse gear; we do go back a long way.

I’ve had amnesia for as long as I can remember.