php 고급 개발자 되는법 > 자유게시판

자유게시판

php 고급 개발자 되는법 정보

php 고급 개발자 되는법

본문

객체 의존성 주입,

대자인 패턴,

디버깅,

유닛 테스트,

빌드 배포 자동화,

Php Extension 개발(Zend Engine)

등을 다 배워야 한다는데,,, 

 

이거 다 배우신 분 계신가요??

추천
2

베스트댓글

적어도 디자인 패턴은 익히는게 좋습니다.
패턴 이름만으로도 개발자끼리 대화할 때 모두가 같은 구조를 떠올리고 이해할수있습니다.
누구에게 설명하지 않더라도 스스로가 설계할때도 디자인 패턴을 적용하여 불필요한 고민을 줄일수도 있고요. PHP 뿐만 아니라 모든 언어에서도 통용됩니다.

php 익스텐션까지 만들어야 될지는 모르겠으나. PHP를 메인 기술로 사용하는 IT 대기업 아니고서는 이걸 익혀야하나 고민할 필요는 없습니다.
PHP 익스텐션 만들라는 것 빼고는 PHP만의 기술도 아니며 모든 언어에.. 아니 언어에 관계없이 모든 개발에서 통용되는 것들입니다. (디버깅은 말 그대로 디버깅을 하라는 건지 xdebug를 잘 활용하는 디버깅 기술을 익히라는건지 모르겠지만요.)


그누보드에는 내장된 외부라이브러리 빼고는 디자인 패턴이나 의존성 주입이 적용된 곳이 단 하나도 없습니다. singleton 패턴이 일부 요구되기는 하는데 사실상 의미가 있진않아서 없다고 봐도 무방합니다.

평생 그누보드 하나만 쓰고 그누보드 커뮤니티에있는 사람들하고만 대화할거라면 익히지 않아도 됩니다.
위에 갈라파고스 이야기 하셨는데... (댓글 삭제하셨네요)
여기가 갈라파고스입니다.

댓글 14개

적어도 디자인 패턴은 익히는게 좋습니다.
패턴 이름만으로도 개발자끼리 대화할 때 모두가 같은 구조를 떠올리고 이해할수있습니다.
누구에게 설명하지 않더라도 스스로가 설계할때도 디자인 패턴을 적용하여 불필요한 고민을 줄일수도 있고요. PHP 뿐만 아니라 모든 언어에서도 통용됩니다.

php 익스텐션까지 만들어야 될지는 모르겠으나. PHP를 메인 기술로 사용하는 IT 대기업 아니고서는 이걸 익혀야하나 고민할 필요는 없습니다.
PHP 익스텐션 만들라는 것 빼고는 PHP만의 기술도 아니며 모든 언어에.. 아니 언어에 관계없이 모든 개발에서 통용되는 것들입니다. (디버깅은 말 그대로 디버깅을 하라는 건지 xdebug를 잘 활용하는 디버깅 기술을 익히라는건지 모르겠지만요.)


그누보드에는 내장된 외부라이브러리 빼고는 디자인 패턴이나 의존성 주입이 적용된 곳이 단 하나도 없습니다. singleton 패턴이 일부 요구되기는 하는데 사실상 의미가 있진않아서 없다고 봐도 무방합니다.

평생 그누보드 하나만 쓰고 그누보드 커뮤니티에있는 사람들하고만 대화할거라면 익히지 않아도 됩니다.
위에 갈라파고스 이야기 하셨는데... (댓글 삭제하셨네요)
여기가 갈라파고스입니다.
본인이 바둑 프로기사를 지망한다면 AI 프로그램은 필수구요.
그게 아니라면 AI 없이도 아마 강자 될 수 있어요.
중요한 건 그 격차는 꽤 크고 앞으로는 더 벌어질 거에요.

하지만 격차가 크다고 돈을 못 벌지는 않습니다.
어줍잖은 프로기사 보다 실리적인 아마 강자가 경제적으로 훨씬 윤택합니다.
프로기사는 짜장면 한그릇 내기하는 것도 안 됩니다.ㅋ
그리고 대다수의 초보자들은 아마강자나 프로기사 모두 대결을 하게 되면 맹수로 보입니다.

