개발 Q&A

제목 MVC 프레임워크를 한번도 안써본 php 개발자입니다.
글쓴이 kdm7173 작성시각 2016/09/07 08:53:09
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 14826   RSS

안녕하세요. mvc 프레임워크에 입문해보려고 하는 개발자입니다.

php공부한지는 이제 약 2년 조금 넘어가는거 같고 php 개발자로 일하기 시작한지는 6개월 정도 됐습니다. 지금까지 쭉 날코딩을 해오다가 좀 더 체계적으로 코딩하는 습관을 가져야겠다 해서 생각해본게 mvc 프레임워크입니다. 그 중에서 일단 당장은 코드이그나이터를 공부하려고 마음먹고 있는 중이고요.

객체지향 방식의 코딩을 잘 모르고 있는 상태인데 공부하는데 큰 지장은 없을까요? jsp를 잠깐 배우다가 객체지향 방식도 잘 모르겠고 여러 파일을 (모델 뷰 컨트롤러) 왔다갔다 하면서 해야 되는 것도 익숙치않아 중간에 접었던 적이 있습니다. 지금 php 코딩 방식도 완전 절차지향 방식에 앵간치한 것은 한 파일에 때려넣는 중입니다. php코드, 자바스크립트, html 등등.

이런 방식이면 코드이그나이터에 접근하기 어려울까요?

그리고 몇몇 분들은 코드이그나이터보다 라라벨을 추천해주시던데 코드이그나이터와 라라벨을 비교했을때 어떤것으로 공부를 시작하는 것이 더 좋을까요? 각각 장단점도 아무리 찾아봐도 확실하게 나오는게 없어서 현업에서 코드이그나이터를 사용하고 계시는 선배님들 관점에서 둘은 비교해주시면 감사하겠습니다.

코드이그나이터를 공부하게 된다면 '만들면서 배우는 CodeIgniter 프레임워크' 를 보고 공부할까 생각중이긴한데 '코드이그나이터 mvc 프로그래밍' 이 책도 좋아보이긴 하던대 어떤 것을 더 추천해주시나요? 아무래도 입문이면 전자를 보고 직접 따라 만들면서 이해하는게 빠르지 않을까 생각해서 전자를 생각하고 있습니다. php도 독학으로 공부했고 그때도 만들어진 예제들 보면서 직접 해보고 게시판 만들면서 공부한 경험이 있어서요.

말이 좀 길어진 것 같지만 위의 질문들에 대해 현업에 계신 선배님들께서 답변해주시면 대단히 감사하겠습니다.

 

 다음글 a 태그에 중복클릭을 막을 수 있는 방법이 있을까요? (5)
 이전글 워드프레스 아바다 테마(AVADA Theme)의 fus... (3)

댓글

kaido / 2016/09/07 09:05:31 / 추천 0

뭐 CI 포럼에서 CI 를 추천 하는것은 당연하겠지만, 라라벨은 비추천이긴 합니다.

굳이 CI가 싫다면 라라벨 말고 다른걸 배우세요.

 

일단 라라벨 인지도가 좀 그래요. 라라벨  XE팀이 공식 사용한다고 공개 했지만, 정작 XE 자체가 가라앉는 배인데요 ( ..)

그리고 라라벨의 특징중 하나가 '초기 진입 장벽이 높음' 입니다.

처음 배우기가 어려운 편이죠. 이건 아주 큰 패널티 입니다.

일단 써봐야 좋은지를 아는데, 써보기도 어려운 겁니다 ㅋㅋㅋ

 

처음부터 MVC패턴을 써본 프로그래머는 없습니다. 해보고 배우는 거고, 일단 절차적이라도 사용 할 줄 안다는 것이 중요합니다.

단순히 생각해서 하는 역활을 3개로 나눈거 뿐이거든요.

 

네이티브 코딩으로는 1개의 php 파일로 만들걸 3개의 파일로 나눠서 만드는 거에요.

어? 그럼 3배 더 복잡해지는 거네요?

반은 맞고 반은 틀려요.

 

