
지난 번 작성된 글 제어의 역전(IOC) 이란? 에서 간단히 알아본 의존성 주입(Dependency Injection)이란 무엇인지 함께 알아보는 시간을 가지도록 하겠습니다! Dependency Injection이란? 의존성 주입(Dependency Injection)은 객체 지향 프로그래밍에서 사용되는 디자인 패턴입니다. 이 패턴은 코드의 결합도를 낮추고, 유연성과 재 사용성을 높이는 것입니다. 지난 게시글에서 알아봤던 것처럼, DI 패턴을 통해 제어의 역전이 일어나고, 이를 통해 코드의 재사용성 유연성이 향상되는 것이죠. 의존성 주입에 대해 알아보기 위해 먼저 의존성이 무엇인지 살펴보겠습니다. Dependency란? 의존성은 어떤 클래스가 제대로 작동하기 위해 필요한 다른 클래스나 컴포넌트를 말합니다..

제어의 역전(Inversion of Control, Ioc)는 소프트웨어 엔지니어링에서 매우 중요한 개념입니다. 이 시간에는 함께 제어의 역전이 무엇을 의미하는지 알아보도록 하겠습니다. 편의상 예제 코드는 Java를 사용하도록 하겠습니다! 제어의 역전 IoC(Inversion of Control) 전통적인 동작 방식 class TraditionalService { private Dependency dependency; public TraditionalService() { this.dependency = new Dependency(); } public void doSomething() { dependency.performAction(); } } class Dependency { public void per..

"자바는 객체지향적 언어이다" 라는 말을 들어보신 적이 있을겁니다. 사실 객체라는 용어는 실생활에서 접하기보단 이렇게 코딩을 하면서 많이 접하게 됐었는데요, 그 때마다 아 객체는 이런거지! 오브젝트는 이런거지! 하고 스스로 명확한 정의를 내린 적은 없었습니다. 그러다가 강의를 보면서 자바 공부를 하고 있었는데, 강사님께서 말씀을 하셨습니다. 자바 개발자라면, 객체지향을 자기 만의 언어로 표현할 줄 알아야한다. 저는 자바 개발자라고 생각해왔었는데... 아니었나봅니다. 오늘은 객체지향 프로그래밍이란 무엇인가 함께 알아보고 진정한 자바 개발자로 함께 성장해나갔으면 좋겠습니다. 객체지향 프로그래밍과 클래스 단위 프로그래밍 객체지향에 관한 정의를 내릴 때 저는 스스로 혼란스러웠던(?) 경험이 많습니다. 누군가는 ..

좋은 알고리즘은 무엇일까? 개발자는 좋은 알고리즘을 만들어야 하는 숙명을 가지고 있습니다. 같은 기능이라도, 좋은 알고리즘을 사용한 코드는 더 메모리 사용량이 적거나 빠른 속도를 제공하기 때문입니다. 방금 말했듯, 우리는 알고리즘의 성능 척도를 메모리를 얼마나 사용하느냐, 실행 속도가 얼마나 빠르냐 등으로 나타냅니다. 사용자의 요구에 따라 다르겠지만, 일반적으로 우리는 알고리즘을 설계할 때 실행 속도를 기준으로 성능을 계산하는데요, 이 기준을 시간 복잡도 라고 부릅니다. 시간 복잡도는 어떻게 구하나요? 우리가 어떤 코드를 실행시켰는데, A가 구현한 코드는 실행에 5초가 걸리고, B가 구현한 코드는 실행에 3초가 소요되었습니다. 그렇다면 B가 구현한 코드가 A가 구현한 코드보다 좋은 알고리즘을 가지고 있다..

자료구조란? 자료 구조는 데이터가 어떤 구조로 저장되고, 또 어떻게 사용되는지를 나타냅니다. 우리가 평소에 선언하여 사용하던 변수나 배열 같은 것이 자료구조에 해당합니다. 오늘은 이 자료 구조가 정확히 어떤 것이고, 또 왜 중요한 지에 대해 쉽게 알아보도록 하겠습니다! 그러기 위해서, 자료구조의 개념을 우리가 잘 아는 동화인 이야기에 빗대어 알아보는 시간을 가져보려 합니다. 여우의 음식은 어디에 담아야 할까? 여우와 두루미가 서로 음식을 준비한 뒤 바꾸어 먹기로 약속을 하였습니다. 그래서 여우는 두루미를 위한 식사로 두부를 준비하였네요! 1번 네모난 그릇, 2번 동그란 그릇, 3번 컵 중 어느 용기에 담아가는 것이 좋을까요? 이렇게 음식을 담을 때 어느 용기에 담을 지 고민하는 것 처럼, 데이터를 담을 ..