1. 싱글톤이 안티 패턴이 될 수 있는 이유 [ 싱글톤이 안티 패턴이 될 수 있는 이유 ] 우리는 싱글톤패턴을 구현할 때 다음과 같이 구현을 한다. 다음은 자바 언어를 이용해 싱글톤 패턴을 구현하는 전형적인 코드이다. public class Person { private static Person instance; private Person() { throw new IllegalStateException("Private Constructor"); } public static Person getInstance() { if (instance == null) { instance = new Person(); } return instance; } } 싱글톤 패턴은 전역 상태(Global State)로 이용할 수 있..
1. 체크 예외(Check Exception)와 언체크 예외/런타임 예외 (Uncheck Exception, Runtime Exception)의 차이 [ 예외(Exception)의 종류 ] 에러(Error) 예외(Exception) 체크 예외(Check Exception) 언체크 예외(Uncheck Exception) 에러(Error) java.lang.Error 클래스의 하위 클래스들이다. Error는 메모리가 부족하는 등과 같이 시스템이 비정상적인 상황인 경우에 사용한다. 주로 JVM에서 발생시키기 때문에 애플리케이션 코드에서 잡아서는 안되며, 잡아서 대응할 수 있는 방법도 없다. 따라서 시스템 레벨에서 특별한 작업을 하는게 아니라면 이러한 에러 처리는 하지 않아도 된다. 예외(Exception) j..
이번에는 애플리케이션 컨텍스트에 대해 간단히 알아보도록 하겠습니다. 1. 애플리케이션 컨텍스트(Application Context) [ 애플리케이션 컨텍스트(Application Context)란? ] Spring에서는 빈의 생성과 관계설정 같은 제어를 담당하는 IoC(Inversion of Control) 컨테이너인 빈 팩토리(Bean Factory)가 존재한다. 하지만 실제로는 빈의 생성과 관계설정 외에 추가적인 기능이 필요한데, 이러한 이유로 Spring에서는 빈 팩토리를 상속받아 확장한 애플리케이션 컨텍스트(Application Context)를 주로 사용한다. 애플리케이션 컨텍스트는 별도의 설정 정보를 참고하고 IoC를 적용하여 빈의 생성, 관계설정 등의 제어 작업을 총괄한다. 애플리케이션 컨텍..
1. 의존성 주입(Dependency Injection)의 개념과 필요성 [ 의존성 주입(Dependency Injection) 이란? ] Spring 프레임워크는 3가지 핵심 프로그래밍 모델을 지원하고 있는데, 그 중 하나가 의존성 주입(Dependency Injection, DI) 이다. DI란 외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴으로, 인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮출 수 있게 해준다. 의존성이란 한 객체가 다른 객체를 사용할 때 의존성이 있다고 한다. 예를 들어 다음과 같이 Store 객체가 Pencil 객체를 사용하고 있는 경우에 우리는 Store객체가 Pencil 객체..
1. 좋은 코드는 어떤 코드일까? [ 1. 이야기하는 코드 ] 과거에 수능을 치르던 시절, 국어 영역 김동욱 선생님은 좋은 지문이라면 부족함이 있는 문장 뒤에 부연 설명이 있어야 한다는 얘기를 하셨습니다. 예를 들어 다음과 같은 문장을 우리가 읽었다고 합시다. 망나니 개발자는 오늘도 일을 하러 간다. 위의 문장은 상당히 함축적이기 때문에, 우리가 위의 문장을 읽었다면 당연히 다음과 같은 의문이 생길 것입니다. 어떤 일을 하러 가는데? 혹은 직업이 뭔데? 그리고 좋은 지문이라면 위의 문장에 이어 다음과 같은 이야기가 있을 것입니다. 망나니 개발자는 오늘도 일을 하러 간다. 그는 N사를 다니는 백엔드 개발자이다. 그는 Java와 Spring 프레임워크를 이용해 개발을 하고 있다. 저는 좋은 코드 역시 좋은 ..