프로그래밍 언어8 객체 지향 프로그래밍(OOP)란? OOP 란? Object Oriented Programing의 줄임말이며, 현실세계의 일부분을 객체로 만들어서 프로그래밍하는 방법 클래스란? 현실세계에 존재하는 물체에 대한 다양한 특징과 기능을 가진 설계도 객체란? '설계도(클래스)를 실체화한 것'입니다. - 인스턴스화: 클래스로부터 객체를 만드는 과정 - 인스턴스: 만들어진 객체를 그 클래스의 인스턴스 객체 지향 프로그래밍(OOP) 특징 1. 캡슐화 (Encapsulation) - 변수와 메서드를 하나의 단위로 묶어서 클래스로 만드는 것 - 외부에 노출할 필요가 없는 정보들은 은닉 (정보은닉) 세부 구현을 숨기는 목적은 클래스 내부 구현의 응집도(cohesion)를 높이고 외부 다른 클래스와의 결합도(coupling)을 낮추는 데 있습니다. 2. 상속.. 2021. 6. 22. GC(Garbage Collector) 란? 개요 시스템 엔지니어 일을 할 당시 자주 이슈가 되었던 GC에 대해서 공부한 후 정리하겠습니다. GC(Garbage Collector)란? JVM의 Heap 영역에서 사용하지 않는 객체를 제거하여 메모리 공간을 확보하는 데몬 스레드를 말합니다. * 가비지: 사용하지 않는 객체 GC의 종류 Serial GC - 싱글 스레드로 GC를 처리함 - 다른 GC에 비해 Stop-the-world 시간이 김 - JVM 옵션 -XX:+UseSerialGC - 순차적인 GC - Mark-Compact(Sweep 포함) 알고리즘 사용 Parallel GC - Java 8의 defailt GC - Young 영역의 GC를 멀티 스레드로 수행 - Serial GC에 비해 stop-the-world 시간 감소 Parallel .. 2021. 6. 19. JVM(Java Virtual Mahcine)이란? 개요 여러 언어를 다뤄보니 기술의 원리를 알아야 해결되는 문제들을 여러 번 만난 적이 있습니다. 당시에는 구글링으로 해결되면 넘어갔지만 따로 공부가 필요하다고 생각이 들어서 하나하나 정리해보겠습니다. JVM(Java Virtual Mahcine) 란? Java Virtual Machine의 약자로 바이트 코드로 컴파일된 자바를 실행시켜주는 가상 머신입니다. 자바 실행 환경 (java 컴파일 과정) 1) 자바 프로그램이 실행되면, JVM이 OS로부터 메모리를 할당 받음 2) 자바 컴파일러에 의해 자바 바이트 코드(. class)로 변환 3) 변경된 파일들을 class loader를 통해 JVM 메모리 영역(Runtime Data Area)으로 로딩함 - class loader : 런타임 시 클래스들을 로딩.. 2021. 6. 15. [Java] 자바 설치 및 환경 설정하기 소개글 최종적으로 Spring 서버를 구축하기 위한 목적으로 제일 먼저 자바 설치 및 환경설정부터 진행해볼까 합니다. Java 버전이 여러 종류가 있지만, Spring 공식 홈페이지에서 JDK 8 및 11을 권장하고 있었습니다. 그래서 그나마 최신 버전인 JDK 11 버전 설치 및 환경설정을 진행하겠습니다. OracleJDK VS OpenJDK 라이선스 이슈 OpenJDK 같은 경우 어떤 목적이던지 무료이며, Oracle JDK는 개인적인 목적으로 개발하는 경우에만 무료로 허용하게 되어 있습니다. 어떤 목적을 가지고 프로젝트를 개발하는지에 따라서 라이선스는 큰 영향을 주며, 이 부분은 본인의 목적에 따라 어떤 JDK를 사용할지 생각해보면 좋을 거 같습니다. 저는 개인 목적도 있지만 나중에 상업적으로도 고.. 2021. 6. 13. 이전 1 2 다음