가령 페이지를 10개 만든다 쳐요. 5개의 뷰가 나오는 페이지가 있고, 5개의 처리용페이지 [ajax 이라고 칩시다.] 가 있다면

그럼 네이티브로는 10개의 php파일이 생성되고 CI 로는 컨트롤1개 모델1개 뷰5개 만큼 사용됩니다.

[처리 페이지는 전부 컨트롤러 파일 한개로 처리 가능해서 이렇게 됨.]

이는 페이지 수가 증가 할수록 더 차이가 많이 나게 됩니다.

 

 

자 그럼 생각해 보세요.

10개의 페이지 중에 5개의 처리 페이지의 인자값이 바뀌어서 수정을 해야 되요. 

파라메터가 1개 더 늘어서 넣어야 하죠.

그럼 당신은 10개중에 5개의 파일을 찾아야 하고, 5개의 처리 페이지를 들어가서 일일이 하나씩 수정해서 업로드 하고 테스트를 해야합니다.

 

CI는 컨트롤러 파일 하나 찾아 가서 5개의 function 으로 구성된 페이지중에 처리 페이지 5줄을 찾아서 수정 하면 됩니다.

그리고 1개의 파일을 업로드 하고 테스트 하면 됩니다.

 

네이티브와 MVC의 차이. 조금 와닿나요?

 

단순히 MVC만 놓고 봐도 이렇습니다만, 사실 이건 빙산의 일각 입니다.

CI에는 그동안 찾아 다니시던 필요한 라이브러리 유틸들이 잔뜩 있거든요 ㅎㅎ

kdm7173 / 2016/09/07 09:26:34 / 추천 0
그럼 향후에도 국내에서는 라라벨보다는 코드이그나이터가 대세일까요? 어떤분은 이제 코드나이터는 끝나가고 라라벨이다 이런식으로 말씀하셔서 코드이그나이터 하려했다가 망설여졌거든요.. 말씀하신대로 라라벨이 진입장벽이 높다라는 말은 들었는데 객체지향방식이고 mvc방식이고 거의 할 줄 모르는 상태라 그나마 좀 더 진입장벽이 낮고 많이 쓰는 것 찾다가 코드이그나이터로 정했는데 이왕하는거 라라벨해라 이런 말들이 많아서요ㅋ 코드이그나이터가 더 좋다는 확실한 대답을 원해서 여기서 물어보는 것 같기도 합니다. 이미 정한거 바꿀 생각이 거의 없어서 확신이라도 가지려고??ㅋㅋ
kaido / 2016/09/07 09:37:01 / 추천 0

글로벌 기준으로 보면 라라벨이나 CI 이긴 한데  국내 기업들이 갑자기 단체로 약이라도 한듯 라라벨을 선호한다면 또 모르겠네요. ㅎㅎ

그리고 객체지향 방식은 프레임워크가 정하는게 아니라 프로그래머가 정하는 겁니다.

아무리 객체지향 방식 프레임워크를 사용해도, 프로그래머가 절차적으로 만들면 이건 객체도 절차도 아닌 짬뽕 프로그램됩니다.

[이니시스 개갱끼 같은 애들 처럼 -_-  객체 파일 만들고는 절차적인 선언 문구를 위에 박아 넣고 불러오기도 include.....]

 

참고로 CI 4 버전 부터는 완벽한 객체 지향적인 프레임워크로 변신 합니다.

CI 3 이하 버전하고는 완전 달라요.

PSR 기준을 맞춘 프레임워크라서, 타 프레임워크를 다 본건 아니라서 모르겠다만, PSR 기준을 맞춘 프레임워크 찾기 어렵거든요.

kdm7173 / 2016/09/07 09:41:10 / 추천 0
그럼 만약 제가 절차지향에 아무리 익숙하고 객체지향을 잘 모르겠더라도 코드이그나이터를 잘 활용하기 위해서는 코드이그나이터로 코딩할 때 억지로라도 객체지향방식으로 코딩하면서 미리 익숙해지는것이 나을까요?? 물론 너무 억지로라기 보다는 그만큼 빡세게 공부해야겠다는 의미입니다.
kaido / 2016/09/07 09:45:35 / 추천 0

