과학

자바로 프로그래밍에 입문할래요: 0.0. 여는 글, 1.1. 첫 프로그램 작성하기

안녕, 난 스물넷 지방대 학부생 개붕이야.

개인적으로 자바를 다시 되짚어도 볼 겸, 영어 공부도 할 겸 책을 하나 내 입맛대로 번역해서 여러분들에게 공유해볼까 해.

이 글은 프린스턴 대학교에 계시는 로버트 세지윅 교수님의 <Introduction to Programming in Java>라는 책을 기반으로 작성되었어.

 

이 글은 프로그래밍에 대해 아무런 지식이 없는 사람들을 타겟으로 한 글이야.

보통 자바를 배우기 이전에는 C나 C++를 선수로 배우기 때문에, 간단하지만 중요한 개념들을 지나치는 경향들이 있잖아?

따라서 여러분들이 자바를 알든 모르든 간에, 이 글에서 배울 수 있는 점들이 충분히 있을 것이라 생각해. 적어도 나는 그렇게 느꼈어.

그리고 우리가 보통 자바를 배우는 방식과는 약간 다른 점도 많아. 프로그램을 바라보는 관점도 트이게 하는 것 같아.

 

이 글을 쓰는 현재 시점에서는, 챕터 1 기본 요소들에 대한 설명은 끝냈고 챕터 2 함수(메소드)에 대해서 쓰고 있는 중이야.

글쎄, 연재를 끝까지 다 할 수 있지는 않겠지? 나름 동기부여 하려고 여기에도 이렇게 올리는 거긴 해.

따라서 최대한 느린 템포로 연재할 생각이야. 일주일에 하나 정도? 가늘고 길게 가보자구.

나중에 영상으로도 정리해보는게 2차적인 목표여서, 이해가 안 된다거나 애매한 부분에 대한 질문이나 정확하지 않은 부분에 대한 피드백은 언제나 환영이야. 설명이 어려운 부분이 있으면 언제든지 말해줘.

기본적으로 번역을 해서 작성된 것이기 때문에, 좀 딱딱하고 재미 없을까봐 걱정이야.

 

하여튼 시작해보자구.

 

=======================================

 

서적

  본 강의는 Princeton University의 Robert Sedgewick 교수님이 저술한 <Introduction to Programming in Java - An Interdisciplinary Approach>를 기반으로 합니다. 

 

여는 글

  프로그래밍은 물리학, 공학, 수학, 컴퓨터 과학 등 수많은 분야에서 굉장히 다양하게 활용됩니다. 하지만 이들은 각자 프로그램을 다루는 방법이 다릅니다. 물리학자는 시뮬레이션을 구동하는 프로그램을 원할 것이고, 공학자는 미분 방정식의 해를 구하는 프로그램을 원할 것이며, 컴퓨터 과학자는 특정한 프로그래밍 환경의 지식을 요구할 것입니다. 

 

  우리가 프로그래밍을 배울 때는 보통 특정한 분야만을 고려하여 배웁니다. 수학을 배우는 학생들은 매트랩을 사용해봤을 것이고, 업무 자동화가 필요한 직장인은 파이썬을 추천받았을 것입니다. 하지만 이는 진정한 프로그래밍의 학문적 접근이 아닙니다. 이 강의에서 우리는 새로운 컴퓨터 환경에 적응하고 다양한 응용 분야에서 컴퓨터를 효과적으로 이용하기 위해 필요한 지식과 경험을 다뤄볼까 합니다.

 

  또한 프로그래밍이 그다지 어렵지 않다는 것과, 컴퓨터의 힘을 활용하는 것이 상당히 보람차다는 것을 강조하고 싶습니다.

 

 

웹사이트

 

  이곳에서 서적의 원문을 직접 볼 수도 있고, 작성된 예제 프로그램들을 가져다 쓸 수도 있습니다. 

 

 

목차

  본 강의는 4개의 단계로 프로그래밍의 기초를 배웁니다. 이는 다음과 같습니다: 
  1. 기초 요소
  2. 함수
  3. 객체지향 프로그래밍
  4. 알고리즘

 

