페이로드(payload) 위키백과의 설명을 그대로 빌리자면 아래와 같다. 페이로드(영어: payload)는 사용에 있어서 전송되는 데이터를 뜻한다. 페이로드는 전송의 근본적인 목적이 되는 데이터의 일부분으로 그 데이터와 함께 전송되는 헤더와 메타데이터와 같은 데이터는 제외한다. restApi 를 기준으로 생각해보자면 request parameter 를 의미한다. 그 형태는 json 이 많이 사용된다. Base/개념정리 2021.04.02
User-Agent 웹페이지 접속시에 접속한 기기가 어떤 정보를 가지고 있는지 확인할 수 있는데 그중 user agent 를 통해 어떤 브라우저( 익스플로러, 크롬, 사파리 등..)로 접속했는지 알 수 있다. Servlet 를 사용하는 웹서버라면 request header 에서 아래와 같이 확인할 수 있다. String userAgent = request.getHeader("User-Agent") javascript 에서는 navigator 를 통해 아래와 같이 확인할 수 있다. var broswerInfo = navigator.userAgent; 간단하게 크롬브라우저에서 Console 창에서 아래와 같이 확인할 수 있다. 이 값은 모바일에서 WebVnew 를 호출할때 임의로 변경할 수도 있다. 하지만 이를 활용하는.. Base/개념정리 2021.04.02
DAO와 Repository 둘은 모두 Persistence 을 구현하는 객체이다. Persistence는 한글로 표현하면 영속성이다. 그럼 영속성은 뭔가? 좀 더 익숙한 동의어로 표현하면 지속성을 의미한다. IT 기준에서 본다면 프로그램이 종료되어도 유지될 수 있는 데이터를 저장하는 것을 의미한다. 데이터베이스를 사용한다고 했을 때 프로그램상에서 데이터베이스와 통신하는 객체를 우리는 Repository 또는 DAO 라고 부른다. 예전부터 뜻도 모르고 DAO 라는 객체를 만들어서 써왔는데 어느순간 Repository 라는 용어가 등장했다. 이렇게 비슷한 의미를 가진 용어가 등장하게 되면 패키지명, 클래스명, 변수명 등을 정할 때 바빠죽겠는데 불필요한 고통에 시달리게 된다. 이를 사전에 방지하고자 의미를 좀 더 명확하게 정리해보고.. Base/개념정리 2021.04.02
폴링 폴링(polling)이란 하나의 장치(또는 프로그램)가 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(또는 프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식을 말한다. 이 방식은 버스, 멀티포인트 형태와 같이 여러 개의 장치가 동일 회선을 사용하는 상황에서 주로 사용된다. 서버의 제어 장치(또는 프로그램)는 순차적으로 각 단말 장치(또는 프로그램)에 회선을 사용하기 원하는지를 물어본다. Base/개념정리 2021.04.02
프로비저닝(provisioning) 프로비저닝은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. 서버 자원 프로비저닝, OS 프로비저닝, 소프트웨어 프로비저닝, 스토리지 프로비저닝, 계정 프로비저닝 등이 있다. https://ko.wikipedia.org/wiki/%ED%94%84%EB%A1%9C%EB%B9%84%EC%A0%80%EB%8B%9D Base/개념정리 2021.04.02
CDN CDN(Contents Delivery Network)은 물리적으로 떨어져 있는 사용자에게 컨텐츠 제공자의 컨텐츠를 더 빠르게 제공할 수 있는 기술을 말한다. 일반적으로 사용자가 원격지에 있는 서버(Origin Server)로 부터 Content(예. Web Object, Video, Music, Image, Document 등)를 다운로드 받는 것보다 가까이 있는 서버에서 받는 것이 더 빠르므로 사용자와 가까운 곳에 위치한 Server에 해당 Content를 저장(캐싱)하고 Content 요청시에 Server가 응답을 주는 기술이다. 즉, CDN은 Origin 콘텐츠 서버와 엔드유저(클라이언트) 사이에서 컨텐츠를 전달하는 역할을 하며 이로 인해 보다 빠르게 사용자는 보다 빠르게 페이지나 컨텐츠를.. Base/개념정리 2021.04.02
샤딩 구체적으로 파고들자면 전혀 간단하지 않겠지만 간단하게 개념만 이해하고자 한다면 데이터베이스의 수평파티셔닝을 생각하면 된다. 다른점이 있다면 파티셔닝이 논리적인 블럭만 나누는 반면 샤딩은 아예 물리적으로 다른 데에터베이스에 저장한다. 이에 파티셔닝과 달리 샤딩은 SQL Join 이 불가능하다. Base/개념정리 2021.04.02
쿼터(Quota) Quota는 사용자나 혹은 그룹이 가질 수 있는 inode의 수, 혹은 사용자나 그룹에게 할당된 디스크 블럭의 수를 제한함으로써, 디스크 저장 장치의 사용을 제한할 수 있게 해준다. 즉, Quota는 사용자나 그룹의 디스크 사용량을 제한할 수 있는 방법을 제공해준다. Quota의 기본 개념은 사용자가 그들에게 부여된 디스크의 제한 용량 이상으로 사용하지 못하게 하며, 시스템의 디스크 공간을 무제한적으로 사용하지 못하게 한다. Quota는 사용자 별, 파일 시스템 별로 동작된다. 한 사용자에 파일을 만들 수 있는 파일 시스템이 하나 이상이라면, 각각의 파일 시스템에 개별적으로 Quota를 설정해줘야 한다. 출처: https://wiki.kldp.org/HOWTO/mini/html/Quota/x35.html Base/개념정리 2021.04.02
서비스메시(Service Mesh) MSA 구성에서 서비스들이 서로 데이터를 공유하는 방식을 제어하는 방법으로 서비스 별로 커뮤니케이션을 관리하는 다른 시스템들과 달리, 서비스 메쉬는 애플리케이션들 위에 구축된 전용 인프라 계층에서 이를 관리한다. 이를 통해 서비스간 통신에 대한 로깅, 모니터링 등을 보다 원할하게 관리할 수 있게 된다. 대표적인 프로젝트로 구글 Istio가 있는데 사실 나의 최대 관심사는 분산트랜잭션에 대한 부분인데 Istio 의 기능이 어디까지인지는 앞으로 차근차근 알아볼 생각이다. Base/개념정리 2021.04.02
맥북에서 아이폰 디버깅 하기 웹뷰개발을 하다보면 특정 OS 혹은 디바이스에서만 오류가 발생하는 경우가 있다. 이렇게 되면 보통 해당 OS/디바이스 에 맡는 테스트 기기를 찾아야 한다. 그런데 맥북을 사용하고 확인하려는 OS가 iOS일 경우 테스트기기 없이 맥북에서 자체적으로 시뮬레이터를 띄워서 간단하게 디버깅이 가능하다. 원하는 OS버전과 디바이스를 선택해서 확인할 수 있고 사파리 개발자도구와도 연동되어서 굉장히 편리하다. 우선 App Store 에서 Xcode 설치한다. 그리고 Spotlight 창의 띄워서 Simulrator 를 검색해서 실행시킨다. 그럼 아래와 같은 시뮬레이터가 띄워진다. 그리고 일반적으로 iOS 개발팀에 시뮬레이터용 빌드 파일인 *.ipa 파일을 요청해서 받은다음 그 파일을 위 시뮬레이터로 드래그 하면 해당 .. Frontend/WebView개발 2021.04.02