간혹 포럼에 올라오는 질문글인데...

 

객체 사용법이 서툴러서 질문 해오는 경우가 있습니다.

 

그런데 CI 사용할때 이미 사용 하고 있거든요 ㅋㅋㅋ

이게 객체 사용법인지 모르고 이미 쓰고 있단 겁니다.

억지가 아니라 뭔지 모르고 사용하고 있단 소리죠.

 

그러다 의문이 드실 날이 옵겁니다.

 

"어? 그럼 실제로는 이거 어떤 원리지?"

 

그때 기초 강좌를 다시 보면 이해하는 정도가 전혀 달라집니다.

초보 일때는 그냥 외워야지 하는 생각으로 보기 때매 흡수율이 제로에 가까운데, 사용법을 알고 이론을 배우면 보이는 대로 쏙쏙 들어오거든요.

 

제대로 사용 할줄 아는 분에게 1주일만 배워도 묘목 하나 심는 겁니다.

물만 줘도 쑥쑥 자랄 CI라는 묘목 말이죠. 

kdm7173 / 2016/09/07 09:51:12 / 추천 1

업무를 보고계시거나 일중이실텐데 귀중한시간 답변들 너무 감사합니다.^^

저는 일단 독학으로 공부할 생각이라서요ㅋㅋ 회사때문에 배우러 다닐 시간은 안될 것 같고 퇴근하고나 이번 추선 연휴동안 공부해보려고 하는 중입니다. 추석연휴 사이에 이틀 연차 넣어놔서 풀로 쉬는데 공부하게 생긴......

포럼에서 소개하는 '만들면서 배우는 CodeIgniter 프레임워크' 를 보고 독학하려 하는데 괜찮을까요? '코드이그나이터 mvc 프로그래밍' 이 책도 좋아보이긴 했는데 뭔가 확실하게 하나 만들면서 공부하는게 나을 것 같아서요.

변종원(웅파) / 2016/09/07 10:48:18 / 추천 1

음. 책은 집필서와 번역서 차이입니다. 저자에게 직접 물어볼 수 있는지 여부도 차이가 나구요. ^^

저는 2008년부터 ci를 써왔고 2009년 한글로 매뉴얼이 번역된 때에 포럼을 만들어서 ci의 국내보급에 신경을 썼습니다.

ci가 시장 진입 초기에 보여줬던 파급력을 라라벨이 어느 정도 보여줄지는 글쎄요... 입니다.

각 프레임워크의 매뉴얼 보시고 실제 작동코드들 보시고 자기에게 더 익숙해보이거나 친근해 보이는 것으로 선택하세요.

아무리 좋은 프레임워크라도 나와 맞지 않으면 최적의 퍼포먼스를 낼 수 없습니다.

제가 처음 프레임워크를 실무에 도입하려고 했을 때 zend, simpony, cakephp(우리나라에서 그당시 제일 핫했습니다. 1년후 사라짐), codeigniter, 기타 등등을

비교했었고 매뉴얼과 소스코드들 보면서 내가 얼마나 빠르게 익힐 수 있는지를 살펴 봤습니다.

주변 평을 듣는 것도 좋지만 직접 설치해서 아주 간단한 거라도 돌려보세요. ^^

kdm7173 / 2016/09/07 11:00:50 / 추천 0

저자분께서 직접 댓글도 달아주시네요? 말씀하신 것 처럼 직접 물어볼 수 있다면 집필서가 훨씬 나을 것 같다는 결론이네요. 자주는 아니더라도 하다가 막히는게 있다면 포럼에서 질문 드리면서 공부하는 방향으로 가고싶습니다.

음.. 익숙해보이는 코드가 흐어.. 절차지향만 계속 해오던 사람이라 프레임워크 전체가 익숙하지 않아서 어떻게든 배우려고 하는 중입니다. 처음 시작하는거에 천천히 익숙해 질거라 생각하고 책부터 빨리 사서 시작해야겠네요ㅋ 실행예제들 보면서 하고는 있는데 아직 잘 모르겠어서.. 여튼 답변 감사합니다.