=======================================

 

 서론

  첫번째 챕터의 목표는 프로그래밍이 시나 수필을 쓰는 것보다 더 쉽다는 것을 여러분들에게 납득시키는 것입니다.

 

  글을 쓰는 것은 어렵습니다. 우리는 학교에서 항상 국어 수업을 들어왔는데도, 작문은 여전히 어렵죠. 반면 프로그램은 몇 안 되는 문장만으로도 만들 수 있습니다. 또, 흥미롭지만 접근하기 쉽지 않았던 문제들을 해결하는 데에도 도움이 됩니다. 이 챕터에서는 흥미롭고 다양한 프로그램들로 프로그래밍의 구성 요소들을 배움으로써 자바 프로그래밍의 입문을 시작할 것입니다.

 

  이 강의에서 여러분은 자바 언어를 배울 것입니다. 이는 외국어를 배우는 것보다 더 쉽습니다. 우리가 들어본 수많은 프로그래밍 언어들의 차이는, 사실 수십 개도 안 되는 단어들과 문법 따위로 규정되는 것이 전부입니다. 우리가 이 강의에서 다루는 것들은 모두 C나 C++, 그 외의 많은 언어들로 표현될 수 있습니다. 

 

  허나 명심할 것은, 우리는 프로그래밍을 배우는 것에 초점을 두고 있지 자바의 세부사항을 배우는 것에 초점을 두고 있지 않다는 것입니다. 다만 자바는 널리 사용되므로, 자바로 프로그래밍을 공부하면 차후 많은 프로그램을 익숙하게 작성할 수 있을 것입니다. 그리고 자바를 배우면 C와 같은 저레벨 언어부터 매트랩같은 특수 언어까지도 배우기 쉬울 것이라 장담합니다.

 

 

 

첫 프로그램 만들기

  이번 차시는 여러분이 간단한 프로그램을 통해 자바 프로그래밍의 세계로 첫걸음을 딛는 과정입니다.

 

  자바 시스템은 여러분이 흔히 사용하고 있는 한글, 워드, 엑셀이나 인터넷 브라우저와 같이 응용 프로그램입니다. 따라서 자바와 IDE를 컴퓨터에 설치해야 합니다. IDE는 설치하지 않아도 프로그래밍을 할 수 있으나, 좀 더 쉽고 편하게 배울 수 있으므로 설치를 권합니다.

 

  설치 방법은 다음 포스트를 참고하세요. 자바를 프로그래밍 할 수 있는 통합개발환경(IDE)는 IntelliJ, Eclipse, VS Code 순으로 점유율이 높습니다. 필자는 Eclipse를 사용하고 있으므로, Eclipse 설치 방법을 공유 합니다. 다른 IDE를 선택하더라도 문제가 되지 않으며, 프로그래밍을 배우는 수준에서 상술한 IDE들의 기능적 차이는 없다고 봐도 무방하니 취향 껏 선택하시기 바랍니다.

 

자바(Java) 설치하기 및 환경변수 설정하기

Java 통합개발환경(IDE), Eclipse 설치하기 및 자바 프로젝트 생성하기

 

 

  자바 프로그래밍의 과정을 3단계로 쪼개면, 다음과 같습니다.

 

  1. MyCode.java와 같은 파일 이름으로 프로그램 만들기.
  2. 터미널 윈도우에서 'javac MyCode.java' 를 입력해 프로그램 컴파일 하기
  3. 터미널 윈도우에서 'java MyCode' 를 입력해 프로그램 실행하기.

 

  하지만 2번의 경우 IDE에서 자동으로 해주며, 3번의 경우도 IDE에서 버튼 하나만 누르면 자동으로 실행되고 결과를 볼 수 있습니다. 따라서 여러분이 집중해야 할 것은 1번의 과정입니다.

 

  간단히 짚고 넘어가자면, 여러분이 사용하는 프로그래밍 언어는 사실 컴퓨터가 알아들을 수 없습니다. 사람이 프로그램을 쉽게 만들 수 있게 도와줄 뿐이죠. 따라서 그 사이에는 사람 언어를 기계 언어로 바꿔주는 번역가가 필요합니다. 그런 과정을 '빌드'라고 하며, '컴파일'은 빌드 과정 중 하나입니다.

 

  

 

 

 