말씀하신 그  부분도 이와 비슷한 형태일 거에요.
Php Extension 개발 이건 c언어로 하는거라서 php 고급개발자에는 거리가 먼거 같아요
물론 버그 있을때 고쳐써먹을 수있으면 좋긴한데 깃헙 이슈에 남기면 되죠
객체 의존성 주입,
디자인 패턴,
디버깅,
유닛 테스트,
빌드 배포 자동화

이런건 다른언어하는곳에서는 기본이고요
PHP 도 프레임워크쓰면 저거 디자인 패턴 빼면 기본이예요

GoF의 디자인패턴은 자바언어의 한계를 담고있는게 많아서요

디자인패턴보다 아키텍쳐가 더 도움되는거 같아요
CQRS 나 MVC 라던가 서비스- 레포지토리패턴 등  필요한곳이 다른긴하지만요
곧 없어질 유행 지난 이야기들 하시네요.

뷰단은 reat, vue, svelte 와 같은 spa로 대체 되고 있고 이마저도 메타버스나 글래스 디스플레이로 대체 되면  곧 webassambly 변경되면 ar, vr 코딩 대비해야 합니다.

객체지향은 마이크로 서비스로 변경되고 있습니다.
객체지향은 서비스가 느려집니다. 상식적으로 랩핑을 여기저기 덕지덕지 하면 당연히 느려지는 겁니다.
개발하기도 힘들고, 인건비 따먹기용 용역에서나 사용되는 언어로 취급될 것 입니다.
들여다 보지도, 배우지도 마세요. 객제치향 말하면 그냥 좀 이해력이 떨어지는 구나 생각하세요.
그동안 자바에서 객체지향 떠들어대는 바람에, 뭔가 있어보였는데,
msa 방법론 나오고 다들 논리적으로 혁파당해서, 명함도 못내밀 과거의 유산 정도로 생각되고 있습니다.
이젠 좀 솔직해저도 됩니다.
바꿔야하는데, 노땅들이 하던데로 해야해서 그냥 저냥 유지되는 중입니다.
함수형언어 나오는 이야기 정도 해줘야 요즘 이슈지, 뭔 개뿔 객체 지향입니까.
그동안 php 그누보드 사용하신거 잘하신 겁니다.
오히려 로직에 신경 더 쓴게 더 가치로 인정받게 될 것입니다.

우선 여기서도 객체지향을 사기꾼들의 전유물 언어로 만들어야합니다.
전자정부 프레임워크에서 사용하다보니 정부 사업 다 싹스리 해가는데,
이젠 msa 때문애 그 논리 근거가 사라졌습니다.

빌드 배포 자동화는 php에서 할 말은 아니죠.
빌드도 안하고 그냥 ftp 올리면 되는데, 번지수를 잘못 찾으신 겁니다.
최근 빌드를 하려는 움직임이 있으나, 다른 언어 추천합니다.

그정도 열정이면 약간 실력이 부독한 초보다 싶으면
go lang 하시고,

프로그램 적성에 맞는 것 같다 싶으시면 그리고
장기적으로 나의 벨류를 높여야겠다 싶으시면 rust 공부하시는게 훨씬 좋은 선택입니다.

그리고 db는 postgresql 쓰세요. 그럼 됩니다.

php에서 고급개발 불가능 합니다.
하지도 마세요. 

그정도 공 드릴려면, rust 하세요.
참고로 rust 할때 블록체인 쪽은 하지 마세요. 그냥 포인트 외부 api 연동정도 수준입니다.
아에 자체로 이더리움 같은걸 만들 계획이면 모를까 기존 블록체인 연결 정도 수준을한다면,

여기 php하시는 분들이 더욱 귀하신 분들입니다.
api 연동하는 수준으로 연봉 1억씩 받는데, 이런거 따라거시면, 유행지나면, 남는게 없습니다.
지금 php 에서 로직 짜는 이런 프로그래머가 오히려 블록체인 분야에 없어서
서비스가 나오지 못하고 있습니다.

