전체 글 78

Spring의 *Aware 인터페이스들에 대한 정리

개요XyzAware 인터페이스는 setXyz(Xyz) 메서드를 가지는 규약이 있어 보인다.메서드를 구현하면, IoC 컨테이너에 의해 콜백 호출된다.종류와 메서드ApplicationContextAware메서드: setApplicationContext(ApplicationContext applicationContext)ApplicationEventPublisherAware메서드: setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher)BeanClassLoaderAware메서드: setBeanClassLoader(ClassLoader classLoader)BeanFactoryAware메서드: setBeanFactory(..

MessageSource의 한글 깨짐 해결하기

아래 코드와 같이, messageSource 빈을 ResourceBundleMessageSource로 생성하면, message.properties 파일에 기재한 한글이 깨지는 경우가 발생하는데, 이는 인코딩 문제일 가능성이 거의 99%다.@Beanpublic MessageSource messageSource() { ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasename("messages"); return messageSource;} IntelliJ를 사용하는 경우라면, 다음과 같이 설정하면 해결된다.Editor > File Encodings 진입 후, Tra..

Spring AOP Introduction 기능을 활용하여 Mixin을 구현해 보자

1. 우선, Robot 타입의 bean을 정의한다.@Componentpublic class Robot { public void performTask() { System.out.println("Performing a task."); }}  2. Robot 타입의 bean의 기능을 추가할 인터페이스들과 구현 클래스 하나씩을 정의한다.public interface Flyable { void fly();}public class FakeFlyable implements Flyable { @Override public void fly() { System.out.println("Flying high in the sky!"); }}public interface ..

@Value 어노테이션에 SpEL 사용법

0. 용어SpEL : Spring Expression Language 1. @Value("${...}")1.1. 프로퍼티 파일에 정의된 값 주입application.properties 파일에 app.name으로 정의된 문자열을 주입할 수 있다.파일에 정의가 없을 경우에 대한 기본값을 제공할 수 있다.@Value("${app.verion:1.0}")private String appVersion; 1.2. 환경 변수 값 주입환경 변수로 정의된 값을 주입할 수 있다.@Value("${JAVA_HOME}")private String javaHome; 2. @Value("#{...}")2.1. bean 주입"myBean" 으로 명명된 bean을 주입할 수 있다.@Value("#{myBean}")private My..

"제프 딘(Jeff Dean)"의 진실 29가지 (펌)

[원문출처] https://medium.com/@Dev_Bono/%EC%A0%9C%ED%94%84-%EB%94%98%EC%9D%98-%EC%A7%84%EC%8B%A4-3fbb4e0e1cf5 제프 딘의 진실 Jeff Dean은 구글의 전설적인 프로그래머로, BigTable, MapReduce등 구글의 핵심기술을 만들었습니다. 그의 위대함을 칭송하기 위해 사람들은 ‘척 노리스의 진실’을 패러디한 ‘제프 딘의 진실’을 medium.com 컴파일러는 제프 딘에게 경고하지 않는다. 그가 컴파일러에게 경고한다. 2000년 후반에 제프 딘의 코드 작성 속도가 40배로 빨라졌는데, 그가 키보드를 USB 2.0으로 업그레이드 했기 때문이다. 제프 딘은 커밋하기 전에 코드를 빌드 해보는데, 컴파일러와 링커에 버그가 있는지..

DevLogs/Article 2021.08.25

클린 아키텍처에 관한 생각

강철의 연금술사가 생각남 새로 시작하는 프로젝트는 논외로 하고, 유지보수 측면에서의 관점임 연금술은 등가교환 법칙 -> 소프트웨어 유지보수도 등가교환 성립 : 나의 노력(고통/시간) + 소스코드 변경 클린 아키텍처를 이해하기 전 : 일반 연금술사 -> 연성진을 분필로 모두 그린 후에야 연성 가능 클린 아키텍처를 이해한 후 : 금단의 문(?)에 다녀온 주인공 형제 -> 박수만 치면 연성 가능

DevLogs/Metaphor 2020.10.24