-
21.04.27 / 혁신성장_인공지능 개발자 과정_1일차프로그래밍/Java 2021. 4. 27. 20:59
오늘 배운 것 (TIL)
- 객체 와 인스턴스의 차이
- 객체 : 인스턴스의 집합 ex) 아이를 낳았다
- 인스턴스 : new 예약어 사용 - 클래스로부터 만들어진 각각의 요소 ex) 오명균을 낳았다
- 리팩토링 - 디자인 패턴 (디자인패턴은 도달하고 싶은 곳이고, 리팩토링은 그곳으로 가는 방법)
- 리팩토링(refactoring), TDD (Test Driven Development), 디자인패턴(Design Pattern) 은 따로 떼어서 생각해서는 곤란하다.
- 마틴 파울러는 리팩토링(refactoring) 을 다음과 같이 정의했다. “리팩토링은 외부 동작을 바꾸지 않으면서 내부 구조를 개선하는 방법으로, 소프트웨어 시스템을 변경하는 프로세스이다.”
- 마틴 파울러가 말하는 디자인패턴(Design Pattern) 은 다음과 같다. "디자인패턴은 리팩토링의 결과로 나온 구조를 반영한다. 따라서 디자인패턴은 리팩토링의 목표점이 되는 것이다. 디자인패턴과 리팩토링 사이에는 자연스런 관계가 있다. 디자인패턴은 도달하고 싶은 곳이고, 리팩토링은 그곳으로 가는 방법이다."
중요
- 출석하는 것이 가장 중요하다
- 수면 습관 정말 중요하다 (자는 동안 해마가 활동)
- 직접 타이핑 & 설명 하는것 정말 중요하다
팀 프로젝트 (4명)
- 매일 팀 활동 올리기 (조별 활동 보고서)
- 이 팀 JSP 커리큘럼까지 갈 예정 (~5월 19일 예상)
- 매일 2시간 팀 스터디 권장
- 서로 수업 빠진 부분 협력해서 알려주기
- 누군가를 가르침 으로써 큰 성장이 된다
- 팀워크가 좋으면 개개인의 역량이 곱이 된다
- 10 + 10 + 10 (X)
- 10 x 10 x 10 (O)
- 팀원 구성
- 이기훈(모든 시간 참석)(조장)
- 안상현
- 오명균
- 임범수
- 김나경
- 유현국
방형욱 강사 (자바, 인공지능, 딥러닝 역할)
수업 주요 내용
- 자바 (주로 파이썬 코드를 → 자바로 바꾸려고 한다)
- AI 솔루션을 만들기 위해 많이 사용한다
- 웹 프로그래밍 (JSP, Spring(최종 프로젝트 할 때쯤 시작))
- 자바 1권 끝내는게 목표
- 즉, 진도 전부 다 나가지 않는다
- Python (연구용 목적으로 주로 사용)
- 머신러닝, 딥러닝
- R
- 머신러닝, 딥러닝
- Database
- 사용 제품: Oracle (거의 최강) / My-SQL (무료지만 상대적으로 약함)
- 최종 프로젝트
강조
- 출석하는 것이 가장 중요하다
- 수면 습관 정말 중요하다 (자는 동안 해마가 활동)
- 행위의 중요성
- 듣기 → 잊어버린다
- 본다 → 기억한다
- 행한다 & 설명한다 → 이해한다, 변화한다
데이터 분석 (나누고 쪼개는 것)→ 인공지능에 많은 활용
구글 검색
- "machine learning is" : 많은 것을 접하다 보면 무엇인지 통찰력이 생긴다, 자기만의 생각이 생긴다
- 즉, 2형식으로 (구글) 검색하는 것을 생활화
프로그래밍 숙련도 단계
- 1단계, 그냥 개발 (이것이 자바다 완료 시)
- 2단계, 변경이 쉽도록 만드는 것
- 3단계, 누가 봐도 알 수 있게 만드는 것
교재 추천
1단계
- 이것이 자바다
- 헤드퍼스트 자바(영문 교재) http://www.yes24.com/Product/Goods/1809610
- The Java Tutorials / https://docs.oracle.com/javase/tutorial/
2단계
- 헤드퍼스트 디자인 패턴 / yes24 / 1778966
- GoF 디자인 패턴 / 17525598
- 오브젝트 / 74219491
3단계
- Refactoring.Guru
- 리택터링 2판
- 이펙티브 자바
- Others
자바
- java.exe : 바이트 코드를 JVM에 올리는 녀석
- .class 파일(바이트 코드) → 자바 가상머신(JVM) → 01010기계어 → 실행
- javac .exe : java의 컴파일러
- .java 파일 → .class 파일 생성(JVM이 해석할 수 있는 바이트 코드)
클래스란?
- 청사진 or 프로토타입 (설계도)
객체란?
- 소프트웨어 번들 (필드(state)와 메소드(behavior)로 이루어진)
- 클래스에 영향을 받지만, 모양, 크기가 다 다를 수 있다(생성자에 다양한 매개변수를 지정한다면)
- ex) new Dog(6000000, 'red', 'Bulldog');
- 객체는 모든 인스턴스를 대표하는 포괄적인 의미
- ex) 아이를 낳았다
인스턴스란?
- new 해서 나오게 된 것
- 객체를 소프트웨어에 실체화 하면 그것을 ‘인스턴스’라고 부른다.
- 실체화된 인스턴스는 메모리에 할당된다.
- ex) 오명균을 낳았다
Bicycle bike1 = new Bicycle(); 3단계 해석
- bike1이라는 이름을 가진 그릇 생성 , 용기에 Bicycle의 인스턴스를 통제할 수 있는 리모콘 넣기
- Bicycle 이라는 인스턴스 생성
- Bicycle 리모콘이 Bicycle 인스턴스를 가리킴
변수
- 로컬 변수 (메소드 내에서만 존재)
- 인스턴스 변수 (인스턴트 내에 존재하는 변수)
실제 main이 들어있는 클래스는 극히 소수이다
- main 이 들어있는 클래스(driver class) : 대본
- main 이 없는 클래스 : 등장인물
class diagram
Windows 팁
환경 변수 설정
- 유저 변수 : 사용자에게만 적용되는 부분
- 시스템 변수 : 모든 사용자에게 적용되는 부분
bin 폴더
- 각종 실행파일이 있는 폴더
cmd 활용
- where 문 : 파일 위치 반환 (없다면 path에 등록이 안되어있기 때문)
- path 문 : 경로 확인
- set (path) : 설정 변경 (path 변수 내용 변경가능)
- notepad++ Bicycle.java : 해당 파일 생성
- dir Bic* : Bic로 시작하는 모든 파일목록 반환
- del xxx : 해당 파일 삭제
윈도우 단축키
- Windows + E : 탐색기
- Windows + R : 실행 (프로그램 실행 가능)
- Windows + X : 시작 메뉴의 텍스트 버전 (CMD 관리자 권한 실행 가능)
- Ctrl + Shift + Esc : Task Manager(작업 관리자)
Notepad++ 활용
상속 : 다형성
인터페이스: 계약
'프로그래밍 > Java' 카테고리의 다른 글
[JAVA]_7일차_05.05 (0) 2021.05.05 [JAVA]_6일차_05.04 (0) 2021.05.05 [이것이 자바다] 4장 확인문제 (0) 2021.04.29 "Java의 정석" - "이것이 자바다" 목차 (0) 2021.04.28 21.04.27 / 혁신성장_인공지능 개발자 과정_2일차 (0) 2021.04.28 - 객체 와 인스턴스의 차이