전 php로 너무 많은 기능이 있는 서비스 만들어 놓고 실제 서비스 속도가 너무 느려서
Rust 로 개발 하다가 막히는 부분이 풀리지 않아서 go lang으로 다시 개발을 진행하고 있습니다.
go lang은 확실히 쉽네요.

중요한건 서비스 로직입니다. 서비스 로직의 시대입니다.
php 할 줄 아시면, 자부심 가지시고, 좀더 공부하려거든 go 나 rust 공부하세요.
재밌네요.
객체지향과 마이크로 서비스가 상호교환 또는 대체 가능한 아키텍처처럼 말씀하셨는데 이 내용에 대해 추가 설명 부탁드립니다.
마이크로 서비스에 대해 저와 다른 이해를 가지고 계신 것처럼 보여서 여쭙는 겁니다. 아니 그보다도 객체지향이 마이크로 서비스로 변경되고 있다는 말씀 자체가 의아합니다. Monolithic을 이야기 하시려던 건가요?
마이크로 서비스도 유행처럼 번지면서 아키텍처에 대한 오해와 오버스펙을 가져가는 경우가 많으니 주의해야 합니다.

말씀하신 것처럼 뷰는 프론트엔드에서 처리되는 것으로 변화하고 있습니다. 하지만 그누보드는 API를 갖추지 못했고 뷰와 비즈니스 로직이 완전히 뒤섞여있는 형태죠. 떼어내기도 힘들고 변경하면 영향이 너무 크기 때문에 필요한 로직을 복제하여 별도로 구현하는 편이 나을 정도로 결합이 너무 강합니다.
그누보드의 로직의 가치... 이에 대해 어떻게 생각하시는지도 의견 듣고 싶네요.

배포 자동화는 뭐 말씀하신것처럼 PHP는 컴파일이나 빌드 과정이 없으니 자동화할게 없죠. 보통 유닛테스트나 E2E 테스트를 안하니까요. 그누보드 자체에도 테스트 코드가 전혀없으니까요. 테스트가 갖춰져있다면 자동화 의미가 있습니다. 테스트를 자동화하고 정상 완료되면 자동으로 배포되게하거나 사람이 승인하는 단계까지 준비를 마쳐두게할 수도 있죠.
그누보드로 사이트 만드는데는 필요성이 낮고 그누보드 외의 프로젝트에서 덩치가 커지면 필요성이 커지죠.
배포 자동화가 웹팩 빌드같은 것만 생각하시는건 아니겠죠?

객체지향이라고 모든걸 객체로 다룰 필요는 없습니다.
객체지향도 하나의 아키텍처일 뿐입니다. 적절한 곳에 적절한 아키텍처를 사용하면 됩니다.
테스트가 있다면 ftp 이야기는 절대 못하실텐데...
혹시 테스트 코드들이 없으신가보죠?
그누보드만 쓰시던분이라 그런가...
classic asp로 만든 게시판들이나 제로보드, 그누보드 다 그 시절의 기술로 만들어진 제품들이죠.
mvc나 mvvm 구조로 보면 모든 기능들이 결합도가 너무 강해서 리팩토링도 엄두가 나질 않습니다. 새로이 요구되는 조건들을 처리하기위한 기능을 주입하는것도 쉽지 않습니다.

질문에 대하여 생각하자면 거의 필요조건이지 아닐까 싶습니다. 저도 대충 classic asp로 개발이란것에 진입했다가 .net core로 넘어오며 스택, 힙, 상속, 인터페이스, 추상화, 디자인패턴, DI, CI/CD 등등에 더 많은 시간을 할애하고 있습니다. 배우고 써보아야 좋은것을 알수 있습니다.
전체 310 |RSS
자유게시판 내용 검색

회원로그인

진행중 포인트경매

  1. 참여76 회 시작24.04.19 15:40 종료24.04.26 15:40
(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT