의존성 주입(Dependency Injection)은 객체의 생성과 사용 관심사를 분리하는 프로그래밍 설계 방식입니다. 자바 같은 경우 추상화 도구(인터페이스, 추상 클래스)를 사용하면 손쉽게 의존성 주입하는 코드를 만들 수 있습니다. 오늘은 의존성 주입(DI)이라는 단어가 주는 부담을 덜어낼 수 있도록 이 글을 작성하게 되었습니다. 아직까지 의존성 주입이라는 개념이 대하기 어려우셨다면 뒤에서 이야기할 이야기를 통해 조금이라도 의존성 주입을 쉽게 이해하실 수 있으면 좋겠습니다. 아 그리고 의존성 역전(IOC)은 의존성 주입과 다른 개념이니 의존성 주입과 의존성 역전을 혼동하지 말아 주세요. 분명 둘은 다른 개념입니다. 의존성 정의부터 알아보자 의존성이라는 단어의 사전적인 정의는 "다른 것에 의지하여 생활..
시작하기 자바에서는 모든 변수에 타입을 정의하고 있으며, 변수가 가지는 타입에 따라 담을 수 있는 값의 종류가 달라집니다. 바꿔 말하면 사용하려는 값의 종류에 따라 변수 타입을 결정합니다. 변수의 타입과 값의 상관관계를 이미지화해보면 아래의 그림과 같습니다. 변수에 저장하는 형과 값이 맞지 않는 경우 변수는 값을 가질 수 없고 값도 변수에게 전달 될 수 없습니다. 그렇기 때문에 변수 타입과 값은 서로에게 상호보완적인 요소로 사용됩니다. 위의 그림처럼 알맞은 형에 값을 전달해야지만 값을 저장 할 수 있습니다. 따라서 변수 타입은 값의 특성에 따라 정의되고 사용됩니다. 변수 타입은 크게 기본형(Primitive type)과 참조형(Reference type)으로 구분할 수 있습니다. 이번 글에서는 2가지 타..
값(데이터)을 사용하려면 변수를 선언(Declare) 하자 자바에서 변수를 사용하기 위해서는 변수를 선언해야 합니다. 변수를 선언하는 이유는 값을 저장하는 공간을 확보하겠다는 이야기입니다. 정확히는 컴퓨터가 가진 메모리를 사용하겠다고 미리 컴퓨터에게 말하는 것입니다. 컴퓨터에 메모리가 부족하다고 프로그램이 실행이 안 되는 이유는 이렇게도 설명이 가능합니다. 변수를 선언하는 것은 미리 자원을 확보하는 동시에 사용한다는 의미를 가지고 있기 때문에 변수를 선언하지 않는다면 프로그램은 값(데이터)을 담아둘 공간이 없어 값을 사용할 수 없습니다. 변수를 선언하는 방법은 다음과 같습니다. String message; 변수를 선언하는 방법은 변수 타입과 변수명을 함께 작성하는 것입니다. 위의 예제는 String(문자..
시작하기 Java라는 프로그래밍 언어를 배우게 되면 흔하게 접하는 내용 중 하나가 JVM입니다. JVM은 Java Virtual Machine의 줄임말로 번역하면 자바 가상 기계입니다. Java Virtual Machine(자바 가상 머신)의 역할을 조금 더 구체적으로 설명하면 Java로 만들어진 프로그램을 운영체제에 종속되지 않고 실행되게 해주는 가상 머신이라고 말 할 수 있습니다. 개인적으로는 JVM은 통역사라고 설명하는 게 의미적으로 가장 이해하기 좋다고 생각합니다. JVM이 하는 일을 더 자세히 알아보면 JVM은 정말 멋진 통역사입니다. 지난해에 이슈가 되었던 봉준호 감독님의 통역사처럼 말이죠. 이미지로 보는 JVM이 하는 일 by 통역 일반적인 프로그램이 동작하는 원리를 그려보았습니다. 그림과 ..
변수는 어떤 의미일까? 일반적으로 프로그래밍을 처음 접하게 되면 가장 먼저 접하게 되는 내용 중에 하나가 바로 변수입니다. 변수가 어떤 내용을 가지고 있기에 프로그래밍을 배우면 입문부터 배우게 되는 걸까요? 그 이유는 바로 프로그램의 근간이라고 말할 수 있는 데이터(값)를 프로그래밍에서는 변수라고 부르고 사용하기 때문입니다. 다르게 말하면 변수는 프로그래밍에서 없으면 안 되는 필수 요소입니다. 이해를 돕기 위해서 설명은 데이터와 변수가 같다고 이야기드렸지만 의미적으로 같게 사용하고 있을 뿐 완전히 똑같은 형태를 가지고 있지는 않습니다. 정확한 내용은 아래에서 설명할 변수의 선언과 할당을 보시면 됩니다. 그럼 현실과 빗대어 실제 프로그램에서 사용되는 변수의 역할을 설명해보겠습니다. 지금 쇼핑을 하러 가서 ..
Photo by Gayatri Malhotra on Unsplash 시작하기 구구단 만들기는 개발자로 취업하기 이전 Java 학원을 다닐 때 배웠던 문제입니다. 갑자기 지금 실력으로는 어떻게 코드를 만들 수 있을지 궁금해서 작성한 글이니 심심풀이로 봐주시면 좋겠습니다. 요구사항 2 ~ 9까지 곱셈하여 출력한다. 곱셈은 1 ~ 9까지 수를 제한한다. 샘플 코드 - 간단한 버전 public class MultiplicationTable { public static void main(String[] args) { int minNumber = 2; int maxNumber = 9; int startMultiplyValue = 1; int endMultiplyValue = 9; for (int number = m..
Java는 무엇인가? Java는 썬 마이크로 시스템즈(Sun Microsystems)에서 개발한 프로그래밍 언어로 1999년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어입니다. Java의 중요한 특징은 운영체제(Operating System) 즉 플랫폼(Platform)에 독립적이라는 것입니다. 그 이유는 Java가 "Write Once Run Anywhere"라는 목표를 가지고 만들어졌기 때문입니다. 그렇기 때문에 Java로 만들어진 프로그램은 JVM이 존재하는 운영체제라면 프로그램을 전혀 변경하지 않고도 실행이 가능합니다. 이러한 장점으로 인해 Java는 다양한 운영체제와 호환성을 가진 언어로써 컴퓨터의 발전과 함께 많은 사용자들을 확보할 수 있었습니다. 또한 기존의 프로그래밍(절차 지향) 언어..