분류 전체보기

    Bean과 Component 뜯어보기

    스프링 빈은 IoC 컨테이너가 관리하는 자바 객체로서 컨테이너에 의해 생명주기가 관리되는 개체를 의미합니다. 스프링에서는 해당 빈을 생성하는 방법으로 크게 2가지가 있습니다. Component 어노테이션과 Bean 어노테이션을 사용하는 방법이죠. 각각의 방법이 무슨차이가 있고 어떻게 사용해야 되는지 살펴보도록 하겠습니다. @Bean 개발자가 컨트롤이 불가능한 외부라이브러리들을 Bean으로 등록하고 싶은 경우에 사용되는 방법입니다. 사용 예시는 다음과 같습니다. Json 파싱을 해주는 ObjectMapper 클래스를 사용하려면 다음과 같이 Gradle 의존성을 설정해줘야 합니다. 그러고 나서 external library의 jackson-databind 패키지를 까보면 모듈 패키지 안에 ObjectMapp..

    가비지 컬렉션에 대해

    Garbage Collection(가비지 컬렉션) 가비지 컬렉션이란 메모리 관리 기법중에 하나로 JVM의 Heap 영역에서 동적으로 할당했던 메모리 중 필요없게 된 메모리 객체를 모아 주기적으로 제거하는 프로세스를 뜻합니다. 다른 언어 같은 경우는 프로그래머가 수동으로 메모리 할당 및 해제를 해줘야 했지만 Java에선 가비지 컬렉터가 메모리 관리를 대신해주기 때문에 개발자 입장에서 메모리 누수 문제에 대해 관리하지 않고 개발에만 오롯이 집중할 수 있는 장점이 있습니다. 참고로 가비지 컬렉터 개념은 자바에만 있는 개념은 아닙니다. 파이썬, 자바스크립트 및 브라우저 역시 자체적인 가비지 컬렉션이 구현되어 있기 때문에, 메모리 관리 없이 웹페이지를 만들 수 있습니다. 가비지 컬렉션 대상 가비지 컬렉션은 어떤 ..

    프로세스 동기화란

    동기화 프로세스는 서로 데이터를 주고받으며 협력하며 실행됩니다. 이렇게 협력적으로 실행되는 프로세스들은 일정한 순서에 맞게끔 실행되어야 합니다. 그래서 동기화가 필요합니다. 동기화란 프로세스들 사이에서 수행 시기를 맞추는 것을 의미합니다. 프로세스 간에 수행 시기를 맞추는 것은 크게 2가지를 내포하고 있습니다. 1. 실행 순서 제어 프로세스를 올바른 순서대로 실행하는 것을 의미합니다. 글을 쓰는 프로세스와 글을 읽는 프로세스가 있다고 가정해봅시다. 만약 두 프로세스를 아무 순서대로 실행하게 된다면, 글을 쓰기도 전에 글을 읽는 프로세스가 실행될 것입니다. 글을 읽는 프로세스는 글 안에 값이 존재해야만 읽을 수 있는 특정 조건이 만족되어야 실행을 이어나갈 수 있습니다. 따라서 글을 읽기전에 글을 쓰는 프로..

    객체지향 프로그래밍이란?

    객체지향 프로그래밍(OOP - Object Oriented Programming) 객체 지향 프로그래밍은 인간 중심적 프로그래밍 패러다임입니다. 객체는 우리가 일상생활을 하며 인식할 수 있는 모든 사물이라 할 수 있습니다. 다시 말하자면 객체 지향 프로그래밍이란 실제 사물을 프로그래밍으로 옮겨와 모델링 하는 것으로 이해하시면 됩니다. 인간이 보는 사물(Object)는 사실 속성(Variable)과 행위(Method)로 구성되어 있습니다. 이러한 사물, 즉 객체를 만드는 설계도가 클래스(Class) 입니다. 자바를 예로 들자면 public class Person { string height; public void walk() { Sytem.out.println("앞으로 걸어갑니다.") } { Person이..