Software Architecture 5

Spring Boot R2DBC Autoconfig Disable

스프링 부트에서 R2DBC를 쓸 때 설정 초기라 DB도 없고 해서 DB 설정을 끄려고 이렇게 해봤습니다. @SpringBootApplication(exclude = [ DataSourceAutoConfiguration::class, DataSourceTransactionManagerAutoConfiguration::class ]) 허허... 뭐가 문젠진 몰라도 잘 안되는군요. *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a ConnectionFactory: 'url' attribute is not specified and no embedded..

Spring - 예외를 던지지 않고 처리하기

Java를 비롯한 많은 언어에서 예외처리에 대한 이야기는 이미 수없이 논의되었고, 논의 중이고, 앞으로도 논의될 예정입니다. 거기에 소소하게 돌 하나 얹어보려는 마음으로 짤막하게 글 써봅니다...라고 썼지만, 예외 자체를 다룰 생각은 아니고, Spring에서의 예외처리 경험을 잠깐 이야기해보려고 합니다. 알다시피 Spring MVC가 요청을 받아 응답을 돌려주는 과정에서 처리되지 않은 예외가 발생하면 Spring MVC는 500 에러를 돌려줍니다. 2020-10-09 16:27:07.984 ERROR 45790 --- [ctor-http-nio-2] a.w.r.e.AbstractErrorWebExceptionHandler : [d7b3bd38-1] 500 Server Error for HTTP GET "..

객체 지향의 원칙: SOLID

객체 지향의 원칙(The Principles of OOD): from Uncle Bob 요약객체 지향의 다섯 가지 원칙은 각각의 영문 이름의 앞글자를 따서 'SOLID'라 부른다. The Single Responsibility Principle (SRP): 1 객체 1 역할The Open Closed Principle (OCP): interface 사용 (interface는 고정되어 있지만, interface의 상세 class는 확장 가능)The Liskov Substitution Principle (LSP): 상위 class는 하위 class로 대체할 수 있음 (Designed by Contract 참조)The Interface Segregation Principle (ISP): 범용 interface..

Builder Pattern

친한 형과 디자인 패턴 공부를 시작했습니다. (정확히는 가르침 받는 중 :D) 한동안 Software Architecture 카테고리로 올라오는 내용은 이 공부의 결과물이 될 예정입니다. (다른 내용이 올라와야 할 것 같으면 그때 카테고리를 나누든지...) 첫 시작은 가볍게(?) Builder 패턴으로 시작했는데, 처음부터 마냥 쉽진 않더군요. 위키피디아 한글 문서의 'Builder 패턴'에 대한 정의는 "복합 객체의 생성 과정과 표현 방법을 분리하여 동일한 생성 절차에서 서로 다른 표현 결과를 만들 수 있게 하는 패턴" 이라고 되어있습니다. 음... 너무 간단하네요. =_= 한글 위키의 Java 코드(2015/02/07 기준)를 보시면 조금 복잡합니다. 왜냐하면, 단순 Builder 패턴만이 아닌 Fa..