Tips - 개발 언어

프로그래밍 완전 기초 - 공통요소

Logger.one 2020. 4. 26. 08:07
반응형

세상에는 정말 다양한 프로그래밍 언어들이 존재하지만 언어마다의 고유 특징, 생산성, 학습 난이도(?)에 따라서 다양한 목적으로 쓰이는데요.



* TIOBE 기준 250개, Wikipedia 기준 700개 등등.. 기준에 따라 8천개 이상

참고 - https://codelani.com/posts/how-many-programming-languages-are-there-in-the-world.html


여기서는 그런 프로그래밍 언어를 사용할때 필요한 몇가지 공통 요소에 대해서 설명해 보겠습니다.



0. 들어 가기전 - 코드들을 간단히 실험하기 위한 방법 ( Javascript )



우선 Javascript는 배워두면 꽤나 유용하고 쉽게 사용할 수 있는 언어로 웹 클라이언트나 서버에서 쓰이는데 접근이 쉽고 가시적이어서 처음 프로그래밍 언어를 가볍게 배우신다면 추천드리는 언어입니다. ( 물론 프로그래밍 학과를 들어가면 C, C++로 시작하시겠지만... )


먼저 Javascript를 간단히 테스트해볼 수 있는 방법은 우리가 사용하는 Chrome 개발자 도구에서 Javascript를 사용해 보는 방법입니다.



Chrome 창에서 우클릭 > 개발자 도구 > Console 로 이동하여 Console 창을 띄워 줍니다.


그리고 우측에 뜬 개발자 도구 에서 Console 를 클릭하여 이곳에서 코드를 입력하여 간단히 Javascript 를 테스트해 볼 수 있습니다.


Console.log 는 Javascript 에서 문자열을 표시해주는 역할을 합니다.


* 아래의 내용들은 간단히 읽어볼 꺼리이고 자세한 내용들에 대해서는 따로 포스트를 작성할 예정입니다.



1. 문자, 문자열 그리고 문자열 처리



 프로그래밍에서 문자 혹은 문자열은 말그대로 문자들의 집합 말그대로 문자들의 열을 말합니다. 예를 들어 A 는 문자지만 "ABCD" 형태의 뭉탱이가 된다면 문자열이 되는 것이죠.


  프로그램별로 사용방법은 다르지만 데이터의 처리, 사용자와의 소통 같은 부분에서 이러한 문자열의 처리는 중요한 부분을 담당 합니다. 


간단히 문자열 합치기를 보여드리면 아래의 코드로


var string_1 = "Hello World"
var string_2 = "Logger ONE"

var string_3 = string_1 + " - " + string_2
console.log(string_3)

Hello World - Logger ONE 가 출력 되는 것을 확인 할수 있는데요.



 간단히 코드에 대해 설명 드리면 *아래에서 설명할 변수 2개 string_1, string_2 를 생성 후 그것을 합치는 + 연산자를 이용해 중간에 " - " 까지 넣어 string_3 를 생성하고 결과를 console.log 를 통해 출력한 모습입니다.


 자세한 내용은 각 프로그래밍의 포스트에서 기제할 예정이고 필요한 문자열 처리 기법이 필요 하다면 "구글 검색" 을 하시기 바랍니다.



2. 변수와 상수



변수 ( variable ) 는 변할 수 있는 수를 뜻하고 상수 ( constant ) 는 항상 같은 수를 뜻합니다.


1번 예제를 기준으로 본다면 javascript 에서 var 는 string_1, string_2, string_3 이라는 그릇을 만들어 주는 역할을 하고 그곳에 각각의 필요한 문자열을 담았다고 보시면 됩니다.


var string_1 = "Hello World"
var string_2 = "Logger ONE"
var string_3 = string_1 + " - " + string_2


간단히 변수와 상수의 차이점에 대한 설명을 위한 예를 보면

var string_1 = "안녕 하세요..."
console.log(string_1)

string_1 = "안녕 하신가?"
console.log(string_1)


 위는 변수의 예제로 string_1 에 처음 값을 넣어 주고 console.log 로 출력 후 변수의 값을 변경 후 출력시 변수의 값이 변한 것을 확인 할 수 있습니다.

하지만 상수의 경우인 아래의 예를 보면

