자전거를 이용한 언어의 이해

1-1 (분석편)



저는 2년제 대학(컴퓨터정보과)을 졸업하고 4년제 대학(컴퓨터공학과)에 편입하여 현재 대학원(컴퓨터과학)에 다니고 있습니다.


현재진행형으로 5년간 컴퓨터 관련을 다니다 보니 프로그래밍언어를 어렵다고만 생각하는 분들이 많은 것 같아 아쉬운 나머지 게시글을 작성하게 되었습니다.


처음 대학에 들어오면 프로그래밍 언어에 대해 여러가지를 공부를 하게 됩니다.


C언어, C++, 자바, 자료구조 등등..


배울언어는 한개도 아니면서 자료구조, 분석/설계, 공학 등등 뭐가 이리도 많은지.


배우고 있는 지금도 어렵고 힘들지만, 정말 처음부터 어떤걸 배워야할지 망설여지더라구요.


그리고 처음으로 듣는 강의, 처음으로 뱉는말. "뭐가 이렇게 어려워!"


강의를 신청하고 처음듣는 강의는 어렵고 귀에는 들어오지도 않고, 내주시는 과제는 뭐가 그리 어려운지..


그저 한숨만 먼산만 바라보게 되는 상황이 일어나기 쉽상이었습니다.


저와 같은 분들을 위해서 조금이라도 도움이 되었으면 하는 게시글. 자전거를 이용한 언어의 이해. 시작합니다!



언어의 기초를 배우다 보면 클래스, 변수, 상수............


어렵기만한 언어를 자전거를 분석하고 만들어가며 조금이나마 쉽게 배워가도록 하겠습니다.

(개인적인 공부법이므로 다른 책들과는 많이 다를 수 있습니다. 질문은 댓글을 달아주세요.)





[이미지 출처 - karzin(직접제작)]


여기 자전거가 한대 있습니다.


이 자전거를 프로그래밍으로 구현하려면 뭐부터 시작해야할까요?



저는 역시 '분석'부터 시작할 것 같습니다.



분석은 프로그래밍을 시작하는데 있어 기초라고 저는 생각하고 있습니다.



자, 그럼 분석을 위해 자전거를 자세히 바라봅시다.


우리가 만들 자전거에는



운전을 위한 '손잡이'가 있고,





사용자가 앉기 위한 '안장'이 있고,





앞으로 나아가기 위한 두개의 '바퀴'가 있고,





사용자의 동력을 전달할 '페달'이 있고,





마지막으로 이 모든 부품들을 하나로 묶어주는 '바디(프레임)'이 있습니다. 


그리고 마지막으로 자전거를 앞뒤로 옮겨줄 동력원인 사람이 필요하겠죠.


이정도면 기초적인 프로그래밍을 위한 분석이 완료된 것 같습니다! 


과연 이 분석은 분석으로써는 몇점일까요?


글쎄요.. 그럼 다음으로 넘어가 볼까요?



언어분석

자전거를 이용한 언어의 이해

프롤로그



[이미지 출처-karzin(직접제작)]


학부시절 프로그래밍언어를 공부하면서 초반부터 포기하는 친구들이 무척이나 많았습니다.


친구로써, 동기로써 너무나도 안타깝기만 했었습니다.


그래서 준비해보았습니다! 언어를 조금 이해하기 쉽게 풀어써보자고!


물론, 지금의 저도 그렇게 언어를 이해하지는 못했습니다. 


아직도 모르는 것 투성이고, 개발함에 있어 함수들의 검색은 필수로 하고 있는 수준이니까요.


그래도, 공부하는 블로그에서 나도 공부하고, 보고계신 모든 분들도 공부가 되면 좋겠다는 생각은 언제나 같습니다.



그래서 어려운 프로그래밍 언어를 조금이나마 어렵지 않게하는 게시글들을 주저리주저리 써볼까 합니다.


얼마나 많은 도움이 될까도 싶지만, 한번씩 읽어보시고 유익하셨다면 댓글 꼭 남겨주세요!


열심히 해보겠습니다!


#2 자바 프로그래밍 기초

클래스, 함수, 변수에 대해 알아보자!

요즘 자격증 준비한다고 블로그관리가 매우 뜸해졌어요 ㅠㅠ

최대한 틈틈히 하도록 노력해야겠어요 ㅠ


오늘은 2번째인 자바 프로그래밍 기초에서 특히 클래스, 함수, 변수를 알아보고자 합니다!


