웹 개발 역할의 서버에 대해 알아야 할 사항 [닫은]


12

약간 모호하게 들릴 수 있으므로 조금 더 설명하고 설명하겠습니다 ...

수년 동안 자영업자로 근무한 후 현재 상용 웹 개발자 역할을 찾고 있습니다. 서버와 호스팅에 대한 나의 유일한 경험은 FTP를 통해 업로드하고 CPanel / WHM을 가지고 노는 것입니다. 내가 할 역할은 웹 개발 PHP, MySQL, HTML, CSS 유형 역할이지만 최근 인터뷰에서 서버에 설정하는 방법에 대한 질문을 받았으며 무슨 말을했는지 전혀 몰랐습니다 ... 이상적이지 않았습니다!

내가 아는 것보다 더 많이 알지 못하면 정확히 배우고 싶은 것을 설명하기가 어렵지만 기본적으로 웹 개발자로서 알아야 할 서버 요소일까요? 웹 개발자라면 파일 업로드 외에 서버를 다루는 것이 있습니까? 그렇다면 어떻게해야합니까? Subversion (SVN) 및 버전 제어 시스템과 같은 것들이 웹 개발 팀에 의해 종종 설정 되었습니까?


2
가능한 모든
Dan Pichelman

3
나는이 일이 :)하지만 서버에 대한보다 구체적인 생각
마이클 듀런트

2
나는 당신에게 그것을 나누기를 싫어하지만 웹 서버를 구성 할 수 없다면 당신은 매우 귀중한 웹 개발자가 아니며 책에서 빨리 배울 수있는 것이 아닙니다. 책에서 서버 구성 요소를 배우는 데 반 엉덩이 일을하는 대신. PHP 기술을 완성하고 PHP 프로그래머로 지원하는 것이 좋습니다.
Reactgular

@MathewFoscarini 내가 잘하지 않기 때문에 그것을 피하고 내가 아는 것만 완벽해야합니까? 이 조언이 세상을 멈추게하지 않겠습니까? not a very valuable web developer내가 극복하려고하는 것이므로 제대로 배우고 기쁩니다.이 학습에 가장 적합한 방법과 먼저 집중해야 할 영역을 모르겠습니다.
john

@john 당신은 웹 개발자로 고용되는 맥락에서 물었습니다. 자격이없는 것. 그것이 당신이 고용되기를 원하는 것이라면, 그것을 위해 가야하지만 인터뷰에서 질문에 대답하는 것에 대한 단기 해결책을 기대하지 마십시오. 나는 고용주가 서버에서 일하는 실제 경력 경험이없는 후보자를 제거하려고 시도 할 것으로 기대합니다. 귀하의 질문에 대한 나의 인상은 당신이 프리랜서로서 할 수 없었던 일을하려고 노력하고 있다는 것입니다. 이러한 서버 기술을 배우면서 기꺼이 지불 할 의뢰인을 찾으십시오.
Reactgular

답변:


10

이것은 큰 질문 세트이지만, 많은 사람들이 특히 프론트 엔드에 중점을 둔 경력으로 발전하기 시작할 때 많은 사람들이 해결해야 할 것으로 생각됩니다.

PHP 및 MySQL 개발이 포함 된 역할을 수행한다고 언급했습니다. 이것들은 서버에서 실행해야하는 것들입니다. 개발자로서 좋은 기술적 판단을 할 수 있으려면 이러한 것들이 서버에서 작동하는 방식과 이들이 웹 프런트 엔드와 상호 작용하는 방식을 이해해야합니다. 따라서 서버에 대한 이해를 분명히 개발해야합니다.

서버에 대해 필요한 정확한 지식을 파악하기보다는 모든 서버 측 소프트웨어를 직접 설치하는 등의 작업을 수행하는 것이 좋습니다. 발을 젖게하는 가장 좋은 방법은 컴퓨터에 Linux를 설치하는 것입니다. VirtualBox와 같은 것을 사용하여 현재 OS와 함께 실행할 수 있습니다. MySQL을 설치하고 PHP 용 서버를 설치 및 설정 한 후 모든 것이 작동하도록하십시오. 가장 좋은 점은 요즘 에는 적당히 갖추어 진 노트북이이 모든 것을 실행하고 "서버"가 될 수 있다는 것입니다.특히 Linux와 명령 줄을 사용한 경험이없는 경우 처음에는 어려울 수 있습니다. 개발자는 최소한이 연습을 수행 할 수있을만큼 충분히 알고 있어야하며 지식을 더 발전시키는 방법을 이해하는 데 도움이됩니다.

