웹에플리케이션 만들기 – JS, PHP 프로그래밍 11 : 배열

이번시간은 배열이라는 것을 알아보겠습니다 배열은 영어로는 Array라고도 하고요

어떤 정보를 담는 그릇이라고 할 수가 있어요 우리가 지금까지 살펴본 정보를 담는 그릇은 변수였죠? 변수라고 하는 그릇에다가 정보를 담는 거였습니다 이 배열은 변수와 비슷하면서도 달라요 변수 안에는 하나의 값만 담을 수 가있죠? 그런데 배열안에는 서로 연관되어있는 여러 정보들을 연속된 그릇에 담아서 체계적으로 관리하는 도구입니다 배열은 다시 변수에 담겨서 사용이 되기도 하지만 그런 관계는 이제 코드를 통해서 살펴보도록 하죠

보시는 것처럼 이런 문법으로 여러분이 배열을 생성하시면 됩니다 자, 여기에 있는 new라고 되어있는 부분이 문법적인 요소인데요 우리는 아직 저러한 문법적 요소를 배우지 않았기 때문에 여러분들은 그냥 단순히 배열을 생성할 때는 이 부분에다가 데이터를 넣어주면 배열이 만들어진는것만 이해하시면 됩니다 그리고 값과 값 사이에는 이렇게 ","를 해서 여기 있는 "one","two","three"라는 문자열을 문자를 배열로 만들어서 그것을 리스트에 담아주고 있는 겁니다 자, php도 마찬가지에요

php는 new가 없어졌죠? 그냥 어레이라고 이렇게 작성을 하시고 그리고 끝부분에는 이렇게 똑같이 괄호를 닫아준 다음에 괄호와 괄호사이에는 값들을 콤마로 구분해서 넣어주면 되는 거죠 현재 이 두개의 언어들 javascript, php모두 세 개의 값으로 이루어져있는 배열을 생성을 한 것이 고요 그 배열을 리스트라고 하는 하나의 변수에 담은 겁니다 그래서 그 리스트에 담겨있는 값을 가져올 때는 이런 문법을 사용하시면 되는데 이 문법에 대해서는 우리가 코드를 직접 짜보면서 좀 더 자세한 얘기를 진행해보도록 하죠 자 저는 10php라는 파일을 만들었고요

여기서 실습을 진행하도록 하겠습니다 php,js에서 10php파일을 열었고요 javascript와 php를 실행할 예제를 동작시킬 코드를 이렇게 준비를 했어요 자, 그러면 우선 javascript에서 배열을 한번생성해보도록 하겠습니다

배열을 생성할 때는 많은 방법들이 있어요 몇 가지방법들이 더 있는데 new Array() 여기까지는 우리가 문법을 배우지 않았기 때문에 그냥 저렇게 하는 것이다라고 일단은 기계적으로 생각해두시면 되고요 그 다음에 여기다가 "one","two","three"라고 입력하면 이 부분이 실행이 되면 배열이 만들어져요 그런데 그렇게 만들어진 배열을 우리가 제어하기 위해서 그 만들어진 배열을 변수에 담아 주셔야합니다 자, 이렇게 하면 만들어진 배열이 리스트라고 하는 변수에 담아지게 되요 자 엔터 다음에 documentwrite()해서 리스트에 담겨진 배열을 한번 화면에 출력해보겠습니다 자, 리로드를 해보면 보시는 것처럼 one,two,three 이렇게 화면에 뜨죠? 즉 이 배열에 포함되어있는 정보들을 화면에 다 출력을 해주는 겁니다

자 그런데 이렇게는 잘 사용을 안 하고요 이 각각의 정보들을 우리가 정확하게 뽑아내야돼요 만약에 여러분이 여기에 있는 첫 번째 배열을 화면에 출력하고 싶다 배열에 들어가 있는 첫 번째 정보를 바로 여기에 출력하고 싶다면 이렇게 하시면 됩니다 리스트[0] 닫고, 문법이에요

자 그리고 실행을 시켜보면 보시는 것처럼 one이 출력되는 것을 볼 수 가있습니다 바로 여기에 있는 이 0이라고 하는 것은 무슨 뜻이냐면 리스트라는 변수에 담겨있는 배열의 0번째 값을 의미합니다 자, 프로그래밍에서는 숫자를 0부터 세는 습관이 있어요 오늘 반복문할 때도 제가 카운트를 셀 때 0부터 줬는데 그 얘기를 안했던 것 같아요 0부터 카운팅을 합니다

자 그래서 여기에 있는 이 첫 번째인 정보 one이 바로 0번째 정보가 되는 거예요 우리가 일상생활에서는 1부터 숫자를 많이 세지만 인도 같은 경우는 엘리베이터에 첫 번째 층이 0층입니다 그냥 기준이라고 볼 수 가있는 거예요 자 그럼 만약에 이 세 번째에 있는 정보를 화면에 출력하고 싶다 그러면 여기에다가 2라고 하면 되겠죠? 자, 한번 실행시켜보죠 보시는 것처럼 three가 화면에 잘 출력됩니다 이게 javascript에서 배열을 생성하고 그 배열 안에 포함되어있는 어떤 정보를 화면에 출력하는 방법입니다