const string_1 = "안녕 하세요..."
console.log(string_1)

string_1 = "안녕 하신가?"
console.log(string_1)




const 로 상수를 만든 후 console.log 를 통하여 한번 출력하고 string_1 의 값을 변경 하려고 하자 에러가 발생 하는 것을 확인 할 수 있습니다.

이는 상수로 선언된 데이터를 변경하려고 해서 발생한 에러로 상수는 선언 후에 변경하는 것이 불가능합니다.

만약 변경 해야 되고 변경 되도 되는 데이터 상자가 필요 하다면 '변수' 를 
그리고 변경이 되서는 안되는 데이터라면 '상수' 를 만들어 사용하게 될 것 입니다.


3. 연산자



 연산자는 두 변수 혹은 상수 같은 것들 ( 이하 피연산자 ) 더하거나, 비교하거나, 대입하는 등의 행위를 할수 있는 기호(Symbol) 입니다. 대표적인 예로 1번의 예제에서 나온 =, + 부터 

대입 연산자, 산술연산자, 증감 연산자, 논리 연산자 등이 있습니다. 1번 과 2번 예제에서 사용한 '=' 역시 대입 연산자로 변수나 상수에 값을 대입해 주는 역할을 해주고 + 는 산술 연산자로 두 변수를 합쳐 주는 역할을 합니다. ( Javascript 의 경우 숫자에 + 가 사용될때는 값이 합쳐지는 역할을 하고 문자열의 경우 문자가 붙는 역할을 합니다. )



4. 함수


 

 함수는 어떤 값 들이 들어가서 처리 되는 일정한 계산 혹은 어떠한 동작을 수행하는 코드 덩어리를 말합니다. 간단한 예를 보자면

function myFirstFunc(val_1, val_2, val_3){
    var res = (val_1 + val_2) * val_3
    return res;
}

var res = myFirstFunc(1,2,3)
console.log(res)



 코드를 설명하면 myFirstFunc 이라는 함수를 function 을 통해 선언해 주고 내부에 함수에서 작동할 var = (val_1 + val_2) * val_3 을 만들줍니다.
그리고 return 을 통해 res 그러니까 연산의 결과를 내보내 주도록 합니다.

마지막으로 그러한 함수에 내용을 넣어서 결과를 만들고 console.log 를 통해 결과를 만들어 주는 예제 입니다.


1,2,3 은 순서대로 val_1, val_2, val_3 에 들어가게되고 ( 1 + 2 ) * 3 이 처리되게 되어 결과적으로 9 가 나오게 됩니다.


만약 1,2,3 을 아무 숫자로 변경해 준다면?



위와 같이 다른 값이 들어가 처리결과가 다른 것을 확인 할 수 있습니다.


5. 배열



 배열 ( Array ) 은 변수들이 모인 집합으로 변수를 효율적으로 관리하기위한 자료형 ( 데이터 타입 ) 입니다.

간단한 예를 들면

var fruits = [
    "사과",
    "오렌지",
    "키위",
    "수박"
]

console.log(fruits)

var ranNumber =Math.floor(Math.random() * 3)
console.log(fruits[ranNumber])
ranNumber =Math.floor(Math.random() * 3)
console.log(fruits[ranNumber])
ranNumber =Math.floor(Math.random() * 3)
console.log(fruits[ranNumber])



위의 예제를 간단히 설명드리면 fruits라는 배열(Array)에 사과, 오렌지, 키위, 수박을 넣어 줍니다.

이렇게 될 경우 배열은

0 = 사과, 1 = 오렌지, 2 = 키위, 3 = 수박을 가리키게 되는데요.

* 여기서 0과 같은 숫자는 index 인덱스 - 색인이고 사과 와 같은 변수는 element 요소 라 불립니다. 위의 관계에서 본다면 0이라는 인덱스에 사과라는 변수가 element 요소 들어가 있는 것으로 이해하시면 됩니다.

이것을 Math.floor(Math.random() * 3) 을 통해 0~2의 나름 랜덤한 숫자를 생성하고 이것을 index 로 하여 결과를 출력하는 모습입니다.


내용을 보면 첫 ranNumber 는 0 두번째 ranNumber 는 2 마지막으로 세번째 ranNumber 는 3이 나왔다는 것을 예상 할 수 있습니다.

