c언어28 프레임 워크란?? 개발을 하며 많이 듣게될 단어인 프레임 워크에 대해서 알아보도록 하겠습니다. 어떠한 일을 함에 있어 일정한 틀이나 규칙없이 자유롭게 일을 할 수 있다면 그 나름대로의 장점은 있겠지만 만약 그 일을 누군가가 시행착오 끝에 해결할 수 있는 틀을 만들어놓았다면 굳이 처음부터 시행착오를 겪으며 일 처리를 할 필요가 없겠죠? 이렇게 어떠한 목적에 맞게끔 틀이나 규칙을 만들어 둔 것이 프레임 워크입니다. IT개발 쪽에서 프레임 워크라고 한다면 개발 목적에 맞는 라이브러리들을 모아둔 것이라고 볼 수 있습니다. 라이브러리 역시 따로 포스팅 하겠지만 특정 기능을 재사용하기 편하게 모아놓은 코드 집합이라고 보시면 되겠습니다. 게임 개발을 예로 들어 게임을 만들기에 적합한 프레임 워크를 사용한다면 개발 시간이 대폭 줄어들게.. 2021. 8. 15. c#_38 콜렉션 Collection : 큐 Queue<T> 이번 포스팅에선 자료구조 콜렉션(Collection) 중 큐(Queue)에 대해서 알아보도록 하겠습니다. 지난 포스팅에서의 스택과 비슷하지만 큰 차이라면 선입선출이라는 것입니다. 스택의 경우 늦게 들어온 데이터가 먼저 나가는 선입후출의 구조이지만 큐의 경우 먼저 들어온 데이터가 먼저 나가는 선입선출입니다. 스택과 마찬가지로 System.Collections.Generinc 라이브러리가 추가되어있어야 합니다. 저장하고 싶은 자료형을 명시하고 큐를 생성합니다. 이후 Enqueue메소드를 사용해 데이터를 저장합니다.스택과는 다르게 선입선출이므로 먼저 저장된 데이터부터 출력이 되는 것을 볼 수가 있습니다.Dequeue메소드를 사용하면 저장된 데이터 중 가장 먼저 저장된 데이터먼저 큐에서 제거됩니다.. 2021. 8. 5. 디버깅(디버그)이란 무엇인가?? c++이든 c#이든 그 외 여타의 프로그래밍 언어를 공부하신다면 꼭 들어보셨을 단어 디버깅(디버그). 코드를 작성하는 것만큼 굉장히 중요한 것이 바로 이 디버깅 또는 디버그 작업입니다. 디버그는 벌레를 뜻하는 bug에 de접두사를 붙혀 debug 즉 벌레를 잡는다는 뜻으로 프로그래밍 중의 오류들을 bug라고 하고 이러한 오류들을 수정하는 것을 debug라고 합니다. 디버깅(디버그)은 프로그래밍중에 발생하는 논리적인 오류나 비정상적인 연산의 원인을 찾아내고 수정하는 작업을 뜻합니다. 이 디버깅 작업 과정이 없다면 프로그램이 정상적으로 작동하지 않겠죠? 그래서 보통 이 작업은 개발 막바지 단계에 이루어집니다. 물론 작업 중간에도 심각한 오류들은 이 디버깅을 통해 수정이 이루어집니다. 디버깅을 디버그라고도 하.. 2021. 7. 13. 절차 지향과 객체 지향 클래스에 대해 알아보기 전에 먼저 절차지향과 객체지향 프로그래밍에 대해서 간단히 알아보고 넘어가도록 하겠습니다. 절차 지향(Procedural Programming) 절차 지향은 컴퓨터의 연산 방식과 유사한 프로그래밍 기법으로 절차를 중요시하여 순서에 따라 연산을 수행합니다. 다만 그냥 절차만 중요시한다기 보단 데이터를 중심에 놓고 순차적으로 실행될 수 있도록 코드를 작성하는 것입니다. 컴퓨터의 연산 처리 방식과 유사해 속도가 빠른 것이 큰 장점입니다. 연산의 순서가 정해져 있다보니 일부만 수정하는 것이 어렵습니다. 특히 큰 프로젝트에선 조금의 수정만으로도 프로젝트 전체 코드를 손봐야하는 경우가 생기기도 하므로 주의를 요해야 합니다. 객체 지향(Object-Oriented Programming, OOP).. 2021. 7. 5. c#_29 배열:Array2 다차원 배열 지난 배열 포스팅에 이어 다차원 배열에 대해서 알아보겠습니다. 다차원 배열은 기존의 1차원의 배열 즉 가로 또는 세로(보통은 가로로 표현)로 한 줄로만 구성된 배열이 아닌 가로와 세로를 포함한 그 이상의 배열로 구성된 것을 말합니다.아래의 그림을 통해서 알아보도록 하겠습니다.그림에서 보듯 1차원은 일반 주택을 나열한 것에 비유할 수 있고, 2차원 배열은 아파트에 비유할 수 있겠습니다.물론 2차원 이상의 다차원 배열도 구성이 가능합니다. 보통 2차원 이상은 잘 쓰이지 않지만요...아래의 그림은 4,6의 크기를 가진 2차원 배열입니다. 4행 6열의 2차원 배열이죠.각 요소에 접근하기 위한 방법은 1차원 배열과 비슷합니다. 다만 두 개의 인덱스가 필요합니다. 만약 1행 2열에 있는 요소(값)을 가져오고 싶다면.. 2021. 6. 9. c#_28 배열 Array 1 배열 Array에 대해서 알아보겠습니다. 배열은 데이터의 집합체라고 할 수 있습니다. 변수는 하나의 데이터(값)만을 담을 수 있지만 배열은 여러 개의 데이터를 담을 수 있습니다. 다만 여러가지의 데이터 타입을 담는 것은 아니고 하나의 데이터 타입만 담을 수 있습니다. 아래의 그림을 통해 알아보겠습니다.그림에서 보다시피 여러 종류가 아닌 하나의 종류만 담을 수 있도록 상자에 주기를 한 것 처럼 하나의 데이터 타입만을 담을 수 있습니다. 그리고 상자의 크기만큼 사과를 담을 수 있듯 배열의 크기만큼 데이터를 담을 수 있습니다. 물론 위 그림에서처럼 사과의 색이나 사이즈 등이 다른 것처럼 데이터 타입은 같지만 그 값은 다를 수 있습니다.위 배열은 int 정수형 타입을 담을 수 있는 6크기의 int 배열입니다. .. 2021. 6. 1. c#_27 멤버 변수와 지역 변수 멤버 변수와 지역 변수에 대해 알아보도록 하겠습니다. 변수는 이미 포스팅을 했으니 변수에 대해 궁금하시다면 그 부분을 참고해주세요. https://ks-factory.tistory.com/7?category=974205 c#_01 변수??변수는 말그대로 변하는 수. 어떠한 값이 고정된 것이 아니라 바뀔수 있는 값이 변수입니다. 프로그래밍 언어에선 변수를 값을 담아두는 상자로 표현하기도 합니다. 상자에 주기를 함으로써 어ks-factory.tistory.com멤버 변수먼저 예제를 통해 알아보겠습니다.멤버 변수는 클래스의 한 요소로서 클래스의 내부에 선언을 합니다. 클래스 내에서는 물론이고 public 접근 한정자에 따라 어디서든 사용될 수 있습니다. 클래스가 생성되며 함께 메모리에 담겨있다가 클래스가 삭제.. 2021. 5. 31. c#_26 메소드:Method(함수) 3 매개변수 지난 포스팅에 이어 메소드 중 매개변수에 대해 알아보도록 하겠습니다. 저 역시도 이해하기 힘들었던 것이 이 매개변수인데 사실 변수처럼 생각하시면 편할 것 같습니다. 아래 예제를 통해 더 알아보도록 하겠습니다.위 예제에서 보듯 메소드 매개변수에 값을 입력하게 되면 메소드가 호출되면서 지역변수가 생성이 되고 그 변수에 입력한 값이 대입되게 됩니다. 그 이후 메소드내에서 생성된 변수를 활용해 연산을 처리하고, 메소드를 빠져나가면서 생성된 변수가 삭제됩니다. 다른 예제를 한번 더 살펴보도록 하겠습니다. 위 예제는 보통 많이들 헷갈려 하시는 부분입니다. 선언한 변수의 이름과 Add메소드의 매개변수의 이름만 같을 뿐 다른 변수입니다. 그래서 a와 b 변수에 대입된 값을 각각 메소드의 매개변수 a와 b에 (.. 2021. 5. 28. c#_25 메소드:Method(함수) 2 메소드 오버로딩 메소드 오버로딩(Method Overloading)에 대해 알아보도록 하겠습니다. 지난 포스팅에서 함수의 기본적인 구성에 대해서 알아봤습니다. 그 중 함수의 이름을 중복하여 사용할 수 없다는 내용이 있었습니다.(물론 같은 클래스내에서 중복 불가) 아래의 예제를 통해 더 알아보도록 하겠습니다.위 예제에서 int 정수의 더하기 연산과 float 실수의 더하기를 하는 함수를 만들었는데 위의 데이터 외에 다른 데이터 형식 또는 2개 이상의 값을을 더하는 연산을 하는 함수를 만들고자 한다면 다른 이름으로 기능과 데이터 형식을 표현해야하는 번거로움이 있습니다. 하나의 기능을 하지만 매개 변수의 형식이나 갯수가 여러 개 일 경우 메소드 오버로딩을 통해서 이러한 번거로움을 해소할 수 있습니다. 2021. 5. 27. c#_23 제어문:continue 제어문 중 하나인 continue에 대해서 알아보겠습니다. 앞서 살펴봤었던 break의 경우 반복문을 중단하고 탈출하는 역할을 했었는데 이 continue의 경우 반복문을 중단하거나 탈출하는 것이 아닌 반복문내에서 continue가 실행되면 그 이후로 실행되는 코드들을 실행하지 않고 건너뛰어 다시 반복을 실행합니다.조건문에 따라 i의 값이 4가 된다면 continue를 만나 그 이후의 코드들은 실행이 되지 않습니다. 결과에서 보듯 총 6회가 반복되도록 설정한 for문이지만 count변수를 더해주는 코드를 continue로 인해 실행하지 못해 count의 값은 5가 되었습니다. break와는 다른 역할을 하지만 조건을 통해 반복문을 제어할 수 있는 제어문 중의 하나가 바로 이 continue입니다. ht.. 2021. 5. 25. c#_22 제어문:break 제어문에 대해서 알아보도록 하겠습니다. 제어문 중 break는 반복문이나 switch문에서 사용되는 것으로 break의 의미처럼 반복문이나 switch문을 끝내는 역할을 합니다. 특히 무한히 반복되는 for문이나 while문에서 꼭 필요한 것이 이 break입니다. 이 break를 통해 반복문의 종료시점을 지정하지 않는다면 무한히 반복문이 반복되는 무한루프가 발생할 수도 있습니다. 이 무한루프로 인해 프로그램이 비정상적으로 종료되거나 컴퓨터 자체가 멈추는 등의 여러 오류들이 발생할 수 있으므로 각별히 주의해야 합니다. 위 예제에서 보듯 while문의 조건이 참이므로 반복문이 무한히 반복됩니다. 그대로 둔다면 무한루프에 빠져 비정상적인 오류들이 발생하겠지만 조건문을 통해 종료시점을 만들고 그에 따른 실행코.. 2021. 5. 24. c#_21 반복문 중첩 조건문의 중첩처럼 반복문 역시 중첩하여 사용할 수 있습니다. 반복문 영역 내에 반복문을 포함시킴으로써 반복문을 중첩하여 추가로 활용할 수 있습니다. for문에 for문을 중첩하거나 for문안에 while문 및 다른 반복문 역시 중첩이 가능합니다. 당연히 반대로도 가능합니다.위 이미지에서 보듯 반복문안에 반복문을 중첩해서 사용합니다. 2중 중첩을 넘어 3중, 4중도 가능합니다. 물론 자주 쓰이진 않겠지만요. 보통 2중첩 반복문은 자주 쓰입니다. for문을 예로들어 2중첩을 통해 두 변수를 더해 보았습니다. 바깥 for문의 횟수가 2회이고 내부의 for문의 횟수가 5회입니다. 그렇다고 총 7회의 반복이 일어나는게 아니라 바깥 for문에 의해 반복이 한번 일어날 때 내부의 for문이 5회 반복됨으로 예제의 반.. 2021. 5. 21. 이전 1 2 3 다음 반응형