본문 바로가기

아키텍처 종류 몇가지 정리해보기 들어가기 아키텍처 종류에 대해서 정리해보았는데 아키텍처만 정리하지 않고 아키텍처를 다루면서 같이 언급되는 대상까지 간단하게 정리했다. 개인적으로 한번 정리하고 싶었고 공유하면 괜찮을 듯해서 정리해보았다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 모노리스(Monolith) 모노리스는 아키텍처라고는 할 수 없다. 전체 애플리케이션을 한 덩어리인 결과물이라고 할 수 있다. 즉, 배포할 때에 결과물도 하나인 경우를 말한다. 과거에 대부분의 애플리케이션이 모노리스 형식으로 많이 배포되었다. 성능 상에 이슈에는 여러 모노리스 애플리케이션을 배치해 수평확장하는 구조로 되어 있다. 모노리스라고 해서 아키텍처가 무시되지는 않는다. 내부적인 아키텍처는 다양한 형태로 .. 더보기
무중단 배포 전략 3가지 들어가기 마이크로 서비스 아키텍처가 되면서 작은 서버가 매우 많아졌다. 새로운 버전의 애플리케이션을 배포하기 위해서 기존에 자동 배포만으로는 한계가 있다. 기존에는 배포할 경우 서비스 중단 후에 배포했지만, 현재는 서비스 중단 없이 배포하고 있다. 그렇기에 배포에도 전략이 필요하다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 배포 전략 현재 잘 알려진 무중단(zero-downtime) 배포 전략은 3가지이다. Rolling Blue-Green Canary Rolling 배포 서버 별로 하나씩 새로운 버전으로 교체하면서 점차적으로 배포한다. 즉, 운영과 배포가 동시에 진행된다. 배포할 때에 두가 형태로 가능하다. 기존 시스템 하나를 중단해서 배포하거나 .. 더보기
[java/kotlin] Spring Boot에서 웹소켓 사용하기 들어가기 웹소켓(websocket)은 브라우저와 웹서버 간에 통신을 할 수 있는 채널을 만드는 기술이다. 기존 HTTP을 사용하는 경우 데이터를 송수신할 때마다 매번 연결하고 끊어지는 작업이 반복된다. 웹소켓은 계속 연결된 상태로 유지되기 때문에 데이터를 더 효율적으로 처리할 수 있다. 웹소켓도 사용하기 위한 자신만의 규약이 있지만 Spring Boot에서 웹소켓을 쉽게 사용하는 방법이 있다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 웹소켓이란? 웹소켓은 양방향 통신하는 프로토콜(RFC6455)이다. 웹소켓은 80과 443위에서 HTTP 프로토콜과 호환되도록 동작한다. 기존 HTTP 폴링에 비해 부하가 낮고 푸시 방식의 실시간 데이터 전송가능하다. .. 더보기
[nexus] Nexus로 Maven Repository 구성 들어가기 Nexus는 sonaytype에서 개발한 Maven Repository 지원하는 오픈소스이다. 가장 많이 사용하고 있는 Maven Repository로 다양한 형태의 Repositry 지원(npm, nuget, pypi,yum, etc)한다. 실제 사용하는 방법을 간단하게 살펴보자. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 환경 구성 아래 다운로드 링크를 통해 설치할 OS에 맞는 파일을 다운받는다. 리눅스는 자체 패키지 관리자에 의해서도 설치 가능하다. 다운로드: https://help.sonatype.com/en/download.html 압축을 풀면 nexus 디렉토리가 있고 그 안에 실행파일이 있다. 아래 처럼 실행하면 된다. # Win.. 더보기
[javascript] 이미지 동적 로딩 Javascript을 이용한 간단한 이미지 동적 로딩을 다룬다. 동적로딩이라는 부분이 애매할 수 있는데, 이미지가 매우크거나 속도나 느린 네트워크에서는 이미지가 바로 보이지 않는다. 일부만 천천히 로딩되거나 중간에 로딩이 실패하면서 이미지가 제대로 보이지 않는다. 이럴 경우 이미지가 제대로 로딩이 완료되면 표시되면 화면에 표시되고 그렇지 않으면 표시되지 않게 할 수 있다. 이를 응용하면 이미지 로딩 중을 기본으로 화면에 표시하고 로딩되면 표시하도록 만들수 있다. 그럼 간단하게 만들 수 있는 방법을 알아보자. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 단순 이미지 로딩 가장 일반적인 이미지를 로딩하는 예제이다. 이미지 태그를 사용한 간단한 예제이다. 위.. 더보기
[javascript] VR Panoramic 360 video player 사용 들어가기 요즘(?) VR에 대해서 관심이 많다. 요즘이라고 해도 너무 오랜동안 관심만 많은 듯 하다. 유튜브에서도 360 video을 제공하고 있다. 웹 환경에서 360 video를 재생하는 방법을 살펴볼려고 한다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 오픈소스 간단하게 360 video를 재생할 수 있는 오픈소스를 찾아보았다. 찾은 오픈소스로 Video.js가 있다. Video.js는 널리 사용하고 있는 HTML5 비디오 플레이어이다. 360 video를 재생할 수 있는 플러그인 사용하여 360 video를 재생할 수 있다. https://github.com/videojs/video.js (Apache License, version 2.0) ht.. 더보기
[jquery] 단순 DOM 데이터 바인딩 들어가기 HTML에서 화면에서 데이터를 추출하고 처리하는 부분이 귀찮은 일이다. 대부분 화면 컨트롤에서 데이터를 가져오고, 가져온 데이터를 화면에 적용하는 일이 매우 많다. 이를 개선해서 출력과 입력을 처리하는 바인딩하는 작업을 만들어보았다. 즉, 데이터 객체와 DOM 객체 간에 양방향 바인딩 처리하는 작업이다. 데이터에 값을 저장하면 자동으로 화면에 적용되고, 컨트롤에 값을 입력하면 자동으로 화면에 출력된다. 어떻게 하는지 살펴보자. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 기존 처리 방식 Ajax을 많이 활용하면 화면에 동적으로 처리해야하는 작업이 많다. 예를 들어 아래 처럼 입력 텍스트와 입력된 텍스트를 아래에 텍스트로 출력하는 예를 보자. 텍스.. 더보기
아파치에서 여러 URL를 톰캣으로 연동하기 들어가기 직접 서버를 구성할 경우 아파치는 웹서버로 톰캣과 같이 연동하여 많이 사용된다. 이런 연동에 아파치 서버의 reverse proxy와 virtual host를 사용한 톰캣 연동을 많이 사용한다. 이를 사용한 톰캣 연동 방법을 간단하게 살펴볼려고 한다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 환경구성 먼저 환경구성을 해보자. 아파치와 톰캣이 있다면 건너뛰어도 좋다. 리눅스 배포판인 경우는 내부 패키지 관리자에 의해서 쉽게 설치 가능하다. Windows 환경이라면 아래 링크에서 다운로드 받을 수 있다. 아파치: https://dlcdn.apache.org/httpd/binaries/win32/README.html 톰캣: https://tomca.. 더보기

반응형