그럼 php에서는 어떻게 하면 될까요? 거의 똑같습니다 자, list에 php에서는 new를 하지 않고 그냥 array()를 하면 됩니다 자, 그리고 "one","two","three" 라고 하고 echo $list[0]이라고 하면 어떻게 될까요? 똑같이 나오죠 그리고 [2]라고 하면 보시는 것처럼 three가 화면에 출력되는 것을 볼 수 가있습니다 왜 배열을 써야 되는가

라는 거에 대해서도 여러분들이 좀 이해를 하셔야 합니다 배열을 쓰는 이유는 너무나 다양해요 그것도 한마디로 정리하기는 어렵습니다 그런데 약간비유해서 표현하자면 이 변수라고 하는 것이 학교를 예들 들어볼게요 각각의 학생들 한명 한명은 일종의 데이터라고 할 수 있어요 데이터라고 비유를 해보자는 거죠 자 그런데 우리가 편의에 의해서 어떤 일이 학교에서는 벌어지냐면 어떤 특정한 학생을 반장이라고 지정을 해요 또 어떤 학생은 부반장 이렇게 지정을 하는 거죠 이 교실에 선생님이 들어왔을 때 선생님은 이모든 학생들의 이름을 정확하게 몰라도 반장이라고 얘기하면 반장이 누군지 몰라도 반장을 찾을 수 있는 거죠

바로 이반장이라는 것이 말하자면 변수라고 할 수 있는데, 제생각에 이 비유는 굉장히 어려운 비유에요 그래서 편안한 마음으로 듣고 흘리시면 됩니다 그런데 학교에 사람들이 많잖아요? 학교에서는 그 학생들을 관리하기 위해서 어떤 체계들을 도입 하냐면 1,2,3반 이런 체계를 도입합니다 자, 그런데 그걸로도 부족하니까 이렇게를 묶어서 뭐라고 부르나요? 1학년, 2학년, 3학년 이렇게 있겠죠? 그리고 그걸 묶으면 교육부 같은데서는 무슨 무슨 학교라고 부르는 거죠 자 이렇게 하면 뭐가 좋은 가요? 이 학교에서 그룹으로 어떤 것을 관리할 때 편리합니다 예를 들면 1학년 1반 학생들 예방접종 맞으러 오세요 라고 하면 학생들이 다 우르르 움직일 수 있잖아요? 만약에 이런 체계가 없다면 한명 한명의 학생들을 다 호출해서 불러야겠죠? 자 보시는 것처럼 이 프로그래밍에서 배열이라는 것도 아직 실용적인 예제가 아니기 때문에 공감하기는 좀 어려우시겠지만 서로 관계성이 있는 정보들을 이렇게 그룹핑을 해서 list라고 하는 이름으로 그룹핑을 한거라고 할 수 가있어요

그래서 그 그룹에서 특정한 학생을 호출할 때는 이렇게 숫자를 저렇게 대괄호 사이에 넣어서 특정한 학생을 호출할 수도 있고 뭐 여러 가지 작업들을 할 수 가있는 거죠 그래서 말하자면 우리가 학교에서는 이 학생들을 관리할 때 각각의 학생들의 이름을 잘 모르니까 1번 2번 3번 4번이렇게 번호를 메기잖아요? 그러면 선생님은 학급에 들어와서 27번 책 읽어! 20번 숙제했어? 뭐 이런 것들을 선생님이 할 수 가있게 되는 거죠 학생들의 이름을 잘 몰라도 그런 비슷한 일이 벌어지는 거라고 또 생각할 수 있겠지만 이 비유는 말씀드린 것 처럼 쉬운 표현은 아니니까 그냥 흥미삼아서 얘기를 듣고 흘리시면 되겠습니다 그리고 우리가 선생님이 학급에 오면 또 필요한게 뭔가요? 학생이 전체 몇명인지 그걸 알아야지 책상을 뺀 학생들, 결석한 학생들 이런 학생들을 관리할 수 가있겠죠? 이 배열에서도 그 배열에 포함되어있는 정보가 몇 개인지를 알아낼 수 있는 방법이 있습니다

자, 이렇게 listlength라고 해주면 보시는 것처럼 배열에 몇 개의 값이 있는 지를 화면에 출력할 수 가있어요 여기3이라고 되어있는 이 부분이 바로 length를 실행한 결과입니다 length는 길이라는 뜻이죠? php는 조금방법이 다른데요 count()라고 하는 것을 작성하셔서 그 괄호안에 여러분이 알고 싶은 배열을 가르키는 변수를 담아주시면 count를 알 수 가있습니다

자 여기에 있는 저 3이라고 되어있는 이 결과는 바로 여기에 있는 이 count()의 실행결과입니다 자 이렇게 해서 배열이 무엇인지 배열을 사용하는 기본적인 방법을 알아봤는데요 이 배열은 이것뿐만 아니라 여러분이 배열을 생성한다음에 어떤 특정한 데이터를 추가,삭제,이동하거나 이런 여러 가지 그 방법들이 이 도구들이 배열안에는 포함되어있어요 바로 이런 편의기능으로 인해서 우리가 배열을 사실은 사용을 하는 건데 그걸 우리가 짚어보면 너무 수업이 장황에 집니다 우리수업에서 필요한 만큼 만 딱 컴팩트하게 만든 배열에 대한 이야기이니까 이 정도만 있다는 걸 아시면 됩니다 자 그러면 다음시간에는 이 배열과 우리가 앞에서 배웠던 반복문을 결합해서 뭔가 배열안에 들어있는 정보들을 우리가 효율적으로 처리하는 방법에 대해서 알아보도록 하겠습니다