그 전에 자바가 무엇인지 알아볼 필요가 있긴한데..


자바란.. 인도네시아의 자바(Java)커피는....




자바 : 객체 지향 프로그래밍 언어로서 보안성이 뛰어나며 컴파일한 코드는 다른 운영체제에서 사용할 수 있도록 클래스(Class)로 제공된다. 객체 지향 언어인 C++ 언어의 객체 지향적인 장점을 살리면서 분산 환경을 지원하며 더욱 효율적이다.


- 특징

1. 자바는 간단하다 (Simple)

2. 자바는 객체지향 언어이다 (Object-Oriented)

3. 자바는 보안에 강하다 (Secure)

4. 자바 아키텍처는 중립적이다 (Architecture Neutral)

5. 자바는 이식성이 높다 (Portable)


위에서 조금 어렵게 설명하긴 했지만, 쉽게말해 자바란 객체 지향 프로그래밍 언어이며, 현재 가장 많이 사용중인 프로그래밍 언어라고 생각하시면 될것같습니다.


TIOBE 선정 프로그래밍 언어 점유율 순위 (2017.02.15 기준)

현재(2017.02.15 기준) 16.676%라는 점유율로 2위인 C언어(8.445%)를 2배 더 많은 점유율로 따돌리고 있으며, 흔히 사용중인 스마트폰에서 사용하는 언어 또한 자바라고 생각하시면 되겠습니다.


자바에 관련된 특별한 이야기들은 다음에 기회가 된다면 하는걸로하고 바로 우리가 오늘 배워야 할 클래스, 함수, 변수가 무엇인지 알아보도록 하겠습니다!




클래스 : 객체들을 만들기 위한 형판(template) / 일종의 도면

 - 자바 프로그램은 이런 클래스들의 모임으로 이루어 집니다.


함수 (메소드) :  일정한 동작을 수행하는 코드

 - 함수는 반환형태에 따라 변수와 같이 데이터의 형(type)이 있으며, 함수의 동작이 끝나면 함수를 종료하고, 해당 반환형태에 따라 데이터를 반환하게 됩니다.


변수 : 프로그램이 사용할 데이터를 저장하는 공간

 - 변수 또한 저장할 데이터의 형(type)에 따라서 정수형(byte, short, int, long), 실수형(float, double), 논리형(boolean), 문자형(char) 등으로 나뉘게 됩니다. 데이터 형(자료형)에 대한 추가적인 설명은 추후에 기회가 되면 하도록 하겠습니다.

* 추가적인 자료형의 설명 (link)


앞서 1강에 했던 Hello World!에서 이용했던 소스를 확인해보자면,

public class HelloWorld {

public static void main(String[] args) {

System.out.println("Hello World!");

}

};



출처: http://karzin.tistory.com/7 [Karzin의 [I Love Computer]]

으아아.. 복붙했는데 출처가..


public class HelloWorld <- 첫번째 줄 이부분이 HelloWorld라는 이름을 가진 클래스를,

public static void main(String[] args) {} <- 두번째 줄 이부분이 main이라는 이름을 가진 함수를,

추가적으로 해당에서는 기본적인 프로그램이기때문에 변수는 없다고 보시면 되겠습니다.

(*참고로 세번째 줄에서 사용한 println 또한 함수<Hello World!를 콘솔창에 찍어내는 함수>입니다. System.out에 들어있는 함수로, 개발자가 이미 만들어져있는 함수를 가져다 사용하는 형식이라고 보시면 되겠습니다.)


만약 해당코드에 변수를 이용하여 프로그램을 만들어보고자 한다면,


public class HelloWorld {

public static void main(String[] args) {

String h = "Hello World!";

System.out.println(h);

}

};


위와 같은 형식이 되겠네요.

String 형의 h라는 변수에 "Hello World!"라는 문자열을 넣어 println함수를 이용하여 h변수에 들어있는 "Hello World!" 문자열을 콘솔창에 찍어내라! 라고 보시면 되겠습니다.




오늘은 자바 프로그래밍에 있어 기본적으로 배워둬야 할 클래스, 함수, 변수에 대해 알아보았습니다.

처음 공부시작하신 분들은 아직 감이 안오셨을수도 있고, 이미 아시는 분은 한번 더 짚고 넘어간다고 생각하시면 될것 같습니다.


개인적으로 공부하면서 틈틈히 만든다고 생각은 하는데 좀처럼 쉽지가 않네요 ㅠㅠ


+ Recent posts