자유게시판

제목 초보 분들께 질문 드립니다.
글쓴이 변종원(웅파) 작성시각 2012/04/17 21:35:07
댓글 : 9 추천 : 0 스크랩 : 1 조회수 : 11926   RSS
codeigniter를 접하고서 제일 어려웠던 부분, 
이해하기 힘들었던 부분이 있으면 알려주세요.
(이런 부분이 있었으면 접근하기 쉬웠을텐데 하는 부분도요)

국내 최초로 codeigniter 집필서를 준비중입니다.

여러 포럼회원님의 도움이 필요합니다.
 다음글 이거이거 뭡니까?? (5)
 이전글 오늘에서야 깨닭았네요... (5)

댓글

헛발이 / 2012/04/18 10:25:25 / 추천 0
초보자로서 그건 제가 전문입니다.. ㅋㅋ

가장 어려운걸 순번대로 나열하면..

1. 코드이그나이터나 프레임워크에 대한 정확한 정의를 잘 모른다는것
처음 코드이그나이터를 접할때 가정어려웠던것은 아마도 Codeigniter를 읽는 방법이였죠. 아무도 Codeigniter를 코드이그나이터라고 읽는다고 알려 주는 사람들이 없었으니깐요.. 한참을 인터넷으로 검색해 보면 코드이그나이터라는것을 알게 되겠지만 코드이그나이터가 뭐하는건지 정확하게 알 방법이 없었죠.
첨엔 제로보드 같이 복사해서 깔아 놓고 설정만 하면 홈페이지 뚝딱하나 만드는건줄 알았는데.. 그게 아니라는것도 한참을 서핑해본 다음에야 알게 된다는것이죠.. 그것때문에 뭔지도 모르고 그냥 접근 안하게 되는 분들도 많을거에요.. ^^;;

2. Class개념 즉 ->의 정확한 의미를 처음에 모른다는거죠.. ㅋㅋ
날코딩 하다가 프레임워크를 가장 접하기 힘든것중에 하나가 바로 OOP개념이죠.. 뭔지도 모르고 그냥 객체지향이라고 하면 겁부터 나고 "난 전문기관에서 교육을 안 받아서 그 부분은 전혀 몰라!" 라고 무조건 거부를 하죠. 특히 ->만 보면 머리가 멍해지고 아무 생각이 안난다는것! 아무리 코끼리 냉장고에 넣는 걸로 설명해도 이해 하기 힘들다는것이죠..
예를 들면 class Main extends CI_Controller....이런걸 다 외워서 타이핑 쳐야 하나? 그런 걱정도 들고 모르는 것들을 그 많은 분량들을 모두 외워야 하나? 그런걱정도 많고.. 그렇쵸...
대입시험에서 국영수만 보는게 아니고 "일반상식"도 보니 일반상식도 공부해라 80년대 부터 지금까지의 일반상식을 말이다!!!! 그거랑 같은 부담감이죠 ㅋㅋ

3. MVC의 개념이 없다는것
아직도 초보자라 그런지 MVC만 보면 PVC 파이프 같은게 생각나고 스타크래프트의 SCV같은 단어가 생각나죠. 하지만 날코딩도 하나의 PHP파일에다가 DB연결부터 데이터 불러오고 화면에 찍는걸 하진 않기 때문에 MVC의 개념은 그리 어렵지는 않치만 어려운건 서로 어떻게 연결되서 불러오고 넘겨주고 하는지에 대한 구체적인 예제 코드나 알기쉬운 소스가 찾기 어렵기 때문에 이해 하는데 시간이 많이 걸린다는것!!

4. 우리정서에 맞는 개념잡는 기본 샘플코드를 찾기 힘들다는것
아직도 페이져에서 보면 우리나라 정서에 맞지 않기때문에 페이징에 대한 질문들이 많은것처럼 우리가 자주짜는 식의 코딩방법들에 맞는 알기쉬운 예제코드가 현재로선 포럼소스와 마냐님소스로 의존한다는것이죠..하지만 그것들은 모두 완성된 것들이기 때문에 부분부분 알기쉽게 짜 놓은 예제코드가 없어 빨리빨리 습득하기 어렵다는것!!!
(제가 한번 만들어 볼까도 생각중이에요 ㅋㅋ)

5. 무슨 명령들이 있는지 잘 모른다는것 (메뉴얼볼줄 모른다는것)
뭘 알아야 면장을 해먹지..개념은 알겠지만 뭐가 있는줄 알아야 거기에 맞게 작성을 하던지 하지...
view에서 <a href..... 도 anchor() 가 있는지 없는지 조차 몰라 못사용한다는것!!  메뉴얼 보면 된다고 하지만 메뉴얼은 두깨가 10cm나 되는 두꺼운 법전같이 느껴진다는것!! 엄두가 나지 않는다는것 사실 필요한 부분을 찾아 보면 되는데 그걸 모르고 메뉴얼도 개념부터 1페이지부터 보게 된다는것!! ㅋㅋ