프로그램 만들기

  자바 프로그램은 파일 이름이 .java로 끝날 뿐, 단순히 글자를 나열한 것 그 이상 그 이하도 아닙니다. 마치 이 글처럼 말이죠. 여러분은 IDE 대신 메모장을 켜서 프로그래밍을 해도 전혀 문제가 되지 않습니다. 심지어 A4 용지를 꺼내서 펜으로 직접 코드를 써도, 그것은 여전히 프로그램으로서 유효합니다. 그냥 편지를 쓴다거나, 컴퓨터와 채팅을 하는 것이라고 생각해도 무방합니다. 여기서 명심해야 할 건 단 하나, 자바 문법에 맞게 글을 써야한다는 것입니다.

 

 

 

프로그램 컴파일 하기

  프로그래밍 언어는 컴퓨터가 이해하기 쉽게 만들어졌을 것 같지만 사실은 여러분들, 즉 프로그래머가 이해하기 쉽게 만들어진 언어들입니다. 컴파일러는 자바 언어를, 좀 더 컴퓨터로 실행하기 적합한 언어로 번역해줍니다. 자바 컴파일러의 경우 .java 확장자를 지닌 파일(프로그래머가 이해할 수 있는 파일)을 입력으로 받아서, .class 확장자를 지닌 파일(컴퓨터가 이해할 수 있는 파일)을 출력으로 내놓습니다. IDE에선 프로그램 실행 시 자동으로 이를 처리해주며, 직접 해보고 싶다면 윈도우의 경우 CMD에서 'javac <filename>' 명령어를 사용하면 됩니다.

 

 

 

프로그램 실행하기

  프로그램을 컴파일 했다면, 이젠 실행할 수 있습니다. 여러분의 프로그램이 컴퓨터의 제어권을 가져가는 멋진 순간입니다. 컴퓨터가 여러분의 지침을 따른다고 말하는 것이 더 정확하겠네요. 자바 프로그램은 자바 가상 머신(JVM, Java Virtual Machine) 내에서 구동됩니다. 따라서 이 프로그램을 더블클릭만으로 실행하긴 힘들고 IDE에서 실행 버튼을 누르거나, 직접 해보고 싶다면 윈도우의 경우 CMD에서 'java <filename>' 명령어를 사용하면 됩니다.

 

 

 

 

프로그램 1.1.1: Hello, World

 
public class HelloWorld 
{
	public static void main(String[] args) 
	{
		System.out.print("Hello, World");
		System.out.println();
	} 
}
% javac HelloWorld.java
% java HelloWorld
Hello, World

 

  <프로그램 1.1.1>은 완벽한 자바 프로그램의 예제입니다. 이름은 <HelloWorld>이며, <HelloWorld.java> 파일에 프로그램 코드가 있습니다. 이 프로그램의 유일한 행위는 터미널 윈도우에 메시지를 출력하는 것입니다. 이후에 저기서 쓰인 자바 용어들을 점진적으로 배워나갈 것이지만, 지금 당장은 중요치 않습니다.

 

  <프로그램 1.1.1>을 프로그래머답게 설명하자면 다음과 같습니다. <프로그램 1.1.1>은 <HelloWorld>라는 이름의 단일 클래스로 이루어져 있으며, 단 하나의 메소드인 'main()'을 갖고 있다. 이 메소드는 다른 두 메소드 'System.out.print()'와 'System.out.println()'을 활용한다.

 

  2.1절에서는 여러 개의 메소드를 정의하는 클래스들에 대해 배울 것이며, 우리가 작성할 모든 클래스는 전부 같은 구조를 갖습니다. 일단 지금은 '클래스'는 '프로그램'과 같다고 생각하세요.

 

  메소드라 함은 다음 그림에서 'main() method'가 가리키고 있는 부분을 이야기 하는 용어입니다. 메소드의 첫째 줄에는 이름과 그 외 정보들을 적습니다. 그 후엔, 끝에 세미콜론이 찍힌 구문들을 적고, 이를 중괄호로 둘러쌉니다. 

 

  배우다보면, 프로그래밍의 의미는 클래스 이름을 정하고 그것의 main() 메소드에 구문들을 넣는 것이라고 생각할 수 있습니다. 앞으로 아주 다양한 프로그래밍의 구문들을 배워갈 것입니다. 벌써 터미널에 메시지를 출력하는 구문을 배운 것이고요.

 

 

 

 

  자바 프로그램을 실행하면, 시스템은 여러분이 정의한 클래스 안에 있는 main() 메소드를 호출합니다. 그리고 구문(statements)들을 위에서부터 아래로 순서대로 실행합니다. 따라서 <HelloWorld>를 실행하면, 시스템은 main() 메소드를 호출하고, 두 개의 구문이 순서대로 실행될 것입니다. 첫째 구문은 System.out.print()이며, 큰따옴표 안에 있는 문장을 출력하는 구문입니다. 두 번째 구문은 System.out.println()이며, 줄바꿈을 하는 구문입니다.

 

  1970년대부터, 프로그래밍 입문자의 첫 프로그램은 언제나 "Hello, World"를 출력하는 프로그램을 만드는 것이 전통이었습니다. 따라서 여러분들은 반드시 <프로그램 1.1.1>을 만들고, 컴파일하고, 실행해보셔야 합니다. 이는 프로그래밍을 배우는 수많은 사람들이 걸어온 발자취를 따라가는 영광스러운 일입니다. 터미널에 무언가를 출력하는 것이 그다지 흥미롭진 않을 수 있겠지만, 우리가 프로그램에서 필요로 하는 아주 기본적인 능력 중 하나는 이 프로그램이 어떻게 기능하는지 알아볼 수 있는 것입니다.

 

  배우다보면, 우리의 프로그램들은 전부 <프로그램 1.1.1>과 같을 것입니다. main() 안의 구문들이 바뀐다는 것을 빼고요. 따라서 빈 페이지에서 프로그램을 작성하는 것보다는, <HelloWorld>를 복사해서 활용하는 것도 좋을 것입니다.

 

 

 