* 코드에는 넣지 않았지만 확인해보고 싶으시다면 ranNumber 를 통해 fluits  를 출력하기 전에 console.log(ranNumber) 와 같은 방법으로 수를 먼저 출력하여 확인해 보실 수 있습니다. - 아래의 예제에 넣어 뒀습니다.

이와 같이 배열은 변수들을 넣고 편리하게 관리하는 역할을 할 수 있습니다.

아래는 그냥 마지막으로 만들어본 예제입니다.

var fruits = [
    "사과",
    "오렌지",
    "키위",
    "수박"
]

console.log(fruits)

var ranNumber =Math.floor(Math.random() * 3)
console.log(ranNumber)
console.log("내가 지금 먹고 싶은 과일은 ? " + fruits[ranNumber])



6. 조건문



 조건문이란 참(true) 혹은 거짓(false) 와 같은 Boolean 데이터형을 통해 동작하는 것을 조건짓는 역할을 하는 수행문 입니다.

Boolean 이란? Boolean 은 자료형으로 true, false 값을 가지는 자료들을 말합니다. 이러한 boolean 형 자료형은  true, false 와 같이 직접적으로 데이터를 넣을 수도 있지만 비교 연산자를 통해 결과를 가져오는 것도 가능합니다.

* 자세한 설명은 후에 다른 포스트에서 해드리겠습니다. 궁금하시면 'Boolean(불린) 자료형' 이라고 구글에 검색 하시면 됩니다.

예를 들면 

console.log( 1 == 1 ) # true
console.log( 1 == 2 ) # false
console.log( 1 != 1 ) # false
console.log( 1 != 2 ) # true



위와 같이 비교연산자 를 통해 결과가 true, false 와 같은 boolean 자료형이 나온 것을 확인 하실수 있을 것입니다.

이제 조건문은 이러한 비교연산자의 결과를 이용하는 것인데요.

간단히 코드를 알려 드리면

var state = [true, false]
var ranNumber =Math.floor(Math.random() * 2)
console.log(ranNumber)
if(state[ranNumber]){
    console.log("Logger는 바보다.")    
}else{
    console.log("Logger 바보 아니다!")    
}



위의 코드에서는 비교연산자를 넣지 않고 Boolean 을 state 배열( Array ) 에 넣어 결과를 출력 하였지만 배열에 따른 결과 Boolean 그러니까 true, false 를 통해 판단 되어 출력 되는 것을 확인 할 수 있습니다.


7. 반복문



 반복문은 말그대로 같은 행동을 반복 하기위한 수행문 입니다. for, while, foreach 등이 있는데 여기서는 가장 기초적인 for 의 예제만 한번 봐보겠습니다. * 자세한건 후에 다른 포스트에서..

for(var idx = 0; idx < 10; idx++){
    console.log("나는 반복해서 출력하지!! - " + idx)
}


간단히 설명 드리면 for 는 ( 초기화; 조건; 반복 후 실행 코드 ) 로 구성 되어 있으며

위의 코드에서는 


1.  var idx = 0 을 통해 초기화 

2. idx 가 10 보다 작다면 내용을 계속 수행

3. console.log( "나는 반복해서 출력하지!! - " + idx ) 를 실행

4. 실행 후 idx++  ( ++  는 1을 더해주는 역할을 하는 증감 연산자 ) 를 하도록 하는 수행문 입니다.
2. idx 를 다시 10 과 비교 ...

처음 0 이 들어가고 0 이 10 보다 작으니 '나는 반복해서 출력하지!! - 0' 을 출력하게 됩니다. 그 후 idx++  를 통해 1로 만들어 주고 idx 의 1 이 아직 10보다 작다는 것을 확인 다시 '나는 반복해서 출력하지!! - 1' 을 출력하게 됩니다.  




 후에 제가 사용하는 프로그램 언어들을 이용하여 세부적으로 설명하겠지만 위의 내용들이 제가 개인적으로(?) 생각할 때 프로그램을 구성하는 가~장 기초적인 단위들의 내용 들입니다. 물론 더욱 세부적으로 나눈다면 엄청나게 나올 수 있지만 일단 여기서는 이 정도에서 마무리 짓도록 하겠습니다.


반응형