MSA

Programming/ETC

[Micro Software Architecture] Netflix OSS - 1

"MSA란, 시스템을 여러 개의 독립된 서비스로 나눠서, 이 서비스를 조합으로서 기능을 제공하는 아키텍처 디자인 패턴" - 조대협 Amazon의 선택 2002년 제프 베조스 메일(Amazon CEO) 모든 팀들은 데이터와 기능들 서비스 인터페이스로 연결시켜라 팀들은 이 인터페이스를 통해서만 연락해야 한다. 다른 어떤 커뮤니케이션 방법도 허용되지 않는다. 직접 링크를 보내거나 다른 팀의 스토리지에 직접 액세스해서도 안 되며, 공유 메모리나 백도어 같은 것도 안된다. 모든 커뮤니케이션은 네트워크를 통한 서비스 인터페이스로 이루어져야 한다. 어떤 기술을 쓰든 상관없다. HTTP, Cobra, Pubsub, 독자 프로토콜.. 그건 상관없다. 모든 서비스 인터페이스는 예외 없이 외부에서 이용 가능하게 만들어져야 ..

Programming/Server

[Network HTTP, HTTPS] CORS 정책에 따른 쿠키 보안

최근 몇 주 동안 해당 해결 못했던 이슈를 해결하게 되어 잊지 않고자 글을 작성해본다. 브라우저에서는 현재 접속한 도메인 외에 다른 도메인으로 XMLHttpRequest 요청을 보내는 것을 기본적으로 막고 있다. 가장 주요한 이유로는 현재 사이트에 접속한 사용자의 의도와는 다르게 또는 사용자 몰래, 사용자가 인지하지 못한 다른 서버로 사용자의 데이터를 보낼 수 있기 때문이다. 서버와 달리 웹 클라이언트는 브라우 저상에서 코드가 노출되기 때문에 얼마든지 변조가 가능하다(Uglyfy 라이브러리를 통해 난독화할 경우는 제외하고!). CORS에 대한 자세한 내용은 다음을 참고하자. https://developer.mozilla.org/ko/docs/Web/HTTP/Access_control_CORS HTTP 접..

Programming/Spring

Spring Boot Logging (Convert To JSON Format)

Spring Boot의 기본 로그 객체는 Logback으로 SLF4j의 구현체이다. Spring Boot 프로젝트를 실행하면 아래와 같이 LogBack의 기본 로그 포맷이 콘솔에 찍히게 된다. 업무에 사용되는 모니터링 시스템이나, 로깅 시스템에 따라 로그 포맷을 바꿔야 하는 경우가 있는데 이러한 경우 다음과 같은 방법으로 로그 포맷을 변경할 수 있다. 1. application파일에서 로깅 포맷을 변경 (저는 yml 형태로 application 파일을 설정합니다.) [ resources/application.yml ] logging: pattern: console: "%cyan([GatewayServer]) - %magenta([%d{yyyy:mm:dd HH:MM:ss}]) - %highlight([%-..

JohnMark
'MSA' 태그의 글 목록