오류(Error)

  만약 <프로그램 1.1.1>을 작성해보았다면, 벌써 오류를 접해봤을지도 모르겠네요. 오류를 쉽게 설명하자면, 사람의 잘못에 의해 일어나는 프로그램의 이상 행동입니다. 오류는 여러분이 프로그래밍을 하는 동안에는 끊임 없이 나타날 것입니다.

 

  편집하고, 컴파일하고, 실행하는 것 사이의 경계는 흐릿해지기 쉽습니다. 여러분들은 프로그래밍을 배울 때, 저 경계를 뚜렷히 해야합니다. 불가피하게 나타나는 오류들을 잡아내기 더 쉬울테니까요. 문자 메시지를 보낼 때 오타를 수정하는 것처럼, 대부분의 오류는 수정하거나 피할 수 있습니다.

 

  컴파일 에러는 프로그램을 컴파일 할 때 발생하는 오류입니다. 다른 오류로는 런타임 에러가 있습니다. 이는 프로그램이 실행되면서 발생하는 것들입니다. 버그라고 말하기도 하는 오류들은 굉장한 골칫거리들입니다. 여러분이 습득하게 될 기술 중 하나는 오류를 찾아내는 것입니다. 신중하고 조심스럽게 코딩하는 것은 많은 오류의 범람을 피할 수 있습니다.

 

 

 

 

프로그램 1.1.2: Using an argument

 
public class UseArgument 
{
	public static void main(String[] args) 
	{
		System.out.print("Hi, ");
		System.out.print(args[0]);
		System.out.println(". How are you?");
	}
}
% javac UseArgument.java
% java UseArgument Alice
Hi, Alice. How are you?
% java UseArgument Bob
Hi, bob. How are you?

 

 

 

 

입출력

  우리는 우리 프로그램에 무언가를 입력하고 싶습니다. 결과를 출력할 수 있는 어떤 데이터들 말이죠. 프로그램에 데이터를 입력하는 가장 간단한 방법은 <UseArgument>(프로그램 1.1.2)에 나와있습니다. <UseArgument>가 실행될 때마다, 이 프로그램은 해당하는 인자를 읽어 터미널에 메시지의 일부로 다시 출력합니다.

 

  프로그램에 인자를 입력하는 방법에 대해서는 다음 포스팅을 참고하세요.

 

