토이 프로젝트로 관리자 페이지를 만들게 되었습니다. 관리자 페이지에서 작업을 하게 되면 중요한 부분이 'History' 라고 생각합니다. 누가 언제 만들었고, 누가 언제 수정했는지... 이러한 작업을 소스에서 반복적으로 입력해 주는 것이 아니라, 알아서 입력될 수 있도록 JPA Audit을 사용해봤습니다. 작업을 완료한지는 꽤 되었지만... 게을러서 지금 포스팅을 하게 되었습니다. 더 늦게 올리면 잊어 버릴까봐. 개발환경은 SpringBoot (2.x.x)+ Maven + spring-boot-starter-data-jpa + spring-boot-starter-security 입니다. Spring Security 환경에서만 생성자와 수정자 입력이 가능하다는 점 꼭 기억하고 작업 부탁 드립니다. 먼저 C..
회사에서 곧 DB에서 데이터를 추출하여, 메일로 보내는 작업을 할 것 같아서, 한번 미리 간단하게 예습삼아 만들어 봤습니다.개발 환경은 Springboot + Maven 입니다.먼저 의존성 설정을 해줍니다. org.springframework.boot spring-boot-starter-mail 그리고 properties 설정! 저는 SMTP로 google gmail을 사용하였습니다. spring.mail.host=smtp.gmail.com spring.mail.port=587 spring.mail.username= gmailId spring.mail.password= password spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.p..
API를 호출하여 원하는 데이터를 가지고 왔는데, 이 데이터를 그대로 저장하는게 아니라 가공하여 저장하고 싶은 데이터만 저장해야 하는 경우가 있습니다. 말로 설명하려니 조금 어려운 부분이 있네요... 왼쪽 Order에서 Data를 오른쪽 OrderDTO에 옮겨야 하는 경우!! 휴.,.이럴경우 보통 Getter, Setter 또는 Builder Pattern을 사용하여 값을 옮겨 줍니다.간단하게 변수가 2~5개 정도면 상관 없지만, 엄청 나게 많은 경우에는 가독성도 안좋고 노가다 작업이 될 것입니다. 이럴 때 ModelMapper를 사용합니다. 밑에 Url을 클릭하면 정말 자세하게 설명이 나와있습니다. http://modelmapper.org/getting-started/ 먼저 의존성을 추가합니다. 그리고..
저 같은 경우는 회사에서 Error 처리를 할 때 보통 @ControllerAdvice와 @ExceptionHandler를 사용하여 에러 메시지를 처리하였습니다.그러나 지금 개인 토이 프로젝트를 만들며.. 굳이 저렇게 하기 보다는 아래 깃헙 페이지와 같이 간단하게 에러 메시지를 띄워주게 만들고 싶었습니다. 그래서 조금 시간이 지났지만, 예전에 백기선님의 스프링부트 강의를 떠올리며 만들어 봤습니다. 스프링부트는 기본적으로 basicErrorController를 통해 기본 예외처리가 설정되어 있습니다. 이를 통해 HTML과 JSON으로 Error를 받아 볼 수 있는데요. 바로 Whitelabel Error Page입니다. Springboot를 사용하신다면 무조건 최소 1번은 보셨겠죠??이러한 Whitelab..
'자바 기반의 마이크로서비스 이해와 아키텍처 구축하기'는 약 4달간 함께 했던 회사 선배가 추천해준 책이다.항상 읽어야지 하며 미루다가, 주말을 활용하여 읽어 봤다. 기존 모놀리스 서비스를 구축하는 방법에서, 왜 마이크로 서비스로 구축을 해야 하는지 간단한 예제와 함께 설명해 준다. 먼저 모놀리스 아키텍처는 모든 업무 로직이 하나의 애플리케이션 형태로 패키지 되어 서비스되고, 데이터 또한 한 곳에 모인 데이터를 참조하여 서비스하는 우리가 일반적으로 개발하고 있는 방법이다. 이에 비해 마이크로 서비스 아키텍처는 아주 작은 단위로 동작하는 서비스가 구동되도록 시스템 및 소프트웨어의 구성과 구성 요소 간의 관계를 정의하고 설계하는 방식이다. 두 아키텍처 간 가장 큰 차이 점은, 하나의 애플리케이션 형태가 아닌..
음.. 회사에서 관리자 페이지가 있는데, 5초마다 회원수를 조회하는 페이지 입니다. 많은 사람들이 접속하고, 동일한 쿼리를 계속 호출하기 때문에 DB Connection pool 문제와 여러 비효율적인 문제가 나타났습니다. 이를 개선하기 위해, cache를 도입해봤습니다.저는 오픈소스로 많은 사랑을 받고 있는 ehcache를 사용해봤습니다. https://www.ehcache.org/documentation/ 캐시를 사용하게 되면 Redis, Memcached를 먼저 생각하실 텐데.. 어디서 주워 들은 건 있어서. ㅠㅠ ehcache가 구현이 쉽고 빠르다는 이야기가 생각나서 선택했습니다.캐시는 제 사례와 같이, 동일한 데이터를 반복적으로 조회했을 때 이미 만들어져 있는 결과물을 조회하여, 자원낭비를 줄이..
우리가 보통 api 통신을 하기 위해서 RestTemplate 를 사용합니다. 사용하다가 가끔 Async 방식을 사용해야 할 때가 있습니다. 음... 저 같은 경우는 다른 서버에 Push처럼 notice 줄 때 굳이 응답 값을 기다릴 필요가 없어서 Async 방식을 사용했습니다. 처음에는 그냥 @Async 어노테이션만 사용하면 되는 줄 알았는데.. 세상이나 마상에나... Async로 작동을 안했습니다. ㅠㅠ 음.. 찾아보니 RestTemplate는 sync방식이기 때문에 일반적인 @Async가 안됐던... .. .... 그래서 Async 방식으로 통신을 하기 위해서는 2가지 방법으로 나뉩니다. 1. AsyncRestTemplate 2. WebClient (webflux를 디펜젼시에 추가) 여기서는 일반으..
예전에는 책을 읽어도 제대로 이해가 되지 않아서, 그냥 가볍게 읽고 넘어 갔던 부분이었습니다. 그러나 지금 개발을 제대로 하려고 노력하며 다시 책을 꺼내 읽어보니.... 아주 조금은?? 이해가 되는 것 같습니다. :)DI(Dependency Injection)에 대한 내용은 최범균님의 '초보 웹 개발자를 위한 스프링4 프로그래밍 입문' 책을 읽고 제가 이해한 내용을 적었습니다. 문제가 될 시 삭제 하겠습니다. 1) 의존이란? 사진을 보면 MemberRegisterService 클래스는 DB 처리를 위해 MemberDao 클래스의 메서드를 사용합니다. 이렇게 한 클래스가 다른 클래스의 메서드를 실행할 때, 이를 의존한다고 표현합니다. 위 코드는 MemberRegisterService 클래스가 MemberD..
- Total
- Today
- Yesterday
- update query
- 다중 업데이트
- Slack
- 이펙티브자바
- 싱글턴
- 업데이트 쿼리
- update query multi row
- update query mutiple row
- 슬랙
- visual studio code
- 슬랙 /
- MSSQL
- SpringBoot
- java
- multiple row update
- springboot https
- 그레이들
- update query set multiple
- 뱅셀 유전자
- 뱅크샐러드 유전자
- spring-boot-starter-data-redis
- update set multiple
- gradle
- 이것이 자바다
- 슬랙봇
- effectivejava
- vue.js
- 몽고DB 완벽가이드
- 뱅크샐러드
- update set multi
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |