컨텐츠 협상이란, 동일한 URI 리소스를 여러가지 표현형으로 제공하여 클라이언트가 원하는 하나를 선택할 수 있게 하는것을 말한다.컨텐츠 협상에는 두 가지 패턴이 있다.HTTP 헤더를 이용(권장): 복잡한 비즈니스 문제들을 따로 분리하기가 용이하고, 여러가지 표현형을 리
REST 는 HTTP 메서드와 URI 사용 등의 웹 표준을 준수하는 아키텍처 스타일로 다음과 같은 기본 철학을 갖고 있다.모든 리소스를 URI로 구분할 수 있다.모든 리소스는 복수의 형태로 나타낼 수 있다.모든 리소스는 HTTP 표준 메서드를 이용하여 접근/수정/삭제
일반적으로 윈도우 운영체제라면, 작업 관리자에 들어가면 실행중인 프로세스를 확인할 수 있습니다. 그중에는 사용자가 볼 수 있는 공간에서 실행되는 프로세스도 있지만, 보이지 않는 공간에서 실행되는 프로세스도 있습니다.전자는 사용자가 보는 앞에서 실행되는 프로세스라는 점에
프로그램이 실행에 마땅히 필요한 요소들을 가리켜 시스템 자원 혹은 줄여서 자원이라고 합니다. CPU, 메모리, 보조기억장치, 입출력 장치 등과 같은 컴퓨터 부품들은 모두 자원이라고 볼 수 있습니다. 즉 모든 프로그램은 실행되기 위해 반드시 자원이 필요합니다.여기서 실행
목표 내용 1. 장치 컨트롤러와 장치 드라이버 입출력 장치는 CPU, 메모리보다 다르기 더 까다롭습니다. 여기에는 두 가지 이유가 있습니다. 입출력 장치에는 종류가 너무 많습니다. 키보드, 모니터, 마우스, USB 메모리, 하드 디스크 등등 장치가 너무 많습니다.
하드디스크는 자기적인 방식으로 데이터를 저장하는 보조기억장치입니다. 이 때문에 하드디스크를 자기디스크의 일종으로 지칭하기도 합니다.플래터: 하드이스트에서 실직적으로 데이터가 저장되는 곳. 수많은 N극과 S극을 저장합니다. N극과 S극은 각각 0과 1의 열할을 수행합니다
RAM 에는 실행할 프로그램의 명령어와 데이터가 저장됩니다. 여기서 중요한 점은 전원을 끄면 RAM 에 저장된 명령어와 데이터가 모두 날아간다는 것입니다. 이렇게 전원을 끄면 저장된 내용이 사라지는 저장장치를 휘발성 저장장치라고 합니다.반면, 전원이 꺼져도 저장된 내용
ALU는 계산하는 부품으로서 레지스터를 통해 피연산자를 받아들이고, 제어장치로부터 수행한 연산을 알려주는 제어신호를 받아들입니다. ALU는 레지스터와 저장장치로부터 받아들인 피연산자와 제어신호로 산술 연산, 논리 연산 등 다양한 연산을 수행합니다.CPU가 메모리에 접근
비전공자 출신 개발자와 개발자와 협력(기획, 운영)하시는 분들이 최소한의 컴공 지식을 갖추고 개발자와 원활한 소통을 하기위한 포스트입니다.컴퓨터 구조 지식은 크게 2가지로 하나는 컴퓨터가 이해하는 정보이고, 다른 하나는 컴퓨터의 네가지 핵심 부품입니다.컴퓨터는 0과 1
jps 는 해당 머신에서 운영중인 JVM 의 목록을 보여준다.q : 클래스나 JAR 파일명, 인수 등을 생략하고 내용을 나타낸다. (단지 프로세스 ID 만 나타낸다)m : main 메서드에 지정한 인수들을 나타낸다.l : 애플리케이션의 main 클래스나 애플리케이션 J
자바에서 사용하는 메모리 영역은 다음과 같다.PC 레지스터JVM 스택힙 (HEAP)메서드 영역런타임 상수 (constant) 풀네이티브 메서드 스택이 영역중에서 GC 가 발생하는 부분은 힙 영역이다. 바꿔 말하면 나머지 영역은 GC 영역이 아니라는 것이다.클래스 인스턴
데이터 중심 애플리케이션을 단독으로 빌드하고, 테스트하고 배포할 수 있다.메세지 구성 요소에 모던한 마이크로 아키텍처 패턴을 적용할 수 있다.이벤트 중심적 사고에서 애플리케이션간의 책임을 분리할 수 있다. 각 서버의 노드는 이벤트의 원본 발행자를 신경쓰지 않고 이벤트를
Topic의 Partition으로부터 데이터 polling (데이터를 가져가는 주체)Partition offset(파티션 데이터의 번호) 위치를 기록(commit)Consumer Group을 통해 병렬 처리각 Consumer Group은 다른 Consumer 그룹에게
Kafka Producer의 역할 Topic에 해당하는 메시지를 생성 특정 Topic으로 데이터를 publish 처리 실패 / 재시도 1) 코드에서 살펴보기 1. 의존성 추가: Gradle 주의사항: Broker 버전과 Client 버전의 하위 호환이 완벽하지 않으므
소스 애플리케이션과 타켓 애플리케이션이 데이터를 전송하는 라인이 매우 복잡해졌다.데이터 전송 라인이 많아지면 배포와 장애에 대응하기 어렵다.데이터 전송에 대한 프로토콜의 파편화가 심하다.LinkedIn 에서 개발하였다.OpenSource이다.Source Applicat
모든 시스템, 특히 분산 시스템은 장애를 겪는다. 이러한 장애에 대응하는 애플리케이션 구축 방법을 찾는 것은 모든 소프트웨어 개발자에게 중요한 일이다. 하지만 회복력을 갖춘 시스템을 구축하는 것에 대해 대부분의 소프트웨어 엔지니어는 일부 인프라 스트럭처나 핵심 서비스의
INTRO 분상 아키텍처에서는 시스템의 물리적 위치 주소를 찾아야 한다. 이 개념은 분산 컴퓨팅 초창기때부터 존재했고 공식적으로 서비스 디스커버리라고 한다. 서비스 디스커버리는 애플리케이션에서 사용하는 모든 원격 서비스의 주소가 포함된 프로퍼티 파일을 관리하는 것 처럼
관계형 DB는 객체지향 언어에서 다루는 상속이라는 개념이 없다. 대신 슈퍼타입과 서브타입 관계라는 모델링 기법이 객체의 상속 개념과 가장 유사하다.슈퍼타입 서브타입 논리 모델을 실제 물리 모델인 테이블로 구현시 3가지 방법을 선택할 수 있다.각각의 테이블료 변환: 위의
다대일 관계의 반대 방향은 항상 일대다 관계이고 일대다 관계의 반대 방향은 항상 다대일 관계다. DB 테이블의 일, 다 관계에서 외래키는 항상 다쪽에 있다. 따라서 객체 양방향 관계에서 연관관계의 주인은 항상 다쪽이다.양방향 연관관계는 항상 서로를 참조해야 한다.양쪽에