모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 게시물ID : humorbest_822974
    작성자 : 잠이오네요
    추천 : 39
    조회수 : 6564
    IP : 112.145.***.210
    댓글 : 9개
    베스트 등록시간 : 2014/01/19 20:34:17
    원글작성시간 : 2014/01/19 17:38:39
    http://todayhumor.com/?humorbest_822974 모바일
    웹 개발 주저리


    그냥 개인적으로 웹 개발에 대해 주절거려 보려고 합니다.



    0. 어떤걸 배우는게 좋은가

    웹 서버를 개발할 때 많은 프레임워크와 언어가 있죠.

    PHP, JAVA, Spring, django, node.js 등등 나열하면 엄청나게 많은 웹 서버를 개발하는 방법들이 있습니다.

    개인적으로는 가능하면 다 어느정도는 배워 두는게 좋다고 생각합니다.

    다만 그중에서 자신이 가장 자신 있는 언어와 프레임워크 하나 정도는 만들어 두는게 좋다고 봅니다.

    정부 과제 같은 경우에는 전자정부 프레임워크 지침에 따라야 하기 때문에 Spring을 써야하지만

    정부과제가 아닌 대개의 웹 개발 프로젝트의 경우 프레임워크 선택은 상당히 자유로운 편입니다.

    해당 프로젝트의 발주자(대개 '갑')들은 원하는 형태대로 웹페이지가 나오기만 하면 만족하기 때문이죠.

    개발기간 한달 남짓의 중소규모 사이트의 경우는 아직도 php를 쓰는 경우가 상당수이고

    기존 솔루션 재활용 없이 초기부터 개발되는 경우에는 django를 쓰거나

    나름 최신 프레임워크인 play framework를 쓰는 경우도 드물지 않게 있습니다.

    그러니 나중에 기존 사이트 유지보수일을 하던, 신규개발을 하던 가능한 많은 종류의 프레임워크를 사용할 줄 알고

    또 그중에 자신이 프레임워크를 선택할 기회가 될 때 사용할, 자신의 손에 잘 맞는 프레임워크를 깊숙히 익혀야겠죠.




    0-1. MVC model

    웹 개발시, 혹은 앱 개발시에도 반드시 숙지해야할 부분입니다.

    MVC 패턴이라고도 말합니다.

    위키 백과에 간략한 설명이 있지만, 별도로 찾아서 개념을 익히는 것이 좋다고 생각합니다.

    간략한 설명을 하자면, 아래의 세가지의 머릿글자를 합쳐서 MVC가 됩니다.

    데이터의 형태를 나타내는 Model
    데이터를 보여주는 View(대개 UI 역할)
    데이터를 가공하고 view가 어떤 데이터를 보여줄 것인지 결정하는 Controller

    이 세가지 요소를 분리하여 개발하자는 패러다임입니다.

    이를 웹에 적용할 경우 웹을 DB, 비지니스 로직, 웹 페이지(템플릿)로 분류하여 개발 및 유지보수 하는 것이 됩니다.

    자세한 부분은 구글링 해서 공부하는 쪽이 더 나을테니 일축하겟습니다.




    1. PHP

    Personal Home Page tools의 약자...였습니다만 지금은 PHP: Hypertext Preprocessor의 약자로 바뀌었습니다.

    하지만 태생이 "프로그래밍에 무지하거나 초보자인 사람이 개인용 홈페이지를 간단하게 만들수 있는 언어를 만들자!" 인 만큼

    매우 간단하게 웹 서버를 만들 수 있는 장점이 있습니다.

    하지만 MVC 패턴에 따라 개발하기 위해서는 PHP 기반의 다른 프레임워크를 적용해야 합니다.
    (이런 PHP 기반 프레임워크는 매우 많지만 생략하겠습니다)

    아무튼 간단하게 웹 서버를 작성할 수 있는 만큼 초보자들이 배우기 좋은 도구입니다.

    하지만 간단함을 모토로 만들어진 언어에 갈수록 각종 기능들이 붙다보니

    수많은 보안 취약점이 존재하고 언어로써의 완성도 면에서도 조금 부족한 감이 있습니다.
    (예를 들어 php에서 "_123"==123 은 true 입니다. 또 "123"==123도 true 입니다. 하지만 "_123"=="123"은 false 입니다. ??!)

    아마 PHP로 서버를 개발하면서 가장 많이 마주치는 것은 비즈니스 로직의 논리오류 보다는 PHP 자체의 문제와 버그들일 겁니다.

    하지만 그 간편함 덕에 중소규모 사이트 제작에서는 여전히 많이 사용됩니다.

    취미로 혹은 중소규모 사이트 위주의 웹 개발을 한다면 PHP로도 충분하지만,

    엔터프라이즈급 개발자를 목표로한다면 충분히 익히고 다른 프레임워크로 눈을 돌려야 할 것이라고 생각됩니다.



    2. SpringMVC

    Spring은 JAVA Application을 제작하기 위한 프레임워크고, 이에 다시 웹 개발을 위해 MVC 패턴을 적용 시킨것이 SpringMVC입니다.

    하지만 대부분의 경우 별다른 구분을 하지않고 사용하니 Spring과 다른 것이라고 생각하지 않으셔도 됩니다.

    템플릿으로 JSP를 사용하고 비지니스 로직은 Controller에 작성하거나 일반적인 java class(Bean이라고 부릅니다)로 작성 가능합니다.

    자체적인 사용자 인증 기능도 있고, 또한 장기간 안정성을 검증받은 프레임워크입니다.

    만약 동접 수십만명~수백만명 급, 혹은 안정성이 매우 중요하거나 설계가 복잡한 서버를 개발할 경우에는

    SpringMVC 만큼 믿음직한 프레임워크가 드뭅니다.

    JAVA 자체의 언어적 특징 또한 겹쳐 구조적으로 견고한 설계를 적용하기 좋습니다.

    단점은 JAVA의 특징을 그대로 받아 코딩할 부분이 많습니다.

    C/C++보다는 생산성이 지극히 높지만, 웹개발에 사용되는 다른 언어들에 비하면 생산성이 조금 모자란 감이 있습니다.

    또한 프레임워크 자체도 안정성이 높고 견고한 만큼 요소가 추가될 때마다 설정해 줘야하는 부분이 많습니다.
    (물론 직접 구현하는 것보다는 매우매우 편합니다, 어디까지나 다른 프레임워크에 비해 상대적으로 그렇다는 겁니다)



    3. django

    Python을 사용하는 대표적인 웹 개발 프레임워크입니다.

    Python의 자료형 자체가 자바스크립트와 매우 유사한 형태로 사용가능하기 때문에(json 형태)

    복잡한 구조의 model을 다루는데 매우 편리합니다.

    또한 Python 자체가 매우 동적인 언어이기 때문에

    Python에 숙달되기만 하면 JAVA나 PHP로는 구현하기 힘든 로직을 간편히 구현할 수 있습니다.

    또 Python은 open source 진영에서 상당히 사랑받는 언어라 익혀둬서 손해볼 일은 없습니다.

    다만 가장 많이 사용되는 Python 인터프리터인 CPython의 threading 성능이 영 좋지 않은 편이라
    (파이썬은 스크립트 언어라 인터프리터를 사용합니다)

    만약 request와 별개의 비지니스 로직이 worker thread로 돌아야 한다면 멀티쓰레딩 보다는 멀티 프로세스로 구현해야하는 불편함이 있습니다.

    물론 싱글쓰레드 성능은 JAVA와 다툴 정도로 좋은 편이니 대개의 경우 나쁘지 않은 프레임워크입니다.
    (일워도 이 프레임워크를 사용했다고 알고 있습니다)



    4. flask

    Python을 사용하는 또 다른 프레임워크입니다.

    Python 자체의 언어적 특징을 적극적으로 사용했고 동시에 초경량을 목적으로 제작된 프레임워크입니다.

    django를 사용해본, 혹은 python에 익숙한 프로그래머라면 처음 사용하더라도

    하루이틀이면 블로그 사이트 정도는 만들어 낼 수 있을 정도로 간편합니다.

    개인적으로 Python을 사용할수 잇다는 가정 아래 웹개발시 첫 입문으로 추천하는 프레임워크입니다.



    5. node.js

    최근 핫한 프레임워크입니다.

    웹 클라이언트(웹 페이지)에서 로직 개발을 자바스크립트로 하니까, 서버도 자바스크립트로 짜면 언어가 같아서 생산성이 좋아 질거야!

    라는 단순한 논리로 시작된 프로젝트입니다.

    단순한 모토에 비해 생산성이 상당히 좋고, 성능도 괜찮은 편이라 node.js를 배우는 것이 트렌드화 되어가고 있는것 같습니다.

    하지만 자바스크립트라는 언어 자체의 한계성 때문에 엔터프라이즈급 서버를 개발하기에는 견고성이 부족한 감이 있습니다.

    그래도 그 높은 생산성에 기인하여 많은 사랑을 받는 프레임워크입니다.

    개인적으로 웹개발 입문용으로 추천하는 프레임워크 두번째입니다.



    6. Play Framework

    최근 핫한 프레임워크입니다.(2)

    SpringMVC의 견고함과 django의 간편함이 조화를 이룬 프레임워크입니다.

    다만 Play Framework는 scala라는 언어를 사용하는데, 이 scala가 좀 어렵습니다.

    JVM 위에서 돌기 때문에 기존 JAVA의 라이브러리와 클래스들을 그대로 가져다 쓸수 있는 점은 매우 큰 이점이지만

    언어 자체가 상당히 추상적이고 동적 언어의 특성과 정적언어의 특성을 고루 가지고 있으며

    객체지향적 언어이지만 동시에 함수지향적 특징들도 다수 보유하고 있는... 결국 초보자가 배우기엔 좀 어렵습니다.

    언어 자체가 객체지향과 함수지향을 고루 숙지해야만 하고, 동적/정적 언어에 대한 개념을 알아야만 십분 활용할 수 있습니다.

    하지만 일단 scala에 익숙해 지기만 하면 높은 생산성과 동시에 Spring에 버금가는 견고한 서버를 개발할 수 있습니다.
    (JAVA와 동일한 로직을 짜는데 필요한 코드량이 scala가 두배이상 적습니다. 즉, JAVA의 두배 이상의 생산성을 가집니다.)

    node.js가 극도의 생산성에 초점을 맞춰서 핫한 프레임워크라면,

    Play Framework는 Spring을 대체할만 하면서도 높은 수준의 생산성이 보장되어 핫한 프레임워크입니다.

    최근 Spring 대신 Play를 사용하는 프로젝트가 종종 보이니 만큼, 중급개발자를 넘어 고급개발자를 목표로 한다면 익혀서 나쁠것이 없습니다.




    7. HTML5

    html 문서 자체로의 html5 는 별 것 없습니다.

    태그 몇개 더 추가된 정도죠.(주로 멀티미디어 요소가 늘었죠, 이제 상당수의 경우 html5만으로도 flash가 필요 없습니다.)

    하지만 html5의 가장 큰 변환점은 CSS와 자바스크립트API들입니다.

    CSS를 이용해 다양한 효과를 줄 수도 있고, 자바스크립트는 API를 통해 더 많은 일들을 할 수 있게 되었습니다.

    웹서버 개발만 한다면 DOM 구조나 ajax 기초 정도만 알고 계셔도 되지만

    기획문서와 디자인 시안만 내려오고 그에 맞춰 웹 클라이언트까지 작업해야하는 경우가 종종 있으니

    어느쪽이던 웹 관련된 곳에 발담그고 있다면 익혀두는 것이 좋습니다.

    추가로 플래시와 액션스크립트를 배우시려는 분이 계시다면, 일단 HTML5와 자바스크립트를 배우는 것을 추천드립니다.



    8. 자바스크립트

    제이쿼리, ajax 정도는 사용할 줄 아셔야 하고, 자바스크립트 특유의 객체지향 방식(프로토타입)에도 익숙해 지실 필요가 있습니다.

    웹클라이언트 개발자나 웹 디자이너 겸 개발자를 목표로 하신다면 각종 자바스크립트 라이브러리도 익혀두는 것이 좋습니다.

    최근 커피스크립트나 dart와 같이 자바스크립트보다 생산성(혹은 언어적 특징)이 좋은 언어로 개발해서 컴파일 하면

    자바스크립트를 결과물로 만들어주는 도구가 많으니 자바스크립트를 어느정도 익힌 뒤에는 이런 도구들도 익히는게 좋습니다.




    0. 마무리

    주말에 심심해서 그냥 주절 거린 거니, 혹여나 읽으시는 분은 필요한 부분만 취하시고 나머진 잊어주시면 됩니다.


    이 게시물을 추천한 분들의 목록입니다.
    [1] 2014/01/19 17:45:27  121.144.***.146  E_Sukmean  293448
    [2] 2014/01/19 17:50:33  39.115.***.137  lopk  520096
    [3] 2014/01/19 18:27:17  112.152.***.95  Gusto  134926
    [4] 2014/01/19 18:27:40  121.65.***.3  플린  409046
    [5] 2014/01/19 18:48:26  115.143.***.9  노력의천재  214821
    [6] 2014/01/19 18:53:40  119.149.***.191  썽운  136431
    [7] 2014/01/19 19:30:40  1.245.***.150  snoopycode  520587
    [8] 2014/01/19 20:20:33  121.143.***.81  황금비  483546
    [9] 2014/01/19 20:33:01  1.243.***.30  아라한사  519904
    [10] 2014/01/19 20:34:17  180.182.***.38  감!정!  494842
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.


    현재 게시판의 베스트게시물입니다.  
    번호 제 목 이름 날짜 조회 추천
    832473
    프로그램 배우고싶은분 있으심까? 웹 프로그래밍 [55] 하라가라아 14/02/05 21:48 4167 63
    832199
    예전에 컴게도 그렇고, 지금 IT,플밍에 학원영업 있는듯... [11] 만렙마법사 14/02/05 11:11 5201 58
    831827
    [TopView] 제가 필요해서 만든 프로그램 공유합니다. [3] endwhy 14/02/04 17:49 3749 72
    831500
    Do you want to [8] Djerzinski 14/02/03 23:47 3847 44
    830892
    낼부터 첫출근입니다 ㅡㅠ [11] 배고파죽겟삼 14/02/03 00:16 7035 40
    830097
    안드로이드 독학중 성캠 14/02/01 19:01 3939 27
    829650
    [인증] 알고리즘 도전 상품이 도착했네요. [1] 달빛연구자 14/01/31 17:53 4306 49
    829622
    프로그래머의 이상과 현실.jpg [9] 날아가도 14/01/31 16:36 12829 56
    829489
    베오베갔던 야근수당 안준 회사 신고해서 노동부 간다는 [26] 개발자노잼 14/01/31 05:04 8351 176
    827584
    [스압]프로그래밍 언어 전쟁을 아시나요? [24] 도도로이 14/01/27 16:53 6779 51
    827444
    세상에는 10종류의 사람이 있습니다. [14] 콜드이슈 14/01/27 11:49 4072 30
    827212
    [CSS팁] 일본어, 중국어 등을 표기해야 한다면 폰트를... [2] ActiveXXX 14/01/26 23:19 3001 31
    826036
    죽고싶다. [16] 으앙심심해 14/01/24 23:49 3099 57
    825845
    알고리즘 도전 우승자 발표. [29] 평정컴퓨터 14/01/24 17:22 4495 50
    825827
    드디어 어플로 나왔습니다. [49] 픽업맨#3818 14/01/24 16:52 6876 109
    825403
    프로그래머가 꿈인 학생들에게 from 이두희 [12] 모모아이 14/01/23 22:19 7942 77
    824706
    뜬금없이 정규표현식 [13] 14/01/22 18:53 3039 44
    824272
    진정한 꿀팁을 알려드리죠. [14] 콜드이슈 14/01/21 23:59 4573 30
    824225
    프로그래머라면 다들 공감하는 이야기 [21] 거대호박 14/01/21 22:57 4922 30
    823528
    [14] 일하기싫어 14/01/20 19:16 2020 43
    823510
    웹개발자에게 언어라는게 참..... [16] enoeht 14/01/20 18:35 3372 44
    823474
    Recursion(재귀용법) 이란? [17] 콜드이슈 14/01/20 17:37 2607 32
    823419
    [븍흠] 우리가 프로그래밍을 멈추지 않는경우 [23] 빙티 14/01/20 16:06 3232 45
    웹 개발 주저리 [9] 잠이오네요 14/01/19 20:34 6564 39
    822930
    컴퓨터공학 신입생 그리고 재학중인 학생들을 위한 작은 이야기 [19] 노력의천재 14/01/19 19:04 10322 103
    822864
    축구 선수 명언으로 만들어본 프로그래머 명언 [15] 나카쥰 14/01/19 16:40 3459 20
    [◀이전10개] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [다음10개▶]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