Visual Studio Code를 쓰자
Visual Studio -> C와 C++로 만든 IDE (Integrated Development Environment) 이다.
Visual Studio Code (VSCode)는 편집기다.
vscode는 js와 크롬의 엔진으로 만들어졌다.
*js와 크롬 엔진으로 프로그램을 만들고 싶다면?
일렉트론을 쓰면 js로 스탠드얼론 프로그램 흉내를 낼 수 있다.
가벼운 프로그램을 만들 때 아주 좋은 방법이다.
VSCode 설정하기
VScode에서 폴더 열고
경로를 만드는데 대문자로 시작해서 만들자. (파일명과 클래스명이 동일해야 하므로)
codelens 는 좋은 기능이 많지만 초보떄는 혼동되는 부분이 생길 수 있으므로 설정에서 비활성화한다.
Indent 매우매우 중요하다. 인덴트는 두칸으로 쓰고, 탭은 공백으로 입력되게 vscode를 설정하자
whitespace는 [공백, 줄바꿈(엔터, 뉴라인), 탭] 들을 부르는 말이다. vscode에서 화이트스페이스도 몇칸인지 볼 수 있게 렌더하도록 하자. 그리고 Inlay Hints를 항상 표시하지 말고 키 눌렀을 때 보여주도록 변경하자.
VSCodes는 Extension 없이는 단순한 편집기다.
디버깅하려는 언어에 관한 익스텐션들을 받아두자.
그리고 VSCode에서 자동완성을 충실히 활용하여 (class와 main에 대한 자동완성)
첫번째 예제인 hello, world를 찍어보자.
아래의 코드를 가진 Hello.java 파일을 vscode에서 만들어주면 된다.
public class Hello { //Class 이름과 파일명은 동일(class로 자동완성)
public static void main(String[] args) { //main으로 자동완성
System.out.println("Hello, World");
}
}
Java Compiler (javac)
위 소스코드는 Hello, World 를 출력하는 프로그램이다.
이전 Java와 JVM에 관한 포스팅에서 적었듯이 자바는 바이트코드로 컴파일하고,
플랫폼별 JVM에서 바이너리 코드로 바이트코드를 실행시켜야 한다.
VSCode에서 자바 관련된 익스텐션을 다 설치한 다음에 디버깅을 눌러도 실행은 되지만
실제로 JDK내의 컴파일러와 JVM을 사용해보도록 하자.
이는 CLI를 이용해서 할 수 있다.
터미널에서 작성한 자바 파일이 있는 곳으로 이동한 다음에 아래 명령어로 바이트코드로 자바 소스파일을 컴파일한다.
javac 파일명.java
이렇게 하면 .class 파일이 컴파일된 결과로 생성된다.
컴파일된 바이트코드를 JVM에서 실행하게 하려면 아래와 같은 명령어를 쓰면 된다.
java 파일명
위와 같이 명령을 내리면 해당 이름의 .class파일(바이트코드)를 JVM이 실행한다.
참고. 모든 언어 첫 예제, 헬로 월드의 유래
데니스 리치가 C언어를 만들고, 브라이언 커닝햄이 C언어에 대한 전설적인 책을 썼다.
그 책이 바로 The c programming language 이다.
이 책의 첫번째 예제가 헬로 월드다.
킹스맨 작가가 박찬욱 올드보이 오마주 했던 것처럼, 다른 개발자들도 데니스 리치와 브라이언 커닝햄을 존경하고 오마주하여
언어에 대한 강의나 책을 쓸 때 헬로 월드를 오마주한다.
오마주가 아니더라도 첫 예제가 대다수 헬로월드다보니 그 상징성에 따르는 것도 있겠지만
개발자들에게 데니스 리치, 브라이언 커닝햄은 음악하는 사람에게 비틀즈와 같은 사람이다.
어떤 언어가 좋은 언어인가?
데이터를 표현하는 명령어는 리터럴, 데이터를 저장할 메모리 영역을 만드는 건 변수 선언이며
데이터 가공하는 명령어는 오퍼레이터(연산자), 실행할 명령어를 조건에 따라 선택하는 것은 조건문(분기)이고
같은 명령어를 반복하는 건 반복문이며, 여러개의 명령어를 관리하기 쉽게 묶는 걸 Method(Function)이라고 부른다.
또 이런 관련된 메서드들을 모아둔 걸 클래스라고 부른다. 클래스란 자체가 분류 의미이다.
클래스를 사용하는 객체지향프로그래밍의 중요한 부분은, 메서드로 묶고 메서드를 클래스로 묶고 클래스를 패키지로 묶는 기법이다.
이 개발자 세계에서 자바만 하는 것도 아니고 닷넷을 쓰거나 파이썬도 쓸거고 씨샵도 쓸 수 있다. 씨샵-자바는 유사하며 랭기지는 도구이다.
폴리글랏(Polyglot) Programmer가 되어야 할 거다. IoT 짠다 그러면, 띵에는 C를 쓸거고 웹에서는 자바나 씨샵을 쓸 거고, 인공지능이 붙으면 파이썬을 붙일거고… 닷넷이나 자바나 결국 객체지향을 잘 할 수 있으면 잘 쓸 수 있는 도구다.
다시 말하면 프로그래밍을 잘 하는 건
적절한 변수를 만드는 것, 어떤 명령을 실행해야 할지 조건을 잘 짜고, 어떤 조건에서 무엇을 얼마나 반복하는지 잘 결정하고..
잘게 나누고 분류하여 묶어놓는 걸 재사용성이 얼마나 좋게 잘 만드는지가 결정한다.
어떻게 학습하는가?
학습을 어떻게 하면 잘 하는가
먼저 반복해서 익숙하게 만든다.
익숙하게 되면 이해하게 된다.
이해한 걸 반복하면 학습한 게 된다.
잊는 것보다 더 입력하자.