CMD 및 Eclipse에서 인자(Argument)와 함께 자바 프로그램 실행하기

 

  인자를 전달하는 메커니즘에 대해서는 차후에 설명할 것이며, 지금 당장은 코드에 'args[0]'을 사용하는 것이 인자를 활용하는 방법이라고만 생각하세요.

 

  우리가 입력한 것을 프로그램이 다시 출력하는 것은 어찌 보면 별 것 아니라고 생각할 수 있지만, 프로그램의 가장 강력한 기능 중 하나는 사용자가 입력한 것에 대해서 그에 맞는 반응을 보이는 것입니다. <UseArgument>는 자바의 기본적인 프로그래밍 메커니즘을 대변하며, 수많은 계산 문제들을 해결할 수 있게 합니다.

 

 

 

  되돌아와서, 우리는 <UseArgument>를 통해, 문장(argument)을 다른 문장(terminal에 표시된 메시지)으로 대응시킬 수 있었습니다. 예를 들어 'Alice'를 프로그램에 넣으면, 'Hi, Alice. How are you?' 라는 문장이 나오게 됩니다. 이를 통해 우리는 자바 프로그램을 마치 입력 문자열을 출력 문자열로 바꾸는 블랙박스라고 생각할 수 있습니다. 가령, 자바 컴파일러는 한 문자열(.java 파일)을 이용해 다른 문자열(해당하는 .class 파일)을 만들어내는 것 그 이상 그 이하도 아닌 셈이죠.

 

  당분간 우리는 프로그램의 입출력을 위한 자료의 형태와 그 크기 등의 다양한 한계에 직면할 것입니다. 1.5절에서는, 입출력을 위해 어떻게 정교한 메커니즘을 이용하는지 알아볼 것입니다. 차후에 우리는 임의의 긴 입출력 문자열과 사운드나 그림 등 다른 유형의 데이터로 작업할 수 있게 될 것입니다.

 

끝.

21개의 댓글

2021.03.16

자바를 자바라

0
2021.03.16

좋은글 감사함다

0
2021.03.16

진짜 프로그래밍 입문하기 좋은건 vbs인듯.

0

와 얘네는 프로그램 자체가 클래스나 다름없네 ㅋㅋㅋㅋ

0
2021.03.17

객 체 지 향 조 아

0
2021.03.17

자바는 . . . . 이 너무 많아서 헷갈려...

자바스크립트도 좀 알려줘!!!

0
2021.03.17

자바는 항상 저 퍼블릭 스태틱 보이드가 거슬렸지

파이썬은 그런거없어서 좋았고

0
2021.03.18

잘 보았습니다

궁금한게 있다면 언제든 댓글달아주세요

0
2021.03.18

대학에서 자바가르치고 있습니다.

궁금한게 있다면 언제든 댓글달아주세요.

0
2021.03.19
@0살대마법사

JDK유료화되면 국내시장이 어케 되실것같나요 자바랑 스프링으로 밥빌어먹고살고있는데 다른걸 공부해야하나 고민중임

0
2021.03.20
@0살대마법사

귱금한게 자바 클래스 내에 main함수를 정의만 하고 호출하지 않았는데 왜 프로그램을 실행하면 main함수 내용이 자동으로 실행되는거야??

0
2021.03.20
@라프로익15년

프로그램을 실행한다는 것 자체가, 해당 클래스의 main을 호출하는 일이야.

예를 들어 너가 IDE에서 HelloWorld 프로젝트를 우클릭 해 Run을 하면, HelloWorld 프로젝트 내에 main이 존재하는 클래스를 찾아서 그 main을 자동으로 호출해줘.

 

이를 터미널 명령을 통해 수동으로 해보면 다음과 같은 거지.

javac HelloWorld.java (컴파일)

java HelloWorld (컴파일 된 HelloWorld 클래스의 main을 호출)

1
2021.03.20
@스비니

오 신기하다 무조건 main함수를 찾아서 실행하는구나 그럼 main함수는 왜 항상 문자열 리스트 String[] args를 인자로 받는거야?? main함수가 실행될 때 자동으로 인자에 넣어서 실행하는 문자열 리스트가 있는거임??

0
2021.03.20
@라프로익15년

0. 이전 이야기에 첨언하자면, 그래서 같은 프로젝트 내에 여러 클래스를 생성하고 각각 main을 구현하게 되면, 프로젝트를 실행할 때 IDE는 어떤 클래스의 main을 호출할건지 물어봐. 이는 main이 프로그램의 시작점 그 이상 그 이하도 아니라는 거지.

 

1. 어떻게보면 자바의 특징이라고도 할 수 있는데, main은 반드시 public static void이고 인자로 String 배열을 받아야만 해.

이는 자바에서 main을 규정하는 약속이라고 생각하면 편하고, 왜 굳이 String 배열입니까?라고 묻는다면..

 

2. 기본적으로 프로그램은 운영체제 안에서 돌아가. 실질적으로는 운영체제에게 자바 프로그램을 실행시켜줘! 하면 실행이 되는 거고, 자바 프로그램은 운영체제를 통해서 우리와 소통하지. 그 소통의 수단이 바로 IDE의 콘솔이나 윈도우의 CMD와 같은 터미널이야.

 

