💙 들어가며
프로그래밍에 대해 알아가기 시작했다‼️
우리가 앞으로 할 프로그래밍에서
언어의 능력과 언어를 사용한 코딩에서 중요하게 생각할 부분은 무엇인지 구체적으로 알아보자.
✏️학습내용 정리
#프로그래밍과 방법론
자바 언어에 대해서 배우기 이전에 모든 언어가 기본적으로 가지고 있는
코딩 구조라든지 방법론이 있다는 것을 먼저 인지해야 한다.
모든 언어가 다 각자도생, 제각각이 아니고
관통하는 핵심이 있다는 것은 중요한 포인트인 것 같다.
컴퓨터 언어의 필수요소 4가지: 데이터, 연산자, 제어구조, 배열
이렇게 4가지만 할 줄 알면 모든 프로그램을 다 만들 수 있다고 한다. (짜릿)
선생님이 말씀해주신 FLOW에 따르면, 일단 우리가 코딩이라는 것을 배우기 위해서는
■ 기본적으로 프로그래밍을 만들 수 있기 위한 필수적인 능력
1. 컴퓨터 프로그래밍이 무엇인지를 이해해야 하고,
2. ★MAIN★기본적인 필수 요소들, 활용 방법 등에 대한 이해와 연습이 필요하다.
3. Algorithm 연습으로 실제 만들어보며 자신감과 재미를 찾자.
■ 방 정리와 같은 방법론적인 능력
제대로 된 기본 능력이 마련되지 않은 상태에서 정리만 하게 된다면 달라지는 것이 없다.
그러나 정리가 잘 되면 방이 깨끗해지고 물건 찾기가 쉬워진다는 장점을 기억하자.
4. 코드/데이터 구조화
5. 객체지향 프로그래밍
6. OOA/D & UML // 이쯤부터 다른 계열의 언어를 다뤄보게 될 것이다. (웹개발 미니 프로젝트 진행)
7. 콜렉션/예외처리/스레드/... // 작업을 하게 되면서 필요할 때 배우게 될 것이다.
선생님께서 몇 번을 강조해서 말씀해주셨고 잊지 말아야 할 것은
일단 나에게 가장 중요한 것은 코딩을 할 줄 아는 능력이라는 것이다. (중요 또 중요)
프로그래밍을 배우다보면 구조적인 프로그래밍, 객체지향 프로그래밍과 같은
방법론이 등장하게 되는데, 실질적인 코딩은 방법론을 걷어내고 봐야 한다는 것을 명심하자.
내가 충분히 코딩을 할 줄 아는 소양을 갖추게 되고, 어플리케이션을 개발하게 될 때
자연스럽게 나의 코드를 보기 좋게 정리를 하고 싶다는 느낌이 들면
그때 효과적인 방법론을 배워서 깔끔하게 방 정리를 해보는 순간을 누려보자.
#CPU와 메모리 (언어의 능력)
조금 더 본격적으로 컴퓨터에 대해 이해해보자.
그렇게 많이 들어보았던 CPU와 메모리는 생각보다 간단한 능력을 가지고 있었다.
- CPU(중앙처리장치): 연산을 잘하는 역할
- ALU(연산장치, Arithmetic Logic Unit)
산술연산, 논리연산 및 시프트를 수행하는 중앙처리장치 내부의 회로 장치
- CU(제어장치, Control Unit)
CPU를 구성하는 부분의 하나로, 기억장치에 축적된 명령을 해독하고
신호를 통해 각 장치의 동작을 지시
- Register(레지스터, 기억장치)
컴퓨터의 중앙처리장치에 들어있는 소규모 데이터 기억 장치,
bit, byte, 기계어와 같은 지정된 기억 용량을 가짐 - 메모리: 기억을 잘 하는 역할
- ROM(Read Only Memory)
전원이 꺼져도 기록이 소멸되지 않는 비휘발성 메모리
데이터를 지속해서 저장해 사용할 수 있지만 지울 수 없다는 단점 존재
기억된 내용만을 읽을 수 있다(read only)
- RAM(Random Access Memory)
전원이 꺼지면 기억된 모든 내용이 사라지는 휘발성 메모리
읽고 쓴느 것이 자유로워 응용 프로그램 로딩, 데이터 일시 저장 등에 주로 사용
여기서 중요한 점은 아무리 복잡한 연산을 기가 막히게 만들어 명령을 내린다고 하더라도
그것을 표현할 수 없는 것이 마련되어 있지 않다면,
그것은 사람으로 따지면 머릿 속으로 연산만 한 것일 뿐 그 누구도 알 수 없는 상황이 된다..!
언어만 가지고는 우리에게 아무런 도움이 되지 않는 상황이 발생하는 것이다..🚨
(마치 머리속으로 계산은 분명 했는데, 말로 내뱉지 못하는 것처럼)
입출력, 이것은 언어 즉, CPU와 메모리의 능력이 아니다.
#(번외) 계산기와 컴퓨터
CPU와 메모리를 보니 계산만 잘 하면 되는 것 같다.
그렇다면 컴퓨터는 계산기인가? YES
계산기는 컴퓨터인가? NO
프로그램이 가능한 계산기가 컴퓨터다.
(미리 계산식이 입력되어 있어서 사용자가 작성할 필요가 없으며 실행만 하면 됨)
#인터페이스 (프로그래밍 함수)
다시 돌아와서, 만약 파일로 말하고 싶다면? 스피커로 말하고 싶다면? 흠
어떻게 이런 기능들을 사용할 수 있는 것일까?
이런 기능들은 언어가 아니라 언어가 사용하는! 언어에서 사용할 수 있는! 장치들이다.
이렇게 언어로 열심히 연산을 하고 기억을 해두었다면,
사용할 수 있는 장치들이 필요하게 된다.
그러나 언어는 장치를 바로 사용할 수 없다...........................................하지만(BUT!!!)
이 장치들을 이용하기 위해서 언어가 쓸 수 있게끔 함수 형태로 만들어 놓은 것이 있다.
바로 프로그래밍을 할 때 사용할 수 있는 함수들이다. read(), print()
바로 이 프로그래밍을 할 때 사용할 수 있는 함수가
장치를 이어주는 접점이라는 뜻으로 인터페이스(접점)이라고 불린다.
조금 더 명확하게 표현해보면 인터페이스란?
서로 다른 시스템, 장치, 소프트웨어 등을 연결하거나 통신하게 해주는
접점이나 경계면, 코드와 플랫폼을 연결시켜 주는 통로라고 할 수 있다.
- 하드웨어 인터페이스: 컴퓨터 입출력장치, USB, HDMI 등등..
- 소프트웨어 인터페이스: API 등등..
#플랫폼 다다익선?
그렇다면 이제 언어가 갖고 있는 기능(데이터, 연산자, 제어구조, 배열)과
플랫폼이 갖고 있는 기능(입,출력 등)이 접점을 통해 결합되어야만
우리가 원하는 프로그램을 만들 수 있게 된다는 것을 기억해야겠다.
(언어만으로 ❌ 플랫폼만으로 ❌)
여기서 생각해보면, 플랫폼이 강력할 수록 언어는 많은 일을 할 수 있게 된다.
만약 우리가 3이라는 결과값을 얻게 되었을 경우에
플랫폼의 기능에 따라서 같은 결과를 출력하게 되더라도
홀로그램으로 표현할 수도, 로봇이 움직이는 것으로도 표현할 수 있게 되는 것처럼
다만 플랫폼은 하나하나 각기 다른 전문성을 가지고 있기 때문에,
나같은 왕초보... 맨 처음 언어를 다루는 경우에는
최소한의 플랫폼을 다루는 것이 좋다.
(처음부터 인공지능 다루고.. 못해..)
앞으로의 수업에서는 이렇게 이해를 해두면 될 것 같다.
언어가 가지고 있는 장치는 CPU와 메모리가 될 것이고
이것을 이용하는 방식은 자바 언어가 될 것이고
플랫폼으로는 키보드와 모니터를 사용할 것이다.
그리고 이 키보드와 모니터를 사용하기 위해서
우리는 함수 형태의 접점(인터페이스)을 이용할 것이다.
이 접점을 API(Application Programming Interface)라고 하는데
이 플랫폼 API를 이용해서 자바 프로그래밍을 하게 될 것이고
가장 기본적인 콘솔(모니터와 키보드)를 가지고 수업을 진행하게 될 것 같다.
💙마치며
가장 중요한 것은 화려한 스킬보다는 기본적으로 코딩을 할 줄 아는 능력이다.
선생님이 여러번 강조하셨듯이 컴퓨터 언어의 필수요소(데이터, 연산자, 제어구조, 배열)를
집중해서 공부하고 방법론적인 부분은 필요할 때 적절히 사용하는 능력을 기르자.
기본적으로 프로그램을 만들 수가 있게 되어야 방정리와 같은 방법론을 배울 수 있게 되는 것이다‼️
기본적인 자바 프로그래밍에 집중해서 공부를 하자‼️
(학습순서: 자바 프로그래밍 ▶ 자바 구조적인 프로그래밍 ▶ 자바 객체지향 프로그래밍)
'JAVA' 카테고리의 다른 글
[뉴렉처 6기] JAVA│반복문(while, for) 연습 문제│for를 쓰는 이유│인덱스와 넘버 (230614) (0) | 2023.06.15 |
---|---|
[뉴렉처 6기] JAVA│제어 구조에 대해 배워보자1 (while, if, for) (3) | 2023.06.14 |
[뉴렉처 6기] JAVA|형 변환(명시적, 묵시적)|연산자(산술, 비교, 논리, 단항, 비트)|Big Endian vs Little Endian (230612) (4) | 2023.06.13 |
[뉴렉처 6기] JAVA|자바 프로그래밍과 번역기(컴파일러)|자바 설치(JDK/JRE/JVM)|환경 변수 세팅하기 (0) | 2023.06.12 |
[뉴렉처 6기] JAVA|프로그램과 어플리케이션|프로그래머와 개발자 (0) | 2023.06.12 |