6. 레이아웃 즉 콘트롤에서 다른 콘트롤의 내용을 불러오는 것에 대한 개념및 예제가 불충분..

4번과 마찮가지지만.. 우리가 가장 궁굼해 하는 헤더 푸터 등의 코딩기술들에 대한 충분한 예제가 없다는것이죠.. 이건 정답이 없기 때문에 서로 자기만의 기술로 만들고 계시겠지만 이것도 누군가 표준화 시켜 준다면 아주 좋을듯!!! 배우는 입장에선 고민 안하고 그냥 그것을 쓰기만 하면 좋잖아요 ㅋㅋ

7. 처음에 정확한 코딩방법을 몰라 여기저기 소스코드가 엉망이 된다는것
지금도 그렇치만 정확하게 기본폴더사용법을 잘 몰라서 제가 처음 만들었던 소스를 보면 콘트롤러에 DB관련 클레스를 사용하는가 하면 views에다가도 잡다한 프로그래밍을 한다는것이죠..그래서 비슷한 사이트를 만들어도 매번 만들때마다 계속적으로 코딩 기술이 바뀌어서 아직도 뭐가 정확한 코딩방법인가를 찾아 가며 만들기 때문에 코드가 통일화되지 않는다는것도 문제점인듯!!
특히 처음엔 그게 너무 심해서 뭘 어디에 작성해야 하는지 몰라 누군가 좀 옆에서 잘 갈켜 줬으면 하는 바람이 아주 많쵸... 포럼에 질문 하고 싶어도 너무 초보일 때는 질문하는 방법도 모른다는것!! ㅋㅋ 자신이 뭘 모르는지도 모른다는것!!!

이 고비를 넘기면 세상이 참 편해지지만...말이죠...
한대승(불의회상) / 2012/04/18 10:56:45 / 추천 0
헛발이// 조목 조목 잘 짚어 주셔서 감사 합니다.
변종원(웅파) / 2012/04/18 11:35:05 / 추천 0
헛발이/ 상세한 답변 감사합니다. 많은 도움이 되겠네요.
도라에몽 / 2012/04/18 15:35:31 / 추천 0
오.. 헛발이 님께서 정말 상세하게 잘 짚어주셨네요.. 
다들 겪었던 것들인것 같습니다. 

위의 내용에 다음 두가지 정도 더 추가 해도 될듯 합니다.

CI와 관계는 없지만 short_open_tag=off 로 되어있을 경우에 view 에서 <?=$value?>  를 썼다가 안되서 
CI가 안되나보다. ㅠㅠ 하고 OTL 했던 경험이 있었고... 

또 한가지는 다른 프로그래머들과  <?php 여는 태그와   ?>  닫는태그 중에서 
닫는태그를 생략하는것이 CI에서 지원하는것이다.. 라고 생각하는 분들이 있다는.. 
그래서 직접 테스트를 해본 적도 있습니다. ^^;;

http://php.net/manual/en/language.basic-syntax.instruction-separation.php 
이 링크는 나중에서야 찾아보게 되었죠.
theagri / 2012/04/18 17:21:17 / 추천 0
헛발이님이 쓰신 문제는 제외하고 써보도록 할게요

지금은 다 해결된 문제들이지만 제가 겪었던 사소한 문제과 고민입니다.

정말 정말 사소한 문제지만 어디에 물어보기도 참 그랬던 고민들입니다 -_-;

1.
코드이그나이터의 파일중 index.php 이놈의 용도가 뭘까 ?
이놈이 이미 있는데 그렇다면 내 웹사이트의 메인페이지는 어떻게 만들어야 하지?
이미 최상단 pubic 폴더에 index.php가 있는데 ? 어쩌라고? 이런 고민을 가장 먼저 했었습니다.

2.
mvc모델에서 모델은 없어도 충분히 쓸수도 있을것 같은데... 이걸 꼭 써야하나 ?
mvc! mvc! 에 자꾸 집착되게 된다. 데이터 입출력이 없는 컨트롤에서는 모델을 꼭 해야만 하나? 어떻게 해야 적절한 MVC모델인가? 내가 짜고있는 방식... 이게 과연 mvc인가?

3.
xss 필터등 웹 보안 이슈에 대해서 코드이그나이터에서 다 해결해 줄수 있는건가?
아니면 웹방화벽을 따로 설치하거나 보안에 관련된 라이브러리를 작성해야할까?

4.
index.php 파일을 주소에서 제거 하고 싶어서 메뉴얼대로 .htaccess를 작성하여 업로드 했는데
직접 올린 다른 정적파일들이 접속이 되질 않는다. 이건 도대체 무슨 일이지? 메뉴얼이 잘못된건가?



5.
라이브러리,헬퍼는 직접 만들걸 넣는거고 코딩의 규칙/규격이 있는것인가? 아니면 남이 만들어 놓은건 어디가면 구할수 있을까?