속도를 높이기 위해 필요한 세 가지 영역이 있습니다.

  1. Linux 운영 체제의 기본 사항. 아마도 우분투와 같은 배포판을 쉽게 설치할 수 있습니다.
  2. 웹 서버 및 PHP 설정 Apache 설치는 시작하기에 좋은 장소입니다. 다른 대안이 있지만 대부분의 사람들이 시작하는 곳입니다.
  3. MySQL 설치 및 실행의 기본 사항 배우기 최소한 개발자는 데이터베이스에 테이블 및 기타 구조를 작성하기 위해 DDL을 작성할 수 있어야하며 데이터를 탐색하고 데이터를 확인하기 위해 서버에서 데이터베이스를 쿼리 할 수 ​​있어야합니다. 응용 프로그램이 데이터베이스에있는 것과 일치하는 것을 뱉어냅니다

우분투와 함께 가려면 여기 의 기본 지침에 따라 스스로 시작할 수 있습니다. 웹 서버 / 데이터베이스 구성 요소를 설치하고 사용하기 전에 Linux 기본 사항에 대해 약간의 램프 업을 수행해야합니다.

개발자가 파일을 업로드하는 것 외에도 서버와 상호 작용하는 방법에 관해서는 조직마다 다릅니다.

  1. 개발자들은 종종 최소한 개발 환경의 관리를 다루고 있습니다. 때로는 개정 제어 시스템 (예 : SVN) 및 배포 프로세스 (환경에서 코드 이동)를 설정하는 개발자가 있습니다.
  2. 지금까지 개발자는 최소한 서버에있는 개정 제어 시스템을 사용해야합니다.
  3. 또한 서버의 로그를보고 문제 진단 및 해결을 위해 생성되는 메시지를 확인하는 것과 같은 작업을 수행해야합니다.
  4. 서버의 네트워크 구성 또는 스토리지 구성과 같은 사항을 결정하기 위해 인프라 팀과 협력해야 할 수도 있습니다. 종종 응용 프로그램 문제는 구성과 코드의 조합입니다.

요점은 서버를 어떻게 터치해야하는지에 대한 답이 하나도 없지만, 커리어 중에는 FTP와 같은 파일을 업로드하는 것 이상의 일이 될 것입니다. 지금 기본을 배우면서 시작하면 도움이 될 것입니다.


좋은 답변, 감사합니다! 그래서 현지 작업을 위해 'Mamp'를 설정할 때 동일하지만 외부 세계에 액세스 할 수 없습니까? 나는 몇 가지 Linux OS를 설치하고 약간의 명령 줄을 알고 있지만 쉽게 기억할 수있는 것은 없습니다. 서버에 대한 나의 지식은 존재하지 않지만, 항상 서버가 명령 행으로 만 액세스되고 사용자 친화적 인 OS가 아니라고 생각합니다.
john

2
명령 줄을 사용하는 것이 가장 좋습니다. 처리 할 대부분의 '실제'웹 서버는 원격 시스템이며 GUI가 설치되지 않습니다.
GrandmasterB

2
@GrandmasterB가 썼 듯이 명령 행을 익히는 것이 유용합니다. 제 생각에 리눅스는 좋은 학습 플랫폼입니다. 왜냐하면 그것은 화면에서 보는 것 이상으로 OS가 무엇을하고 있는지에 대해 "금속에 가까워 지도록"하기 때문입니다. httpd.conf 파일을보고 웹 서버가 실제로 수행하는 작업과 PHP 모듈이 어떻게 통합되는지 이해하십시오. 플랫폼에 대한 기본적인 이해를 통해 더 나은 개발자가 될 것입니다.
DemetriKots

몇 년 전에 리눅스에서 Windows 서버로 전환했는데 결코 뒤돌아 보지 않았습니다. Linux는 강력하고 강력하지만 작업 요구 사항에 가장 적합한 도구를 사용해야합니다.
Reactgular

2

나의 첫 번째 조언은 자신을 한 가지 역할로만 제한하지 않는 것입니다. 전문가가되는 것이 좋으며 특정 기술 세트 (예 : PHP)에 대한 깊은 지식이 있습니다. 그러나 나머지 도메인 전체에 걸쳐 광범위한 지식을 갖는 것이 중요합니다.

