직전 포스팅에서 Application에서 Bean 설정을 했지만,, AutoConfigure에서 설정된 그 값이 그대로 출력되는 현상을 발견했다. 이러한 현상이 발생한 원인을 한번 더 언급하자면, Component Scan을 통해서 직접 설정한 값이 Bean으로 등록된다고 하더라도 이후에 진행되는 EnableAutoConfigure에서 추가적인 Bean 등록이 이루어져 직접 설정한 Bean의 값이 Overwrite 되었기 때문이다. 따라서, 우리는 이 값이 이미 Bean으로 등록되어 있을 때, AutoConfigure에서 Bean으로 등록하지 않도록 하는 @ConditionalOnMissingBean Annotation을 추가적으로 달아줌으로써 해결할 수 있다. @Configuration public c..
저번 포스팅에서 살펴봤던 자동 설정을 실습을 통하여 살펴보고자 한다. 먼저, AutoConfigure를 제공할 프로젝트를 생성하고 아래의 과정을 진행한다. (물론 해당 의존성을 주입받을 프로젝트도 준비하자.) Step 1. Creation AutoConfigure Project 1. pom.xml chany spring-boot-starter 1.0-SNAPSHOT org.springframework.boot spring-boot-autoconfigure org.springframework.boot spring-boot-autoconfigure-processor true org.springframework.boot spring-boot-configuration-processor true org.sprin..
Spring Boot에서 Bean은 총 2단계로 등록이 된다. 그 내용을 살펴보기 전에 먼저, @SpringBootApplication을 확인해보면 아래와 같은 구조로 되어 있는 것을 볼 수 있다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = Auto..
객체 지향 프로그래밍 (OOP : Object Oriented Programming) 객체 지향 프로그래밍이란 말 그대로 객체를 사용해서 프로그래밍을 하는 것을 권장 (지향)하는 방식이다. 여기서 객체라는 의미에 주목을 할 필요가 있다. 단어 자체가 추상적이지만 우리는 그 뜻을 아예 모르는 것은 아니다! 가장 이해하기 쉬운 것이 우리 생활에 객체가 어디 있는지 살펴보는 것이다. 그 예로.. 카카오톡의 메세지를 볼 것이다 ! 왼쪽 카카오톡을 한번 살펴보자. 가장 간단하게, 우리는 Data라고 인식할 수 있는 부분이 빨간 네모를 쳐둔 총 8개일 것이다. 하지만 우리는 메세지 3개로 인식한다. 왜일까? 보이는 데이터는 8개인데, 그렇다면 변수도 똑같이 8개를 가지고 있어야 하는 게 아닌가? 그 이유는 메세지가..
지지난, 지난 포스팅에 이어서 나의 앱 만들기 마지막 포스팅 시간이다. 저번 포스팅까지 Class에 대해서 알아보았다. 그럼 이제 Instance가 무엇인지에 대해서 간단하게 알아보자. 우선 저번 포스팅에서 작성했던 코드를 가져와 보자. class Accounting{ public static double ValueOfSupply; public static double vatRate; public static double expenseRate; public static double[] Dividend; public static double getDividend(double DividentRate){ return getIncome() * DividentRate; } public static double g..
우리는 지난 포스팅에서 Method를 통해 코드를 좀 더 직관적이고, 깔끔하게 작성하는 것을 해보았다. 그럼 지난 코드를 다시 가져와서 Method화만 시킨 코드의 한계점을 한번 생각해보자. 지난 시간에 작성한 코드는 아래와 같다. public class AccountingMethodApp { public static double ValueOfSupply; public static double vatRate; public static double expenseRate; public static double[] Dividend; public static void main(String[] args) { ValueOfSupply = 10000.0; vatRate = 0.1; expenseRate = 0.3; ..