그리고 라이브러리랑 헬퍼가 도대체 뭔 차이지? 그게 그거 아닌가?

6.
컨트롤러에서 생성해서 자동으로 파일과 주소가 1:1 매칭되어 라우팅 되는것과 직접 라우팅규칙을 만드는것의 차이(?)와 그것을 하는 방법(?) ---- ex) 다중 게시판

7.
지금껏 웹사이트가 중요하지 않은 업무를 맡아와서 템플릿에 대한 개념이 잘 잡혀있지 않다. 과연 CI의 뷰에서 쓸수있는 템플릿은 smarty나 한국의 template_와 무슨 차이일까...

그리고 smarty나 template_가 템플릿 엔진인데 왜 많은 사람들은 그 물건들을 프레임워크로 승격(?)을 해서 취급(?)을 하는걸까?

만약 smarty나 template_가 더 훌륭하다면 둘이 결합해서 사용해도 되는가? 또 이 대표적인 템플릿엔진과 어떤점이 차이가 있을까?

8.
각 폴더마다 .htaccess와 index.html등의 폴더가 있는데 이게 단순하게 이 웹사이트가 CI를 쓰는걸 감추기 위한 용도인가?

9.
system폴더와 application폴더를 (public_html,html,www)등의 퍼블릭 폴더에 두지 않고 상위디렉토리(쉽게 말하자면 ftp에 접속하자 마자 보이는 그 위치)에 옮겨 웹에서 직접 접근을 못하게 사용하려고 하는데 이때 웹사이트를 운영함에 있어 자잘한 문제나 프로젝트 진행하면서 불편한 상황은 과연 없을까?

10.
ci로 만들어진 포럼이나 cms 소스를 분석해 보고 싶다. 참고할만한 프로그램 목록을 보고싶은데 ...(pyrocms,cikoreaforum,마냐님 보드등 많은 도움이 되긴 하는데, 처음에는 이런 존재를(?) 잘 몰랐습니다)

11.
엑티브레코더로 mysql의 저장프로시저를 사용할수 있을까?

12.
다른 곳에서 주서온 프로그램(?) ex)Ckeditor,DaumopenEditor등... 을 적용시킬려고 하는데 동작이 안되네... 근데 쓰고 있는 사람들도 있고.. 수정해서 써야 하긴 할텐데 이 수정을 해서 작동을 하기 위해서는 어떻게 접근해야 할까?

13.
스캐폴딩은 그냥 학습의 목적인 레퍼런스 용도인가?... X분만에 XXX만들기등을 보여줄려고 굳이 넣어 놓은건가? 이걸 어따 써먹어!!

14.
압축 풀어보면 user_guide가 크기가 상당하다 첨엔 있는줄도 모르고 codeigniter 왜이렇게 덩치가 크지? 이게 가벼운거 맞아?-_-;; 라고 생각했었다... license.txt를 포함해서 필요없음 지워도 되더라...

15.
다른 사람이 CI로 작업한 사이트를 수정할 일이 있는데 CI버전은 어디가서 보지?

16.
메뉴얼 내용 다 좋은데 코드이그나이터가 구성된 각 폴더및 파일을 트리형태로 보여주고 디렉터리/파일 용도와 설명이 보고싶은데 메뉴얼에는 이런 내용이 없다... ㅠ



생각나면 더 써보겠습니다 -_-;;
한대승(불의회상) / 2012/04/18 17:38:43 / 추천 0
theagri// 정말 다양한 시도와 질문 이군요.. ^^
좋은 의견 감사 드립니다.
변종원(웅파) / 2012/04/18 18:11:22 / 추천 0
theagri/ 강좌 게시판에 상당부분 올라가 있기는 합니다. 작년에 숙대에서 강의했던 파일에도 있고
회사 내부직원들 강의용 교재에도 있고.. 사실 어딘가 있기는 하는데 어디 있는지 몰라서 그런거죠.

그래서 책을 내야합니다. ㅎㅎ

상세한, 그리고 생각지도 못한 부분 감사드립니다. (저도 올챙이적 생각 못한다고...)
theagri / 2012/04/18 18:21:54 / 추천 0
웅파님//

넵 스스로 해결했거나 이곳의 강의를 보고 해결을 했었죠 ^^
말씀하신데로 그래서 책이 필요한겁니다.

제 주변을 봐도 위 처럼 아주 사소한 부분에서 고민을 많이 하더라고요

보통 그 고민의 시간은 짧거나 아니면 무신경한 부분이지만 알면 CI에 대해서 더 깊게 알수 있을것 같습니다. ㅎㅎ

책 나오면 예약 판매는 하실거죠? ㅎㅎ
변종원(웅파) / 2012/04/18 19:05:29 / 추천 0
 theagri// 출판사에 물어봐야겠네요. ^^