내 경험상 대부분의 팀은 PHP의 핵심 기능을 다시 작성하는 데 지식이있는 사람을 고용하지 않고 오히려 그 문제에 대처할 수있는 사람을 고용하려고합니다. 또는 팀에서 발생하는 모든 문제를 해결하는 데 도움이 될 수있는 사람. 예를 들어 응용 프로그램이 다운되고 고객이 영향을받는 상황을 상상해보십시오. 손을 내밀어 "무엇을해야할지 모르겠다 ..."라고 말하거나 서버에 SSH로 연결하여 로그 스캔을 시작하고 특정 파일 시스템의 디스크 공간이 가득 찬 것을 확인하고 정리를 진행할 수 있습니다. 이것은 작은 예이지만 요점은 분명하다고 생각합니다. 기본적인 지식을 바탕으로 개발자로서 특정 파일 시스템을 모니터하고 특정 임계 값에 도달하면이를 정리하는 스크립트를 작성할 수 있습니다. 이제 관리자에게 훨씬 더 가치가 있습니다.

내가 경력 중에 배운 또 다른 것은 일이 빨리 움직이고 당신이 계속하지 않으면 뒤에 남겨질 것이라는 것입니다. 비즈니스 측면을 포함한 전체 환경에 대해 더 많이 알수록 더 좋습니다. 그것은 당신이하는 모든 일에서 전문가가되어야한다고 말하지는 않지만 최소한 우둔한 것으로 분류되지 않는 지식을 가지고 있어야합니다. 친숙할수록 적응력이 뛰어나고 귀중한 자산입니다.

질문에 구체적으로 대답하려면 ...

  • 개발자로서 어떤 서버 요소를 알아야합니까?