3. 보통 우리는 프로그램을 실행할 때, 어떤 옵션들을 주고 싶으면 터미널에 프로그램명을 입력하고 그 뒤에 옵션을 붙이거든. 예를 들면 java HelloWorld 라고 터미널에 입력한다면, 이는 java라는 프로그램을 실행하고, HelloWorld를 옵션으로 주는 셈이야. 옵션으로 받은 HelloWorld를 찾아서 실행해주는 거지.

마찬가지로 우리가 만드는 java 프로그램도 나만의 옵션들을 받으면 좋겠지? 그래서 main은 임의의 개수의 인자들을 무조건 받도록 설계되여 있어. 즉 단 하나의 문자열이 아니라, 여러 개를 받을 수 있도록 배열을 인자로 받는 거지.

 

4. 근데 이런 것들을 운영체제에선 보통 문자열로 관리해. 우리가 java 123 이라고 입력해도, 운영체제는 123을 정수가 아닌 문자열 ”123”으로 인식하는 거지. 따라서 편의 상 자바도 이런 인자들을 String 으로 받게 되는 거야.

 

내가 알기론 이래. 확실하진 않으니 혹 틀린게 있다면 전문가 개붕이들이 지적해주길.

2
2021.03.20
@스비니

오오 자세한 설명 고마워 ㅋㅋㅋ 커맨드로 실행할 때 옵션을 넣는 창구라고는 생각도 못했다

0
2021.03.20
@라프로익15년

글쓴게이가 잘 설명해줬네. JDK(Java Development Kit, 자바 개발 도구)을 설치하면 JRE(Java Runtime Environment, 자바 실행 환경)까지 같이 설치되고, 이 JRE가 JVM(Java Virtual Machine, 자바 가상머신)을 포함하고있지.

 

이 자바 가상머신으로 자바머신코드(javac를 써서 컴파일 된 머신코드파일, 사실상 자바로써는 실행파일임)를 실행하는데 그 과정이

java HelloWorld

같은 행위인거야. java라는 자바코드실행프로그램에 HelloWorld 라는 단어를 던져주고, java프로그램 내에서는 '아 프로그램 이름이 HelloWorld구나. 그럼 내가 HelloWorld.main() 을 실행(Invoke나 Call이라고 함)해야겠네!' 라고 아는거야.

 

자바 경험이 있는지 모르겠는데

objectVariable.methodName(); 으로 오브젝트 인스턴스의 메서드를 콜하는경우가있고,

예를들면 student1.getName(); student2.getName();처럼 각각 학생의 이름을 얻는경우와

Math.Random(); 처럼 ClassName.method();로 클래스에서 메서드를 콜해서 쓰는경우가 있음.

이건 method 종류가 instance method이냐 static method이냐의 차이인데,

클래스자체가 method를 소유하고, 모든 instance들이 그걸 공유해서 사용하는경우를 static method라 함.

그래서 public static void main(String args[]) 가 되는거야.

public -> 누구나 사용가능한

static -> 클래스의 static method이면서

void -> 리턴값이 없고

main -> 이름이 main인 (Java의 keyword중 하나임. 프로그램 시작점을 지정하는 method name)

String[] args -> 인자로 String 타입 여러개를 받을 수 있는 args = arguments의 약자. 공백으로 구분됨.

2
2021.03.20
@라프로익15년

args도 위에서 잘 설명해줬는데, 몇가지 예를들면

컴퓨터 자동종료 해봣을지모르겠지만,

 

Windows키 + R을 클릭하셔서 실행창을 엽니다. ...

그런뒤 shutdown -s -t 3600 을 입력하면 됩니다. (3600은 3600초)

 

이 경우에 shutdown이 프로그램이름이고 -s가 args[0], -t가 args[1], 3600이 args[2] 가 되는거야. 그래서 주로 옵션 설정같은걸 입력받을때 사용하지.

윈도우는 GUI 기반이라 걍 실행파일 클릭해서 프로그램내에서 옵션바꾸고하지만, 리눅스같은OS는 여전히 프로그램을 실행할때 옵션을 여러개 주는 경우가 많거든.

 

