NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 학습
  • 매뉴얼

    학습


    기타 [루아] Lua란? Lua 기초 1.

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 세상에는 정말 많은 프로그래밍 언어들이 있습니다. 트랜드에 맞게 요즘은 웹 언어들이 주류를 이루고 있고, 서비스 개발에 많이 사용하고 있습니다. 솔직히 저도~ 언어 하나만 하는게 편하긴 합니다. 익숙한거 하나만 하면 새로운 기술을 배울 필요도 없고, 점점 고인물이 되어가다가 발전 없이 그저 그런 개발자가 되어가겠죠? 이게 꼭 나쁜것만은 아닙니다. 익숙하기 때문에 일을 빨리 끝낼 수 있고, 상대적으로 여유있는 시간을 보낼 수 있습니다. 하지만, 먹고 사는게 쉽지 않다보니 어쩔 수 없이 이것저것 다 하게 되는게 현실입니다. 회사마다 다르겠지만요^^

     

    루아란?

    달을 의미하는 포르투갈의 단어입니다. 루아 스크립트는 가벼운 명령형/절차형 언어로 확장 언어의 사용 목적으로 설계된 언어입니다. 얼핏 보면 파이썬과 비슷합니다. 루아는 C의 확장 언어로 스크립트 지향 언어입니다. 자바스크립트나 파이썬, 오토핫키가 이와 같은 부류들입니다. 자바스크립트는 웹에서 많이 쓰고, 파이썬은 샘플링이나 분석에 많이 사용됩니다. 루아는 게임에서 스크립트 확장 언어로 가장 많이 사용되고 있습니다. C로 작성되어 있어서 C와 C++의 함수 및 조합해서 사용합니다. 확장 언어라서 main과 같은 진입점도 필요 없습니다. 무엇보다 큰 장점은 누구나 배우기가 쉽다는 점입니다. 자바스크립트, 파이썬과 같은 스크립트 언어들의 공통적인 특징입니다.

    88d62fF.jpg

     

     

    1. 루아 설치

    Visual Studio Code를 설치하고, 확장을 추가 해줍니다. 여러분들도 아래와 같이 3개 패키지를 설치하세요.

    QOPwxge.png

     

     

    비주얼 스튜디오 코드가 아닌 단순 코딩 테스트만 필요하다면 아래 사이트에서 간단하게 배워볼 수 있습니다. MacOS나 Linux 사용자라면 터미널을 이용해서 쉽게 설치하고 테스트할 수 있습니다. 저는 윈도우에서 루아 스크립트를 공부하기 위해 vscode를 사용하도록 하겠습니다. 

     

    2. 자료형

    루아의 자료형은 기본적으로 동적타입입니다. 엔지엠 매크로도 동적타입과 정적타입을 사용합니다. 동적타입이란, 변수 a에 1을 입력할 때 동적으로 a 변수의 타입이 정수형으로 결정나는 방식을 말합니다. 그렇다보니 정적타입 언어들이 변수의 타입(Type: 형식)을 선언하는 것과 같은 행위는 하지 않아도 됩니다.

    ※ 정적타입이란 용어는 잘 사용하지 않습니다. 이 글에서 동적의 반대로 정적을 사용했을 뿐입니다. 일반적으로 컴파일 언어들은 정적타입을 스트롱타입이라고 말합니다.

    zCjfYRS.png

    Y0SaEVX.png

     

     

    여기까지 어려운 부분은 없을겁니다. a와 b, c는 정수형 변수로 선언되고, d는 문자열 변수가 됩니다. 표준 출력함수인 프린트와 자료형의 타입에 대한 샘플 코드입니다.

    wEvlyme.png

     

    프린트 표준 출력 함수는 괄호를 생략할 수 있습니다. 하지만, 가독성 및 유지보수성을 생각해서 일관되게 코딩하는 습관을 들이는게 좋습니다. 자유도가 높은 만큼 문제가 발생할 수 있는 확률도 올라가니까요. 프로그래밍 언어들이 동적타입에서 스트롱타입으로 이동하는 이유도 여기에 있습니다. 간단한 프로그램이나 학습용으로는 좋을지 모르나, 다수의 인원이 개발하는 엔터프라이즈급 프로젝트에서는 이런 언어들을 사용하지 않는게 국룰입니다. 관리가 안되기 때문입니다. 프로그래밍 언어들이 대부분 null을 사용하는데 스위프트나 루아는 nil을 사용합니다. 같은 의미이니 신경쓸 필요는 없지만, 엄밀히 말하는 null은 c에서 포인터가 없다는 뜻이고, nil은 값이 비어 있다는 뜻입니다.

     

    3. 함수

    함수는 프로그래밍에 있어서 매우 중요한 기능중에 하나입니다. OOP 시대로 넘어가면서 메소드로 이름이 바뀌기도 했지만, 자바스크립트나 리액트, 노드등등... 아직도 function을 사용하고 있습니다. 파이썬과 루아도 함수 기반 언어라서 사용 방법은 비슷합니다. 함수를 선언하는 예약어는 function입니다. function뒤에 함수명(인자 목록...)과 같이 사용합니다. 개발자가 보면 너무나 당연한 syntax(문장이 문법: grammer에 타당한지 확인)일수도 있습니다. 하지만, 처음 보면 어려울겁니다. 왜라는 물음이 머리속에서 떠나질 않을테니까요. 아래는 함수를 잘 설명하고 있는 샘플 코드입니다.

    tqHyAFF.png

     

    첫번째 fib 함수는 아주 간단하게 구현된 피보나치 수열의 합을 구하는 함수가 정의되어 있습니다. 현재 레벨에서는 조건문을 학습하지 않았기 때문에 일단은 넘어가도록 하겠습니다. function은 end로 마칩니다. 또한, 함수의 변수화가 가능하기 때문에, 두번째 foo 변수를 보면 42를 반환하는 함수를 가지고 있습니다. 그리고, 중요한 점은 전역 변수와 지역 변수입니다. 전역 변수는 프로그램에서 사용되는 변수입니다. 지역 변수는 함수 내부에서만 사용할 수 있는 변수입니다.

     

    오늘은 워밍업으로 루아가 뭔지~ 그리고, 설치 및 기초적인 학습을 해봤습니다. 엔지엠소프트웨어 사이트에는 C, C++, C#, 자바, Database등등... 정말 다양한 언어들을 학습할 수 있도록 강좌가 만들어져 있습니다. 잘 정리되어 있는 학습자료들을 참고하시면 여러분들도 언젠가는 멋진 프로그램을 만들 수 있는 날이 올겁니다. 당장은 어렵더라도 꾸준히 하는게 중요하다고 생각합니다. 뭐든지 포기하면 그때가 끝이니까요^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    등록된 댓글이 없습니다.