JAVA 1일차 - 설명, 공부 방법, 업계 조언
220207
1,2주 프로그래밍 랭귀지로써 자바 - 어렵지만 중요
3,4주 자바로 프로그래밍 응용
Java -> JSP -> Spring
하루라도 결석하면 따라가기 힘듦. 옆사람에게 필기 빌려서 정리하세요
-프로그래밍 공부 방법
분석이 왕도
코딩도 예술, 창작임. 문법 외워서 되지 않음
코드 외우면 오히려 해가 됨
프로젝트 잘했다고 생각해서 저장했으나 한번도 본적이 없음
내가 소스를 가지고 있으면 과거에 기대하게됨. 과감히 버려야 함
동일한 결과를 얻기 위해 강사의 방법과 다른 방법을 가져가야함
ㄴ 동일한 과정으로 다른 결과를 낼 수 있어야 함
복습은 외우는게 아니라 진행했던 코드를 하나하나 분석해야함
ㄴ 내가 이런 심벌을 전달했을때 컴퓨터가 어떻게 동작할까? -> 나만의 심벌 사용해본다
분석을 한 줄만 해도 되지만 제대로 해야함
코드 안보고 치는 것도 중요하지만 분석해서 결과를 바꿔보기도 해야함. 원이었으면 사각형으로 바꿔봐야지
IT에서 밥 벌어먹고 살고싶다 -> 남들과 차별화 해야함 -> 가시적으로 보이게
1. DB, 웹프로그래밍, 게임 - 2. 시스템 프로그램 - 3. 전기, 전자, 기계
3은 어릴떄 아니면 경쟁이 힘듦
1,2에서 관리자/사용자/개발자로써 경쟁
1 예시 스타크래프트 관리자/엑셀 사용자/게임 개발자
2 예시 서버 관리자/
1의 개발자 100,000, 2의 개발자 10,000, 3의 개발자 10,000 (숫자)
진짜 돈 버는 영역은 1 - 2, 2 - 3 연결하는 영역임
2 - 3 : FirmWare (어렵고 사람 없음)
ㄴ Non OS : 대부분 예) 밥솥, 안마기
ㄴ OS : 네비게이션, 잠수함 (부와 명예, 권력)
1 - 2 : System Library (API)
개발자도 카스트가 존재. FirmWare > 시스템 프로그램 > System Library > DB, 웹프로그래밍, 게임
각 역할에서 통신 빠지면 할 수 있는게 없음 -> 어떤 역할이건 네트워크 중요
-각 영역별 필요 자격증
3 : 전기기사/임베디드기사 (나중에 삶이 여유로울때 하라)
2 : Linux (관리자, 구축, 개발자 Linux 다 다름)
1 : 데이터베이스/클라우드
공통 : 네트워크/정보처리기사
정보보안기사는 천천히. 통신, 운영체제, DB 다 하고나서. 실무 경험 5년 하고 하라
Cisco 자격증 (Cisco : 네트워크 중계장치 제작사)
Program : 문제를 해결하기 위한 절차들
Programmer : 분석해서 솔루션을 제시할 수 있는 사람
도구를 사용해서 해결 -> 도구는 컴퓨터
[CPU – Memory – Hard Disk] 운영체제(windows, Linux, unix, IOS)
Hard Disk : 리니지, 엑셀, 지뢰찾기, 자바(Java Virtual Machine, JVM, 프로그램으로 만든 컴퓨터)
Memory에 할당되는 량이 정해져 있기 때문에 메모리 관리에 목숨을 걸어야 함
사람 -> 언어(C, Java, Python) -> 컴파일러 -> 컴퓨터. 컴파일러는 사용자의 심벌을 컴퓨터 용으로 변경
자바는 안에 windows 용, Linux 용, IOS 용 컴파일러를 다 가지고 있어서 사용자가 일일이 지정해주지 않아도 됨 -> Interpreter

[편집 프로그램 - Eclipse
[개발 툴 프로그램 - JDK(Java Development Kit)
[System Library, API - JRM(Java Runtime Environment)
[자바 : [메모리] CL(Class Loader), GC(Garbage Collector), PC(Program Counter) - JVM(Java Virtual Machine - Interpreter)]]]]
↓Interpreter
[컴퓨터]
쓰레드 : 프로그램을 구성하는 가장 작은 단위. 멀티 쓰레드 목적은 자원 아끼기
자바 장점 : 플랫폼에 독립적인 프로그램을 작성할 수 있음
분산 소프트웨어를 쉽게 작성할 수 있음(가치 부여)
데이터 타입 중요하다