
가비지 컬렉션(Garbage Collection)이란?가비지 컬렉션이란 말 그대로 ’쓰레기 수집’이다. 여기서 쓰레기란 사용하지 않는 메모리 영역이고, 이들을 수집해서 제거하는 것이 가비지 컬렉션이다.사실 자바에서만 국한된 기능이 아니라 예전부터 컴퓨터 과학 분야에서 사용되던 방식이다. 가비지 컬렉션은 메모리 관리 기법 중 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중 필요없게 된 영역을 해제하는 기능이다.이를 자바에서는 JVM(Java Virtual Machine)이 대신 수행한다. 때문에 개발자가 메모리 누수(Memory Leak)을 크게 신경쓰지 않아도 된다.GC(Garbage Collection)의 대상자바에서는 런타임 시 힙(Heap) 영역에 동적으로 메모리를 할당하게 된다. 힙에는 최상..

인텔리제이에서 내부 클래스를 선언할 때, static으로 선언하지 않으면 경고 메세지가 표시된다.그냥 그런가 보다 하고 있었는데, 어느날 궁금해서 찾아보다가 간과하기에는 큰 문제점이 있다.내부 클래스는 외부 클래스를 참조비정적(non-static) 내부 클래스는 외부 클래스와 강하게 연결되어 있기 때문에 외부 클래스의 맴버 변수나 메서드에 접근할 수 있다. 특히 비정적(non-static) 맴버 클래스의 인스턴스는 외부 클래스의 인스턴스 없이는 독립적으로 존재할 수 없기 때문에 암묵적으로 연결된다.public class OuterClass { private int outerNum = 10; public void func1() { InnerClass innerClass = new I..

Goals빌드(Build)란?Maven이란?Gradle이란?Maven과 Gradle의 차이 빌드(Build)란?먼저 소프트웨어에서 말하는 빌드란 무엇인가?소프트웨어 빌드(software build)는 소스 코드 파일을 컴퓨터나 휴대폰에서 실행할 수 있는 독립(standalone) 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과우리가 코딩을 하고, 실행을 할 때 빌드를 거친 뒤에 실행이 되는데, JAVA를 예로 들면, .java 파일을 JVM에서 실행 가능한 바이트 코드 덩어리인 .class 파일로 변환하는 컴파일 과정도 빌드의 부분 집합이다.또한, 여러개로 분리된 소스파일들이 컴파일 된 결과물에서 최종 실행가능한 파일을 만들기 위해 필요한 부분을 찾아서 연결해주는 작업인 정적링크 과정도 빌드..

Goals람다식(Lambda expression)이란?함수형 인터페이스(Functional Interface)java.util.function 패키지 람다식(Lambda expression)이란?JDK1.8부터 추가된 람다식(Lambda expression)은 메서드를 하나의 식(expression)으로 표현한 것이다.메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 ‘익명 함수(anonymous function)’이라고도 한다. 람다식 작성 방법람다식은 메서드에서 이름과 반환 타입을 제거하고, 매개변수 선언부와 몸통 {} 사이에 ->를 추가한다.예를 들어 두 값 중 큰 값을 반환하는 메서드 max가 있다고 하자.int max(int a, int b) { return a > b ..

세상은 객체(object)들로 이루어져 있다. 여기서 객체는 눈으로 보는 것, 머릿속으로 상상되는 모든 것이 될 수 있다. 즉, 사람이 세상을 인지하는 방식대로 프로그래밍하는 것이 객체 지향의 출발이다. 따라서 객체 지향은 이전의 방식(구조적 프로그래밍)보다 사람 지향적인 방법론이라고들 한다.객체 지향의 대표적인 4대 특성은 아래와 같다.캡슐화(Encapsulation)상속(Inheritance)추상화(Abstraction)다형성(Polymorphism)Java는 대표적인 객체지향 프로그래밍 언어다. 객체지향 언어는 기존의 프로그래밍 언어에 몇 가지 객체지향적인 특징들을 추가한, 보다 발전된 형태의 언어다. 위 객체 지향 특성들이 Java에 어떻게 녹아 들어가 있는지 알아보자. 추상화 == 모델링 == ..
지네릭스(Generics)란? 지네릭스는 JDK1.5에서 처음 도입된 문법으로 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. 자바는 객체 지향 개념 중 하나인 다형성이란 개념이 있다. 이 다형성을 자바에서는 형변환으로 크게 지원하고 있는데, 이 형변환은 프로그래머에게 큰 편리함을 주지만 컴파일러에게는 큰 약점이 된다. 컴파일러는 변수 안에 담겨 있는 실제 값을 확인하지 않는다. 단지 참조 변수의 타입을 보고 문법적 오류가 있는 지를 판단한다. 이것이 컴파일러의 한계인데, 다형성에서 이로 인한 런타임 에러가 발생할 수 있다. 하나의 예시를 들어보자. import java.util.ArrayList; public class GenericsTest { pub..

모든 일은 많은 사람들에 의해 수 차례 반복되고, 연구되면서 여러가지의 방법론이나 원칙이 성립된다. 그 중에서 가장 효율적이고 합리적인 방법론이 정립되고, 그 일을 수행하는데 일반적으로 적용하는 대표 방법론 또는 원칙이 된다. 객체 지향 언어를 이용해 객체 지향 프로그램을 올바르게 설계해 나가는 방법이나 원칙이 존재한다. 로버트 C. 마틴(Robert C. Martin)이 2000년대 초반 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙으로 제시한 것을 마이클 페더스(Michael Feathers)가 두문자어로 소개한 SOLID다. SRP(Single Responsibility Principle) : 단일 책임 원칙 OCP(Open Closed Principle) : 개방 폐쇄 원칙 LSP(Lisk..

변수의 종류 Java에서 변수의 종류를 결정짓는 중요한 요소는 ‘변수의 선언된 위치’다. 인스턴스 변수(Instance variable) 인스턴스를 생성할 때 만들어지며, 독립적인 저장 공간을 가진다. 인스턴스마다 고유한 값을 가질 수 있다. 인스턴스를 생성해야 사용할 수 있다. 클래스 변수(class variable) 인스턴스 변수 앞에 static을 붙이기만 하면 되므로 스태틱 변수라고도 한다. 클래스가 메모리에 로딩될 때 생성되어 프로그램이 종료될 때 까지 유지된다. 모든 인스턴스가 공통된 저장공간을 공유하므로 한 클래스의 모든 인스턴스들이 공통적인 값을 유지한다. 인스턴스를 생성하지 않아도 사용할 수 있다. 지역 변수(local variable) 메서드 내에 선언되어 메서드 내에서만 사용 가능하며..
- Total
- Today
- Yesterday
- Spring Boot
- 스프링 mvc
- 파이썬 for Beginner 솔루션
- Spring Data JPA
- git
- git branch
- Gradle
- 생활코딩 javascript
- 김영환
- fetch join
- 쉽게 배우는 운영체제
- JPA
- 프로그래머스
- 방명록 프로젝트
- 스프링 테스트
- git merge
- jsp
- Python Cookbook
- 지옥에서 온 git
- Do it! 정직하게 코딩하며 배우는 딥러닝 입문
- 쉘 코드
- 스프링 컨테이너
- Spring
- 선형 회귀
- 운영체제 반효경
- Thymeleaf
- 파이썬 for Beginner 연습문제
- 패킷 스위칭
- Computer_Networking_A_Top-Down_Approach
- 스프링
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |