ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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단계

    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단계 해석

    1. bike1이라는 이름을 가진 그릇 생성 , 용기에 Bicycle의 인스턴스를 통제할 수 있는 리모콘 넣기
    2. Bicycle 이라는 인스턴스 생성
    3. 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++ 활용

    상속 : 다형성

    인터페이스: 계약

    댓글

Designed by Tistory.