본문 바로가기

공부31

Java - JVM의 메모리 모델과 Object 클래스 19강까지 진행했다. 위코드 기간동안은 파이썬을 위주로 진행할 수 밖에 없어서 남은 강의들을 듣는데에 시간이 얼마나 걸릴지 모르겠다. 틈틈이 진행해야겠다. JVM(자바)의 메모리 모델 JVM의 메모리는 3가지의 영역으로 나누어 관리된다.공간을 나누는 목적은 메모리 제어의 효율성 확보가 목적 메소드 영역 메소드들의 바이트코드 Static 변수 메소드 영역에는 프로그램 실행에 필수적인 바이트 코드가 위치하는 영역이기 때문에 프로그램 실행 도중에 삭제될 일이 없기 때문에 static 변수도 이 곳에 위치한다. 이 영역은 프로그램이 완전히 종료될 때 없어진다고 볼 수 있다. 스택 영역 지역변수 매개변수 스택 영역에는 일반적인 변수들과 매개변수들이 위치하는 영역이다. 동시에 stack 자료구조의 특징인 LIFO구.. 2020. 7. 23.
Java - 예외처리 (2) 최근 많이 게을러졌다. 정신 차리자. 예외 클래스의 구분 Error Class 상속 시스템 오류 수준의 상황으로 프로그램 코드상에서 처리할 수 있는 수준의 문제가 아님 VirtualMachineError, IOError Exception Class 상속 코드 오류가 아닌 실행과정에서 발생하는 예외적인 상황을 표현하기 위한 클래스들 실질적인 예외처리 코드를 반드시 명시하거나, throws 키워드를 사용해서 해당 예외를 넘길것을 알려야 함 public void testCase1() throws IOException - throws 키워드 사용 예 throws 사용시 해당 메소드를 호출한 지점으로 계속해서 넘어감 여러가지 예외상황을 throws 할 것을 한꺼번에 표기할 수 있음. public void test.. 2020. 7. 17.
Java - 예외처리 (1) 이 다음에도 강의가 이렇게 길지는 모르겠는데 지금까지 중에선 제일 길어서 나눠서 정리해야겠다. 예외처리의 기본 예외란? - 사용자가 개발자의 예상과 다른 조작 또는 행동으로 인해서 생기는 상황으로 문법적인 오류가 아님 예외처리란? - 위와 같이 정의된 예외가 발생한 상황에 대한 처리 자바의 기본 예외처리 예외가 발생한 지점과 발생한 예외에 대한 정보 안내 프로그램 종료 if - else 문을 통해서 예외를 처리할 수 있으나, 이 경우에 코드의 다른 부분에 사용된 if - else 문과 목적을 따로 구별해야 하는 수고가 발생한다. -> 따라서 예외처리를 위한 문법이 제공됨 JVM이 예외를 처리하는 방식은 OS가 인터럽트를 처리하는 방식과 유사하다. 예외가 발생하면 예외처리를 위한 작업을 먼저 진행한 후에 .. 2020. 7. 12.
Java - 인터페이스 17강은 인터페이스에 대한 내용이었다. 인터페이스란? 메소드의 몸체가 없고 선언부만 존재하는 추상 메소드만 가지고 있다. 인터페이스 인스턴스는 생성 불가능 하다. -> new 키워드를 통한 인스턴스 생성 불가함 단 인터페이스 참조변수는 선언 가능함. implements 키워드를 사용해서 클래스에서 인터페이스의 추상 메소드의 몸체를 작성해서 메소드를 완성한다. "메소드를 구현한다." 라고도 말함 인터페이스를 선언할 때 추상 메소드의 접근 수준을 명시하지 않더라도 기본적으로 public으로 설정된다. 일반적인 변수는 선언할 수 없으나, 상수는 선언이 가능하다. 이 경우에는 상수 키워드인 static final이 없이 변수를 선언하면 상수를 선언한 것으로 컴파일러 레벨에서 간주 상속과 구현 Class Robo.. 2020. 7. 8.
Java - 상속 (3) 일단 어제 16강을 들었는데 정리하는 걸 깜빡했다. 상속만 3연속 강의라니 중요성을 다시 한번 느낀다. Object 클래스 default 설정이라고 보면 되는데, 클래스 선언 시에 상속하는 클래스를 명시하지 않는다면 object 클래스를 상속하도록 작동함 사실상 모든 클래스는 단계의 차이가 있을 뿐 최상위 클래스로 object 클래스를 두고 있음 Fianl 선언 클래스의 경우 - 다른 클래스가 상속할 수 없음을 나타낸다. 메소드의 경우 - 메소드 오버라이딩을 할 수 없을음 나타낸다. @Override 코드 안정성을 높이기 위한 문법 "상위 클래스의 메소드를 오버라이딩 한다." 라는 의미의 선언 선언을 해 놓고 오버라이딩의 조건을 만족하지 못한다면 컴파일 레벨에서 에러가 발생한다. 나머지는 상속을 적용할 .. 2020. 7. 8.
Django 기본 pip install django #Django 설치 django-admin startproject __NAME__ #지정한 이름으로 Django 프로젝트 생성 django-admin startapp __NAME)) #지정한 이름으로 Django 앱 생성 python manage.py runserver (__PORT__) #Django 서버 기동, 포트 지정 안하면 8000으로 자동 설정 프로젝트 파일 manage.py : 웹 서버 실행과 관리에 관한 기능을 지원 PROJECT_NAME_DIR __init__.py : 해당 디렉토리를 파이썬 모듈로서 작동하도록 urls.py : 루트 url 설정 파일 settings.py : 프로젝트에 관련된 여러 설정을 관리 wsgi.py : Web Server Gat.. 2020. 7. 7.
Java - 상속 (2) 15번째 강의도 상속에 대한 내용이었다. 상속을 위한 두 클래스의 관계 is - a 관계를 이룰 것 하위 클래스는 상위 클래스의 모든 특성(변수 + 메소드)를 지님. 이에 더하여 자신만의 추가적인 특성을 더함 문법적인 관계가 아닌 실제 또는 설계상의 관계를 뜻한다. 의미 또는 기능상 전혀 연관이 없는 클래스간의 상속을 피할 것 예 전자제품 2020. 7. 6.
위코드 Pre Course - git git? 대표적인 버전 관리 시스템(VCS) 리눅스의 개발자 리누스 포트발스가 제작함 특정 목적 Branch(가지)를 생성해서 관리가 가능 git과 github의 차이 git은 버전을 관리하는 소프트웨어 그 자체로 github 없이 스탠드얼론으로 작동이 가능하다. github는 git의 기능을 서비스로서 제공하는 웹 서비스로서 git 자체의 기능뿐만아니라 부가적인 기능을 제공한다. gitlab이나 bitbucket같은 서비스와 비슷하다. 자주 사용되는 git 명령어 git init : git 초기화 git clone : 저장소의 프로젝트 가져오기 git add : 추적중인 파일들 중 변경이 감지된 파일을 스테이징 git commit -m : 스테이징 영역으로 옮긴 파일을 설명과 함께 커밋 git push.. 2020. 7. 5.
Java - 상속 (1) 객체지향의 4요소 중 하나인 상속에 대한 강의를 들었다. 상속의 정의는 "연관된 일련의 클래스들에 대해서 공통적인 규약을 정의하는 것" 이다. 상속을 하고자 할 때는 extends 키워드를 사용하여 진행한다. class man { String name; public void tellMyName() { System.out.println("My name is" + name); } } class workman extends man { String job; String address; public void introduceMyself() { System.out.println("My name is" + name); System.out.println("My job is" + job); System.out.print.. 2020. 7. 5.