Back-end/CS knowledge 4

객체지향 프로그래밍 OOP

객체지향 프로그래밍 OOP Object Oriented Programming 객체들의 집합으로 프로그래밍의 상호작용을 표현 데이터를 하나의 객체로 취급하여 객체 내부에 선언된 메서드를 활용하는 방식 설계에 많은 시간이 소요되며 처리 속도가 상대적으로 느리다. 특징 추상화 Abstraction 복잡한 시스템으로부터 핵심개념 또는 기능을 간추려내는것. 캡슐화 Encapculation 객체와 속성과 메서드를 하나로 묶고 일부를 외부에 감추어 은닉하는 것. 상속성 Inheritance 상위 클래스의 특성을 하위 클래스가 이어받아 재사용하거나 추가/확장하는 것. 코드의 재사용, 계층 관계 생성, 유지보수 측면에서 중요 다형성 Polomorphism 하나의 메서드나 클래스가 다양한 방법으로 동작하는 것. 대표적으로..

싱글톤 패턴이란? singleton pattern

싱글톤 패턴이란? singleton pattern 여러 디자인 패턴 종류 중 하나로, 하나의 클래스에 오직 하나의 객체 인스턴스만 가지는 패턴이다. * 디자인 패턴: 프로그램을 설계할때 발생했던 문제점들을 객체 간 상호관계 등을 통해 해결할 수 있도록 하나의 '규약'형태로 만들어 놓은 것. 하나의 인스턴스를 만들어 놓고 해당 인스턴스를 다른 모듈들이 어디에서든 공유하며 접근, 사용할수 있다. 싱글톤 패턴으로 만들어진 클래스는 생성자가 여러번 호출 되더라도, 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 보낸다. 주로 공통된 객체를 여러 개 생성해서 사용하는 DBCP (Database Connection Pool)와 같은 데이터베이스 연결 모듈에 많이 사용..

자바가상머신 JVM 이란?

JVM Java Virtual Machine 자바가상머신은 자바 바이트코드인 .class 파일을 OS에 특화된 코드로 변환하여 실행한다. 바이트코드파일은 운영체제에서 바로 실행할 수 없고, 자바가상머신이라는 번역기가 필요하다. 자바가 JVM을 사용하는 이유는 바이트 코드 파일을 다양한 운영체제에서 수정없이 사용하기 위함이다. 이 특징이 자바를 플랫폼에 종속되지 않고 독립적으로 작동하게 하는 것이다. 단, JVM 자체가 플랫폼에 독립적이지는 않다. 때문에 JVM은 윈도우용, 리눅스용 등 각 운영체제용 JVM이 존재하고 각 운영체제의 JVM이 바이트코드파일은 해당 운영체제에서 실행가능한 기계어로 번역하여 프로그램을 실행하는 것이다. 프로그램이 시작되면 JVM은 OS로부터 프로그램을 수행하는데 필요한 메모리를..

컴파일러compiler와 인터프리터interpreter의 차이? + 자바컴파일러와 자바인터프리터의 역할

컴파일 Compile 코딩을 할때 사용하는 프로그래밍 언어들은 사람이 알아볼 수 있는 인간친화적 언어이다. 컴퓨터는 0과 1로 이루어진 기계어 신호만 알아듣기 때문에 이해할 수 없다. 때문에 우리가 작성한 코드를 컴퓨터에서 실행시키려면 컴퓨터가 알아들을 수 있도록 코드를 기계어로 번역해야한다. 코딩을 마친 후 코드로 짜여진 소스들을 소프트웨어로 실행시키기 전 한방에 미리 번역하는 과정이 '컴파일'이고, 번역역할을 해주는 놈이 컴파일러 이다. 이 컴파일 작업이 요구되는 언어들을 컴파일러 언어라고 한다. 대표적으로 C, C++, 등의 언어가 있다. (Java 는 조금 특이하게 인터프리터도 병행한다. 아래서 살펴보겠다. ) 컴퓨터는 이렇게 컴퓨터의 언어로 번역된 코드를 읽기만 하면 되기 때문에 컴파일러언어는 ..