본문 바로가기

JAVA10

Spring Data DynamoDB에서 LocalDate를 편하게 사용해보자! 최근 DynamoDB로 프로젝트를 진행하면서 수많은 시행착오와 불편함을 겪었다. DynamoDB는 현재 Spring Data에서 공식적으로 지원하지 않는다. DynamoDB는 Date만 지원해주고 있는데... 설명은 나중에 추가하겠다. 리플렉션을 이용한 Convertor DynamoDBTypeConbertedTimestamp를 본따 만들어 보았다. 나는 개인적으로 코드 규칙을 비슷하게 만드는게 쉽게 파악해 쓰기 편하다 생각하므로 최대한 비슷하게 만들었다. 물론 실제로는 리플렉션이 아닌 Factory패턴으로 되어있으나 편의상, 그리고 LocalDate Type들의 변동이 없을 것이며 직접 Factorr에 추가해줄 수 있는 구조가 아니기에 간단하게 구현하였다. 거기에 비슷한 구조를 본따 만들면 이미 만들어져.. 2020. 9. 22.
LoggerFactory is not a Logback LoggerContext but Logback is on the classpath 해결방법(Spring + embedded redis) 해당 라이브러리를 빌드 후 서버를 실행하면 아래와 같은 에러가 발생한다. compile group: 'it.ozimov', name: 'embedded-redis', version: '0.7.3' 이전 버전인 0.7.2를 사용하면 정상구동된다. compile group: 'it.ozimov', name: 'embedded-redis', version: '0.7.2' 0.7.2 버전과 0.7.3 버전의 라이브러리를 확인해보니 0.7.3 버전에 org.slf4j가 추가된 것을 볼 수 있다. 위에서 발생한 "LoggerFactory is not a Logback LoggerContext but Logback is on the classpath" 가 Spring boot 내장 slf4j와 충돌해서 발생한 에러임.. 2020. 8. 4.
Spring Boot의 application.propertise 또는 yaml Spring Boot의 application.propertise 또는 yaml에 설정하다보면 자동완성이 되는 것을 많이 보았을 것이다. 지금까지는 스프링 부트에서 제공해주는 편리한 기능이겟지 하고 넘어갔었는데 얼마 전 스터디를 진행 하면서 코드를 까보니 propertise에 ConfigProperties가 연결되어 있고 클래스로 만들어져 있었다. 이를 이용하여 @Value(${spring.redis}) 같이 spel문을 사용하지 않고 해당 클래스를 의존성 주입받아 훨씬 간결하게 코드 작성이 가능했다. 2020. 4. 23.
[OOP] 객체지향프로그래밍 OOP 개발 시 객체 중심으로 협업과 유지보수를 위한 소프트웨어 개발 방법론, 패러다임 과거에는 절차지향, 구조적, 데이터 중심 프로그래밍이 패러다임이였으나 PC가 보급되기 시작하면서 웹 및 각종 소프트웨어의 발전이 생김. 기존의 절차지향 등 프로그래밍 방식을 사용한 시대에는 대부분 업무적으로 사용하는 프로그램이 대부분(계산기 등) 따라서 INPUT OUTPUT에 대한 문서화가 명확해야했으며 그걸 토대로 개발 및 유지보수 진행 이러한 시스템이다보니 객체지향이 굳이 필요 없었다 기존 방식으로는 한계가 있어 객체지향프로그래밍이 패러다임으로 발전 객체지향프로그래밍은 이미 옛날 부터 있던 개념이였다. 다형성, 추상화, 상속, 무엇을 이용해서 만들어짐 즉 OOP의 특징의 정확한 의미는 character가 아닌 ?.. 2020. 4. 17.