스터디에서 작게 프로젝트를 생성해서 코딩을 하다보니 ApplicationContext라는 객체를 사용해서 해당 Interface Ben Type에 해당하는 모든 객체들을 아래와 같이 가져오게 되었다. private final ApplicationContext applicationContext; @PostConstruct public void init() { Collection makersCollection = applicationContext.getBeansOfType(Test.class).values(); ... } ApplicationContext를 통해서 Spring 컨테이너에 등록된 빈들을 가져올 수 있다는 것을 이해하고 이렇게 사용한 것이지만 ApplicationContext란 무엇일까? App..
개발을 하다보니 @Component 어노테이션을 많이 사용하게 되었다. 특히 팩토리 패턴에서는 팩토리 역할을 하는 객체 및 팩토리 객체에서 생성되는 객체들을 @Component 어노테이션을 붙여 빈 생성을 하게 되었다. 그러다보니 언뜻 들은 @Bean 어노테이션도 들었는데 빈을 생성하는데 @Bean과 @Component 어노테이션 둘의 차이 점은 무엇일까? 둘다 빈으로 등록되게 하고 관리되게 해주는 것이지만 살짝 차이 점이 있다. @Bean 외부 라이브러리 또는 이미 정의되어 있는 객체들이 서로 종속성을 가지고 있을 경우의 빈 등록에 사용하는 어노테이션이다. 반환 값이 바로 Bean으로 등록되는 것이다. 이미 정의된 기본 객체를 재정의하거나 내가 만든 객체의 종속성을 위해 빈을 등록할 때 사용한다. 즉,..
개발을 할 때 여러 가지 방법들이 있다. 그것을 디자인 패턴이라고 하는데 Factory Pattern(팩토리 패턴)도 그 디자인 패턴 중 하나이다. (여러 글들을 보면 어디는 디자인패턴이 아니라고 하고 어디는 디자인패턴이라고 하지만 일단 나는 디자인패턴이라고 생각하겠다.) Factory Pattern(팩토리 패턴)이란? 이름에 Factory(공장)이라는 이름이 들어간 패턴이라는 것을 보면 조금은 감이 올 수 있다. 하나의 공장에서 여러 제품을 만들어내듯이 공장 역할을 하는 객체에서 조건에 따라 분기를 해서 필요한 객체를 만들어내는 방식이 바로 팩토리 패턴이다. 하지만 공장에서 제품을 찍어내는 방식을 알다시피 옷을 만드는 공장에서 자동차를 만들어낼수는 없는 법이다. 즉, 공통점이 어느 정도 있는 객체를 생..
안드로이드 개발자는 아니라 웹 개발자지만 회사에서 안드로이드 개발도 1건을 했었어가지고 그곳에서 얻었던 지식들을 나중에 혹시 모르니 기록해봐야겠다. 안드로이드 개발을 처음 맡았을 때 기본으로 있어야했던 기능은 바로 자동 로그인 기능이었다. 보통 모바일 앱들을 보면 로그인은 한 번만 하고 자동로그인을 체크해놓으면 자동 로그인이 구현되도록 되어 있다. 그래서 내가 개발해야했던 프로젝트에서도 자동 로그인을 꼭 구현해야했다. 그 때 사용했던게 SharedPreferences 인터페이스였다. (참고로 나는 Kotlin이 아니라 Java로 안드로이드 앱 개발을 했다.) SharedPreferences 이란 해당 앱의 파일에 저장되는 데이터를 다룰 수 있는 인터페이스이다. 즉, 자동로그인 기능에서 뿐만 아니라 앱을 ..
업무를 하다보면 종종 데이터를 엑셀파일(xls, xlsx)이 아닌 csv 파일로 export할 때가 있다. 한국 웹사이트에서 데이터를 csv 파일로 export 받으면 한글이 깨지지 않곤 하는데 이상하게(100% 장담은 못 한다.) 글로벌 서비스에서 csv 파일로 데이터를 export 하고 Microsoft Excel로 열었을 때 한글이 이상하게 깨진다. 왜일까? export한 CSV 파일이 깨지는 이유 이 이유는 encoding 방식에 있다. 보통 글로벌 서비스에서는 한글로 csv로 export 하면 'UTF-8'로 인코딩 된 파일을 떨궈준다. 하지만, 이 csv 파일을 Microsoft Excel 프로그램으로 열었을 시 MS Excel 프로그램에서 csv 파일은 'ANSI'라는 인코딩 방식으로 자동 ..
아마 이런 일은 드물겠지만 연구과제 프로젝트 개발 중 연구과제를 같이 진행하는 타 회사의 PostgreSql DB를 연결해서 정보를 조회해야하는 일이 생겼다. 즉, 그림을 그리면 아래와 같아졌다. 좀 그림은 이상하지만 간단하게 설명하면 타사의 DB의 데이터를 가져와서 사용해야한다는 점!! 타사 DB의 데이터는 계속 업데이트 되므로 데이터만 받아서 따로 우리 회사 내 서버 DB에 데이터를 넣을 수도 없었다. 그래서 이런 저런 방법을 찾아보다가 PostgreSql의 DBLink라는 기능을 사용하기로 했다. 1. dblink 기능 설치 PostgreSql이 설치되어 있다면 dblink를 사용할 수 있지만 사전 준비가 필요하다. 마치 PostgreSql에서 geometry 컬럼 타입을 사용하기 위해 사전 준비가..
스프링부트에서 캐시 어노테이션을 사용하다보니 여러 가지 에러를 보게 되었다. 그 중 하나가 바로 위 에러인데, @CachePut에 key 값 없이 사용하다보니 제목에도 있듯이 아래 에러가 발생했다. - java.lang.IllegalStateException: Cannot convert cache key 에러 발생 원인 우선 에러 발생은 key 값 없이 사용해서가 아니다. key 값 없이 사용할 경우 자동으로 key 값이 아래와 같이 들어가지게 된다. 또한 존재하지 않는 key 값을 사용했을 경우에 또한 존재하지 않는 그 새로운 key 값으로 캐시 데이터가 저장되서 상관 없다. 그렇다면 왜 이런 에러가 발생하는 것일까? 그건 바로 key 값이 없고 또한 해당 함수에 별도 파라미터 있을 경우 해당 함수의 ..
저번에 설치했었던 H2 DB!! 만들었으면 사용을 해야한다. https://pamyferret.tistory.com/entry/H2-DB-%EC%84%A4%EC%B9%98%EB%B6%80%ED%84%B0-%EC%8B%A4%ED%96%89-%EB%B0%8F-%ED%85%8C%EC%8A%A4%ED%8A%B8%EA%B9%8C%EC%A7%80?category=877020 [ H2 ] DB 설치부터 실행 및 테스트까지 지금까지 DB라곤 Oracle, PostgreSql, SqlLite를 사용해봤다. 그러던 중 이번에 지인들과 함께 하는 과제에서 H2라는 DB를 처음 사용해보게 되었다. 난생 처음 사용해보는 H2 DB는 도대체 무엇일까? H2 DB란? pamyferret.tistory.com H2를 스프링부트에 연..
- Total
- Today
- Yesterday
- 스프링부트
- 메시지큐
- eclipse
- DB
- PostgreSQL
- postgres
- Caching
- 캐싱
- rabbitmq
- HttpClient
- 어노테이션
- k8s
- mockito
- Java
- 데이터베이스
- 역직렬화
- 자바
- enum
- DATABASE
- MAC
- JPA
- ssh
- 공간데이터
- Spring
- annotation
- cache
- 캐시
- Intellij
- 이클립스
- springboot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |