'기타' 카테고리의 다른 글
| 채용시 나의 기준 (0) | 2021.11.05 |
|---|---|
| 이메일을 이용한 업무처리 방법(논리적인 메일 커뮤니케이션 방법 등) (0) | 2021.08.10 |
| RESTful API 설계에 대한 개인적인 생각 - 1 (0) | 2021.04.29 |
| jenkins에서 job을 실행한 유저 정보를 얻는 방법 (0) | 2020.10.07 |
| HTTP 응답헤더에 서버 종류 삭제 - 보안처리 목적 (0) | 2020.07.10 |
| 채용시 나의 기준 (0) | 2021.11.05 |
|---|---|
| 이메일을 이용한 업무처리 방법(논리적인 메일 커뮤니케이션 방법 등) (0) | 2021.08.10 |
| RESTful API 설계에 대한 개인적인 생각 - 1 (0) | 2021.04.29 |
| jenkins에서 job을 실행한 유저 정보를 얻는 방법 (0) | 2020.10.07 |
| HTTP 응답헤더에 서버 종류 삭제 - 보안처리 목적 (0) | 2020.07.10 |
참고
- site map 설명 링크
코드
- 참고 링크
@RestController
public class TestController {
@Autowired
private RequestMappingHandlerMapping re;
@GetMapping("/sitemap.xml")
public String getSitemap() {
Map<RequestMappingInfo, HandlerMethod> handlerMethods = re.getHandlerMethods();
List<String> urls = new ArrayList<>();
for (Entry<RequestMappingInfo, HandlerMethod> entry : handlerMethods.entrySet()) {
urls.addAll((entry.getKey().getPatternsCondition().getPatterns()));
}
// Construct XML response from urls and return it
}
}| 자주 사용하는 Spring valid관련 내용들 - 메모 (0) | 2022.04.05 |
|---|---|
| logback file appender 설정 (0) | 2021.08.26 |
| springboot + webflux + websocket 공부 - 2 (0) | 2020.09.23 |
| springboot + webflux + websocket 공부 - 1 (0) | 2020.09.23 |
| spring model mapper 성능 관련 (0) | 2020.08.09 |
메모 목적의 글로써 생략되는 내용이 많이 있을 수 있는점을 감안해주세요
(우아콘 2020참고)
| CSV파일 파싱 샘플(with apache commons-csv) (0) | 2021.11.12 |
|---|---|
| java 2글자국가코드_및_국가명_리스트조회 프로그램 (0) | 2021.08.05 |
| java stream filter를 이용한 중복 제거 방법(샘플) (0) | 2021.04.06 |
| java 사설인증키 처리 - 1 (0) | 2021.03.31 |
| 금칙어 처리(with Aho corasick 알고리즘) (1) | 2020.11.12 |






| sentry logback(java) 연동 방법 (0) | 2021.01.12 |
|---|---|
| pinpoint 설치 방법- 1.8.4 버전 (0) | 2019.06.26 |
| 오라클 사이트에서 JDK8 다운로드해서 리눅스 설치용 wget 명령어 생성 방법 (0) | 2019.05.06 |
| nexus 설치 및 셋팅 (0) | 2019.03.22 |
| pinpoint 설치 방법- 1.8.1 버전 (0) | 2018.12.21 |
참고 : 에버노트에 작성했던 글을 옮겨서 블로그에 작성한건데 양식 유지가 안되서 읽기가 조금 안 좋네요
3. dzone 참고 링크
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
-- 사용법 확인하고 싶으면 -h옵션
java -jar arthas-boot.jar -h
-- 현재 어플리케이션의 로그 레벨확인
logger
-- search class detail
예) sc -d yourClassName
-- ROOT라는 로거의 레벨을 debug로 변경
-- logger -c 클래스로더의해시--name ROOT --level debug
예) logger -c 51081592 --name ROOT --level debug
샘플


| AWS의 오류 재 시도 횟수 및 지수 백오프(or MSA에서 실패 재 시도) (0) | 2019.12.16 |
|---|---|
| online thread dump analyzer (0) | 2019.08.20 |
| JEP 307: Parallel Full GC for G1 에 대해서 - JDK 10에서 변경사항 (0) | 2019.02.01 |
| Tomcat에서 SecureRandom 처리 문제로 시작이 느린 이슈 처리 (0) | 2018.10.02 |
아래 내용은 개인적인 생각임을 감안해주세요
2022년 4월 20일 내용 추가
원글: https://news.hada.io/topic?id=6121
일관성 유지 : URL/헤더/인증/상태코드..
ISO8601 UTC 날짜 포맷 사용
Public Endpoint만 인증 예외. 나머지는 모두 인증 필수
헬스 체크 Endpoint 제공
API 버저닝
API 키 인증 적용
합리적인 HTTP 상태코드 와 메소드 사용
각 Endpoint에 자체만으로 설명 가능한 간단한 이름을 사용
표준 에러 응답 사용
POST에서 생성된 자원을 리턴
PUT 대신 PATCH
최대한 구체적으로
Pagination 사용
각 자원을 확장 가능하게 (expand 등의 쿼리 파람을 줘서 추가 정보도 리턴 가능하게 설계)
원글: https://news.hada.io/topic?id=5823
- "AWS가 15년간 배운 좋은 API를 만드는 6가지 원칙" 에 대한 메모
1. API는 영원하다!
2. 하위 호환성을 지켜주세요.
3. 고객 사용 사례에서 거꾸로 만드세요.
4. 오류가 명시적인 API를 만드세요.
5. 바로 목적과 사용법을 이해할 수 있는 API를 만드세요.
6. 구현 세부 정보는 누출되지 않게 신경을 쓰세요.
- 초기 API 설계에서 실수하는 것
- Smithy를 통한 확장성 높은 API 만들기
몇년간 엄청나게 많은 API를 개발했는데, 그 중에서 RESTful API 설계에 대한 몇가지 개인적인 생각을 메모로 남겨봅니다.
- 참고로, 인프라 셋팅/운영, 개발 실무, 개발팀 셋팅 및 SW개발 프로세스 수립, 많은 사용처에게 API 제공 등의 업무를 겪어서 단순 기술적인 부분이 아니라 조직원, 고객(?)에 대한 고민도 일부 반영된 내용입니다.
또 생각나면 추가로 작성하겠습니다.
| 이메일을 이용한 업무처리 방법(논리적인 메일 커뮤니케이션 방법 등) (0) | 2021.08.10 |
|---|---|
| Hyperledger fabric- 블럭체인 플랫폼 (0) | 2021.05.21 |
| jenkins에서 job을 실행한 유저 정보를 얻는 방법 (0) | 2020.10.07 |
| HTTP 응답헤더에 서버 종류 삭제 - 보안처리 목적 (0) | 2020.07.10 |
| git repository 변경하기 (0) | 2020.04.22 |
메모
어플리케이션을 개발하다보면 분산락 처리를 신경써야하는 과제들이 간혹 있는데 저는 보통 2가지를 사용합니다.
| redis client performance 최적화 (0) | 2023.07.13 |
|---|---|
| aws 환경하에서 redis 모니터링 커맨드 예(keys 같은 커맨드) (0) | 2022.01.12 |
| lettuce기반 redis 커넥션풀 연결 샘플 소스 - java (0) | 2020.09.04 |
| redis 최신버전 설치방법(with remi) (0) | 2020.07.27 |
| redis 설치(with epel) (0) | 2019.09.04 |
시스템이 너무 복잡해져서 ROI 등을 따져서 적절하게 MSA로 전환하는데,
이벤트 방식으로 데이터 변경 사항을 전파시(loose 커플링, 장애 복구성 등의 장점 때문에) 순서에 대한 보장의 문제 등을 겪게 될겁니다.
이런 순서에 대한 문제를 해결하기 위한 방법이 있기는 하지만, 코드 및 아키텍쳐의 복잡성을 낮추기 위해서 저는 보통 zero-payload방식을 사용(추천)합니다.
간단히 핵심 내용만 정리하자면 아래와 같습니다.

참고 링크: reflectoring.io/microservice-communication-patterns/
Microservice Communication Patterns
A discussion of several different communication patterns between distributed micro services.
reflectoring.io
| MSA에서 outbox패턴을 이용한 트랜잭션 처리하기 (0) | 2020.07.10 |
|---|---|
| Microservice Architecture ( outbox pattern) (0) | 2019.09.18 |