배우고 적용하는 스타일을 크게 2가지로 나눈다면 이렇게 나눌 수 있을것 같다.
전반적으로 세세한 항목까지 이해 및 파악 후, 목표를 달성하기 위해서 기존의 정보를 이용해 narrow down 하는 방법.
제일 작은 단위에서부터 일단 시작. 그리고 수시로 방향을 바꿔가면서 지식을 넓혀가며, 목표를 달성하는 방법 (Bottom up 방법 또는 린한 프로세스 방법).
두 가지의 방법에는 각각의 장단점이 있다고 생각한다.
1번의 방법은 시간은 초기에는 시간이 오래 걸리나, 큰 그림에서 방향성을 알아 갈 수 있으며, 임계점을 넘어가면 빠르게 다양한 일에 적용 할 수 있는 장점이 있다.
2번의 방법은 결과물의 피드백이 빠르다. 그리고 계속 방향을 바꿔가며 수 많은 trial and error를 얻어가기 때문에 초기 성장폭이 크다. 그래서 빠르게 결과물을 만들어 내는데 적합한 방법이라고 생각한다. 하지만 큰 그림에서 방향성을 바라보기에는 적합하지 않을 수 있다.
문제는...
나의 배우는 스타일은 1번이다. 왜 이렇게 됐는지 전반적인 것들, 세세한 항목을 이해하면서 소화하고 탄탄히 기반을 만들기를 선호한다. 그리고 그 기반을 이용해서 수 많은 조합을 만들고 새로운 것들에 응용하는것을 좋아한다.
하지만.. 지금은 타깃 목표를 달성하기에 충분한 시간이 없으니 방식을 바꿔보려 한다.
일단 이해 못해도 만들고 보고 써보고 부딪혀 보자.
BOTTOM UP! & BOTTOMS UP!
그걸 가능하게 하는 코드는 다음과 같다.
using System;
class Program
{
static void Main()
{
// 1. 사용자로부터 이름을 입력 받기
Console.Write("Enter your name: ");
string name = Console.ReadLine();
// 2. 환영 메시지 출력
Console.WriteLine("Hello, {0}!", name);
}
}
이 코드를 실행 하면 이렇게 나온다!
그리고 이름을 입력하면?
친절하게도 나에게 인사를 해주는 컴퓨터.. 크흑..
그럼 이게 어떻게 이렇게 결과값을 내는지 천천히 보자
이 부분은 콘솔에 텍스트를 출력하는 역할을 함. 사용자에게 이름을 입력하라는 메시지를 표시. 라는건 알겠는데..
Console과 write는 뭐고 그사이에는 .을 왜 쓰는거고, () 는 왜 하는지 그리고 왜 "" 표시를 하는거고 ;로 왜 끝내는거지?
여러 ???? 가 따라온다..
(1) Console는 .NET Framework에서 제공하는 클래스이며 콘솔 기반의 입출력을 담당함.
(2)Write 메서드는 화면에 텍스트를 출력하는 역할을 함
(3). 은 Console 컨테이너 안에 들어가는 역할. 즉 Console.write는 Console 안에 있는 write라는 메서드를 쓴다는 뜻.
(4) ()는 write의 메서드에 전달되는 인자를 감싸는데 사용.
(5) 메서드의 인자(argument)는 메서드에 전달되는 값 또는 데이터를 나타냄. 메서드는 실행될 때 입력된 데이터를 기반으로 특정 작업을 수행하거나 결과를 반환할 수 있음.
예를 들어, 위의 코드에서는 메서드의 인자는 Enter your Name: 임.
(6) "" 쓰는 이유는 메서드의 인자의 형태가 문자열(string)으로 되어있는데 인자의 형태가 문자열이다 라고 알려주는 도구가 ""임. "" 사이에 쓰면 컴터가 이 내용을 문자열로 받아들임.
(7) 세미콜론 (;)은 C#에서 문(statement)의 끝을 나타냄. 모든 문은 세미콜론으로 끝나야 함.
(8) string name = Console.ReadLine();: 사용자로부터 한 줄의 텍스트를 입력받아 name 변수에 저장. Console.ReadLine() 메서드는 사용자가 엔터 키를 입력할 때까지의 텍스트를 읽는다!
(9) Console.WriteLine("Hello, {0}!", name);: 입력받은 이름을 사용하여 환영 메시지를 출력함. {0}은 나중에 채워질 변수를 나타낸다. 이 경우에는 name 변수가 {0} 자리에 들어감.
하나를 써도 이렇게 의문점이 많으니 으엉..
그래도 아직도 뭔가 명쾌하지 않다..
그래서 일단 3일차에 배운것을 연계해서 추가로 정리.
네임스페이스(Namespace)는 C#과 같은 프로그래밍 언어에서 사용되는 논리적인 컨테이너.코드의 요소들을 그룹화하는 데 사용됨.
네임스페이스는 코드의 이름 충돌을 방지하고 코드를 조직화하여 유지보수를 용이하게 만드는 데 도움을 주기 위해서.
정리하면, 네임스페이스는 클래스를 논리적으로 그룹화하고 이름 충돌을 방지. 네임스페이스는 프로그램의 일부분에 대한 범위(scope)를 지정하는데 사용되며, 이를 통해 동일한 이름을 가진 여러 요소들이 서로 충돌하지 않도록 함.
여기서 사용하는 System 네임스페이스는 C# 언어에서 기본적인 데이터 형식, 입출력, 예외 처리 등과 관련된 클래스들을 포함하고 있음. using System; 문을 사용하면 프로그램에서 System 네임스페이스의 클래스들을 사용할 수 있게 됨.
클래스는 객체를 생성하기 위한 청사진(blueprint)이나 템플릿. 관련된 데이터와 메서드의 집합을 포함함. 데이터와 해당 데이터를 다루는 메서드를 하나의 단일한 단위로 묶어주는 역할을 함.
예를 들어, 서동차를 모델링한다고 가정하면, 자동차 클래스에는 브랜드, 모델, 속도 등의 데이터와 주행, 정지, 가속 등의 메서드가 포함함
class Car
{
// 데이터 멤버
public string Brand;
public string Model;
public int Speed;
// 메서드 종류
public void Accelerate()
{
Speed += 10;
}
public void Brake()
{
Speed -= 5;
}
}
메서드는 클래스 내에서 특정 작업을 수행하는 코드 블록을 나타냄. 클래스의 행동을 정의하며, 클래스에 속한 데이터를 조작하거나 다양한 작업을 수행 함. 위의 Car 클래스에서 Accelerate와 Brake는 메서드로, 각각 속도를 증가시키고 감소시키는 역할을 함.
이걸 모르니 코드를 보면 이게 뭔소리야 하지.. ㅋㅋㅋ 이젠 이해를 하기 위해서 정리해본다
연산자 | 예시 | 설명 |
---|---|---|
+= | x+=y; | x=x+y; |
-= | x-=y; | x=x-y; |
*= | x*=y; | x=x*y; |
/= | x/=y; | x=x/y; |
%= | x%=y; | x=x%y; |
연산자 | 설명 |
---|---|
++ | 1 증가 |
-- | 1 감소 |