추가로 너가쓰는 프로그램 바로가기도 잘 살펴보면 가끔 이런거 있어. 이건 발로란트 바로가기인데

"C:\Riot Games\Riot Client\RiotClientServices.exe" --launch-product=valorant --launch-patchline=live

얘는 args[0] 하고 args[1]이 있겠지?

 

다른거로는

# adduser -p bbb -g ggg -s '/bin/bash' -d '/home/www' zzz

비밀번호가 bbb이고 그룹은 ggg 쉘은 bash 홈디렉토리는 /home/www 인 zzz란 아이디를 만든다.

이건 리눅스명령어인데 이건 인자가 엄청많지..

 

암튼 이런 디테일한부분에 호기심을 가져줘서 고맙고

내 학생들은 가르쳐주는거만 배우고 의문을 별로 갖지를않아...

main method 콜 해서 프로그램이 실행되는건 Object Oriented Concept을 가르치면서 static 배울떄 알려주긴하는데..

말해주기전까진 몰라...

 

암튼 도움되면좋겠다.

2
2021.03.21
@0살대마법사

ㅠㅠㅠ 진짜 감동적이다 자세한 설명 너무너무 고마움 이해가 쏙 됐어

0
2021.03.18

착석

0
2021.03.18

html로 프로그래밍 시작해도 되는거지?

0
2021.03.20
@펭귄성애자

장난인지 진심인지 모르겠는데 HTML은 프로그래밍이 아님

그건 화면에 컨텐츠를 뿌려서 보여주는 방법인데.

물론 HTML과 함께 쓰는 여러가지 프로그래밍 언어들이 있지만... HTML로 시작한다하기보다는

웹프로그래밍을 한다고 말하는것이 바른표현임.

0
무분별한 사용은 차단될 수 있습니다.
번호 제목 글쓴이 추천 수 날짜
493 [과학] 자바로 프로그래밍에 입문할래요: 1.5. 입출력 (1) 1 스비니 1 4 일 전
492 [과학] 자바로 프로그래밍에 입문할래요: 1.4. 배열 (3) 1 스비니 4 13 일 전
491 [과학] 일론 머스크는 스티브 잡스 같은 사람이다. (feat. 뉴럴링크) 38 빨머 20 14 일 전
490 [과학] 자바로 프로그래밍에 입문할래요: 1.4. 배열 (2) 9 스비니 2 20 일 전
489 [과학] 방사선에 관하여_20210423_Ch.4까지 완료 63 ptrtype01 4 21 일 전
488 [과학] 日 자민당 의원이 공개한 원전오염수 성분 31 SOLEUS 16 23 일 전
487 [과학] ??? : 한국이 오염수 더 많이 방류한다 빼애액 24 SOLEUS 13 23 일 전
486 [과학] 일본의 방사능 기준치가 신용받지 못하는 이유 71 뭘까요 1 24 일 전
485 [과학] 도쿄의 암 발생률. 27 뭘까요 5 24 일 전
484 [과학] 일본은 과연 후쿠시마 인근만 방사능에 오염돼었을까? 13 뭘까요 10 24 일 전
483 [과학] 일본이 주장하는 후쿠시마의 방사능량은 서울과 같다는게 사... 31 뭘까요 14 24 일 전
482 [과학] 일본 후쿠시마 오염수 방류 팩트정리 21 뭘까요 7 24 일 전
481 [과학] 자바로 프로그래밍에 입문할래요: 1.4. 배열 (1) 13 스비니 7 28 일 전
480 [과학] 약사가 쓴 az백신과 혈전에 관한 글 109 pipo 40 2021.04.08
479 [과학] 자바로 프로그래밍에 입문할래요: 1.3. 조건문과 반복문 (2) 21 스비니 4 2021.04.06
478 [과학] 사회과학계에서 밝혀졌던 "보이루"의 실체 13 안티파굳 23 2021.04.05
477 [과학] 피임약은 어떻게 임신을 예방할까? 33 동식 18 2021.04.01
476 [과학] 자바로 프로그래밍에 입문할래요: 1.3. 조건문과 반복문 (1) 11 스비니 2 2021.03.27
475 [과학] 급성 방사선 장해의 치료 역사, 그리고 방법은 무엇일까? 20 바른말고운말하는사람 7 2021.03.24
474 [과학] 자바로 프로그래밍에 입문할래요: 1.2. 내장 자료형 (2) 23 스비니 5 2021.03.23