본문 바로가기

프로그래밍63

컴퓨터의 구조 및 프로그램 실행 과정 컴퓨터의 구조 및 프로그램 실행 과정 CPU Main Memory Hard Disk 두뇌에 해당하는 중앙처리장치(CPU) 중앙처리장치가 처리할 프로그램과 데이터를 임시로 저장하는 주기억장치(Main Memory) 프로그램과 데이터 등을 반영구적으로 저장할 수 있는 하드디스크 키보드, 모니터, 프린터 등의 주변장치로 구성 CPU ALU(Arithmetic and Logic Unit) 덧셈, 뺄셈과 같은 산술연산과 논리합, 논리곱과 같은 논리연산을 수행하는 ALU(Arithmetic and Logic Unit) 레지스터로부터 데이터를 가져와서 연산하고 그 결과 값 역시 다시 레지스터에 저장 레지스터(register) ALU가 연산을 수행할 때 그 대상이 되는 데이터를 임시로 저장하는 CPU내의 저장 공 간인.. 2019. 10. 28.
자바 메모리 구조 자바 메모리 구조 자바의 메모리 관리는 확장 가능한 방식의 응용 프로그램을 조정하기 위해 필요한 기술이다. JVM JVM은 컴퓨터가 자바 프로그램을 실행할 수 있도록하는 추상 컴퓨팅 시스템이다. JVM은 코드를 로드, 검사, 실행하고 런타임 환경을 제공한다. 이런 특징으로 자바 프로그램은 오류가 발행해도 JVM만 다운될 뿐 전체 시스템에 데미지를 주지 않는다. 플랫폼에 의존적이지 않아 모든 자바 프로그램의 구동이 가능하다. 동적할당을 프로그래머가 담당하는 C언어와 달리 JVM에서 관리한다. 구조 자바 실행 과정 1.실행 될 클래스를 메모리에 로드 후 초기화 작업을 수행 2. 메소드와 클래스 변수들을 해당 메모리 영역에 배치 3. 클래스 로드가 끝난 후 JVM은 main 메소드를 찾아 지역변수, 객체변수,.. 2019. 10. 17.
관계 대수의 기본 연산자 관계 대수 기본 연산자 단항 연산자(unary operator) 셀렉트 프로젝트 리네임 이항 연산자(binary operator) 합집합 차집합 카티션 프로덕트 이름 소문자 시그마 σ (대문자는 Σ) 파이 π 로 ρ 세타 θ 단항 연산자 셀렉트 릴레이션에서 조건을 만족하는 레코드를 선택하는 것으로 시그마 기호로 표시한다. σ조건(R) σ번지=231(회원) 프로젝트 연산자 한 릴레이션의 여러 속성 중 특정 속성만 선택하는 것으로 파이 기호로 표시한다. 수학적인 관점에서 릴레이션은 집합이므로 프로젝트된 릴레이션에서 중복되는 레코드는 제거된다. πA1,A2,...,An(R) π주소,전화번호,소속(회원) 리네임 연산자 관계 대수식에서 결과로 생성된 릴레이션은 이름이 없어, 참조할 수 있는 이름을 부여해야 한다... 2019. 6. 2.
멀티 스레드 멀티 스레드(작성중) 스레드란 그동안 작성한 프로그램을 모두 하나의 스레드로 이루어진 프로세스이다. 프로세스 멀티 태스킹 동시 실행 - 시분할 기법과 같은 다양한 기법을 이용하여 '동시 실행'하는 것과 같은 효과 스레드(Thread) - 프로세스 내의 작은 실행 단위 메인 스레드 Thread 클래스 상수 static int MAX_PRIORITY static int MIN_PROIRITY static int NORM_PRORITY 생성자 Thread() Thread(String name) Thread(Runnable target) Thread(Runnable target, String name) Thread(ThreadGroup group, Runnable target, String nam.. 2019. 5. 30.
String, StringBuffer, StringBuilder 중에 어떤 것을 사용해야 하나 String, StringBuffer, StringBuilder 중에 어떤 것을 사용해야 하나 String 클래스 String 변수를 초기화할 때 리터럴로 초기화된 문자열 객체는 스택 영역에 저장되고, 생성자를 통해 초기화하면 힙 영역에 저장된다. String s1 = "java"; // 스택 String s2 = new String("java"); // 힙 영역 String 클래스의 객체는 생성된 이후 변경이 불가능한 immutable 클래스여서 문자열의 내용을 변경하는 메소드를 제공하지 않는다. String 클래스는 기본 자료형처럼 사용할 수 있다. String s1 = "java"; // 스택에 문자열 객체를 생성 리터럴로 다른 String형 변수를 사용하는 경우 하나의 리터럴이 공유된다. 리터럴을.. 2019. 5. 29.
예외처리 예외처리 예외처리(Exception) 자바 프로그램이 실행중에 오류를 만났을때 이를 처리하는 것 예외란 자바 프로그램이 실행 도중 실행을 중단할 정도의 오류는 아니지만 비정상적으로 동작하는 것을 말한다. 자바 프로그램은 예외가 발생했을때 처리하지 않으면 예외에 대한 정보를 화면에 출력하고 실행을 종료한다. Error 클래스 Exception 클래스 시스템 구조상의 문제로 발생하는 심각한 오류 프로그램의 알고리즘이나 실행 절차상의 문제로 발생하는 경미한 오류 Exception 클래스는 Throwable 클래스가 제공하는 toString(), printStackTrace() 메소드를 상속받는다. toString() 예외 객체를 String 형으로 변환 printStackTrace() 예외가 발생한 위치를 상.. 2019. 5. 26.
C언어에서 기억 클래스의 종류 C언어에서 기억 클래스의 종류 C언어에서 사용되는 기억 클래스는 자동변수(auto), 정적변수(static), 외부변수(extern), 레지스터 변수(register)가 있습니다. 자동변수 예약어: auto(생략가능하며 보통 생략) 함수가 실행되는 동안에만 기억공간 중 임시기억 장소인 stack에 존재한다. scope는 변수가 선언된 함수 또는 블록 안으로 한정된다. 지역변수가 이에 해당한다. 초기화하지 않으면 쓰레기 값을 가질 수 있어 사용시 초기화하여 사용하는 것이 좋다. 정적변수 예약어: static 변수의 기억 영역이 프로그램이 끝날 때까지 유지된다. static으로 선언된 변수는 함수가 종료되거나 블록을 벗어나도 지정된 값을 유지한다. 모든 전역변수가 이에 해당한다. 전역변수와 다른점은 전역은 .. 2019. 5. 26.
vs code에서 wsl을 이용한 c/c++ 컴파일 vs code에서 wsl을 이용한 c/c++ 컴파일 vs code에서 c/c++ 컴파일을 하기 위한 환경을 구성해 보겠습니다. 이 내용은 https://code.visualstudio.com/docs/languages/cpp과 https://code.visualstudio.com/docs/cpp/config-wsl를 참고하였습니다. 사전준비 윈도우10 visual studio code 설치(이하 vs code) vs code에 c/c++ 확장 설치 윈도우10에서 wsl 설치(설명에서는 ubuntu를 사용하고 있음.) 목표 vs code에서 컴파일 환경을 갖추고 c++ 코드를 작성하고 우분투에서 'Hello World!'를 출력하는 것까지 해 보겠습니다. 참고. c 프로그래밍을 하는 경우에도 컴파일 환경을.. 2019. 5. 16.
장고에서 소셜인증하기 - 1. 파이썬 패키지 설치 장고에서 소셜인증하기 - 1. 설치 개요 네이버 아이디를 통해 장고 어플리케이션에 인증을 처리합니다. 적용할 패키지는 django-allauth로 인증, 등록, 계정 관리 및 타사 (소셜) 계정 인증을 처리할 수 있습니다. 총 3회에 걸쳐 소개합니다. 파이썬 패키지 설치 네이버 오픈API 이용 신청 장고에 소셜 어플리케이션 등록 사용환경 Python 2.7, 3.3, 3.4, 3.5 or 3.6 Django (1.11+) 네이버 오픈API 앱 등록 정보 파이썬 패키지 설치 장고 장고 프로젝트 또는 가상환경에서 파이썬 패키지를 설치합니다. pip install django-allauth settings.py 중의. INSTALLED_APPS에 'django.contrib.sites'가 있어야.. 2019. 5. 10.