전체 응용 프로그램 스택에 익숙해 지십시오. 사용중인 웹 서버, 데이터베이스, 캐싱 메커니즘 등을 알고 있어야합니다. 그리고 어떤 버전도. 자신의 서버에서 환경을 다시 만들 수있을 정도로 익숙해야합니다. 그 자체로는 매우 중요합니다. 놀라움을 줄이기 때문에 개발 및 프로덕션 환경에서 거의 동일한 환경을 갖도록 노력해야합니다 ( http://12factor.net/dev-prod-parity ).

  • 개발자는 서버와 어떤 관계가 있습니까?

이것은 실제로 팀에 달려 있습니다. 필자의 경우에는 개발자가 환경을 준비하는 데 큰 역할을합니다. 우리는 응용 프로그램의 내부 작업에 가장 친숙하므로 응용 프로그램을 실행할 서버 기술을 결정하는 가장 좋은 위치에 있습니다. 모든 팀이 이러한 접근 방식을 가지고 있지는 않지만 토론에 참여할 수있는 친숙 함을 얻는 것이 큰 이점이라고 생각합니다. 특히, 버전 관리와 관련하여 개발자는 어떤 기술이 선택되는지 (Git, Subversion, Mercurial 등)의 영향을 많이 받기 때문에 의사 결정 프로세스에 참여해야합니다.

이제 무엇?

이 모든 것을 배우는 가장 좋은 방법에 대한 나의 제안은 무엇입니까? 발을 이동합니다 . 피험자에 대해 할 수있는 모든 것을 읽는 것에 대해 걱정하지 마십시오. 대부분 끝날 때까지 뇌에서 누출 될 수 있습니다. 대신 처음부터 무언가를 개발하십시오. Vagrant로 시작하십시오 . 새 놀이터로 사용할 수있는 가상 머신을 쉽게 생성하고 관리 할 수 ​​있습니다. 그런 다음 웹 서버와 데이터베이스를 설치하고 작성을 시작하십시오. 앱에 대한 아이디어가 있다면 완벽합니다. 그렇지 않은 경우 자습서를 찾거나 기존 앱을 다시 만들어보십시오. 요점은 전체 프로세스에 익숙해지는 것입니다. 또한 PHP 개발자는 PHP : 올바른 방법 을 확인하십시오... 정말 훌륭한 정보가 많이 있습니다. 그리고 가장 중요한 것은 자신을 강조하지 마십시오. 나는 당신이 개발자의 길을 따라 갔다고 생각합니다. 왜냐하면 그것은 당신이 즐기고 열정적 인 일이기 때문입니다 ... 그것을 놓치지 마십시오!


1

에 초점 이 서버는 웹 개발자 수에 대해 알고 있어야하는 것은 무엇인가? ...

실제로 놀랍게도 거의 없습니다. 주요 지식 영역은 프로그래밍, HTML, PHP 등입니다.

알아야 할 것은 로컬에서 작업을 실행하는 방법이며이 작업을 수행 할 때 상자를 '서버'로 사용합니다. 로컬로 실행 그래서 그냥 모든 인터넷 사이트와 같은 페이지를 볼 수있는 웹 브라우저를 사용 ... 당신이 될 것 제외시켰다 http://localhost또는http://127.0.0.1

cgi, http 등을 구성하는 것에 대해서는 알아야 할 필요가 없습니다. 작업하는 OS에 대한 웹 서버 설정에 대한 일반 서적을 통해 항상 작업 할 수 있으며 일반적인 용어를 알기에 충분한 범위를 갖습니다.

더 큰 그림을 보려면 Linux에 들어가서 웹 서버와 같은 시스템을 설정하고 구성하는 방법을 배우는 것이 좋습니다. 그러나 실제로 물건에 관심이있는 경우에만. 인터뷰에서 인상적인 것이 아닙니다.

마지막으로, 당신이 모르는 부분에 대해 인터뷰하는 동안 메모를하는 것이 좋습니다. 귀하가 모르는 용어 등에 대해 귀하의 질문이 좀 더 구체적이라면 도움이됩니다.


감사. 시간이 허락한다면 어쨌든 배우고 싶습니다. '모두를위한 리눅스'유형 책이 나를 도울 것입니다. 곧 호스트를 옮길 것입니다. Amazon AWS 클라우드는 약간의 작업으로 나에게 도움이 될만한 것을 호스팅합니까, 아니면 완전히 다른가요?
john

1
나는 인형 책을 사용하지 않을 것입니다. 대부분 관련이 없을 수 있습니다. 나는 투여하는 웹 서버, 예를 들어 같은 감추고 뭔가 시도를하려는 cengagebrain.com/shop/en/US/storefront/...
마이클 듀런트

예, 개발 머신으로 Linux를 실행하고 웹 서버를 설정하십시오. 그것을 가지고 놀고 구성하는 데 익숙해 지십시오. 당신은 그런 식으로 충분히 배울 것입니다. 그것이 기본적으로 당신이 직업을 배우는 방법입니다. 물건의 절반은 sysadmins 제어하에 있습니다. 이것은 시작하기에 좋을 수 있지만, 발전함에 따라 더 많은 설정을 직접 수행하는 것이 좋습니다.
wobbily_col 2013 년

0

웹 개발주기를 완료하려면 아래 사항을 알아야합니다.

1) IDE (Netbeans 및 Eclipse 등)

2) 코딩을위한 프로그래밍 언어. (PHP, 자바 등)

3) 페이지 디자인을위한 프론트 기술 (HTML, CSS 등)

4) 데이터를 저장하고 검색하기 위해 백업 된 데이터베이스. (MySQL 등)

3) 코드 양식 저장소를 확인하고 검색하기위한 버전 제어 시스템.

4) 종속 파일로 코드를 컴파일하는 빌드 도구. (아벤트, 메이븐)

6) 웹 서버를 배포하고 코드를 실행하십시오.

7) 웹 및 ejb 구성 요소를 실행하고 테스트하려면 서버를 통한 기본 배포 프로세스를 알아야합니다. (Tomcat, 웹 로직 서버)


0

DemetriKots의 답변 외에도 자동화 된 배포 및 지속적인 통합을위한 솔루션에 대해서도 살펴 보겠습니다. 초기에 서버를 설정하는 것은 한 단계 일 뿐이며, 잘못된 배포를 롤백하기위한 적절한 솔루션없이 FTP를 통한 배포가 힘들고 오류가 발생하기 쉽습니다.

  • Hudson- 지속적인 통합 서버
  • Phing -Ant 기반의 PHP 용 자동화 빌드 도구
  • Ant- 자동화 된 빌드 도구
  • Capistrano- 웹 응용 프로그램을 자동화하고 쉽게 배포 할 수있는 배포 스크립트를 만듭니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.