전체 글(32)
-
동기(Sync), 비동기(Async), Blocking, Non Blocking 차이
동기 & 비동기: 처리해야 하는 작업들을 어떤 '흐름'으로 처리할 것인가에 대한 관점 동기: A 함수가 B 함수를 호출할 때, B 함수의 결과를 A 함수가 처리하는 것. B의 작업 완료 후 리턴을 기다리거나, 바로 리턴을 받더라도 미완료 상태라면 작업 완료 여부를 계속 확인하면서 신경 쓰는 것. 비동기: A 함수가 B 함수를 호출할 때, B 함수의 결과를 B 함수가 처리하는 것. A가 B를 호출할 때 콜백(callback) 함수를 함께 전달해서, B 함수의 작업이 완료되면 함께 보낸 콜백함수를 실행한다. A는 B의 완료 여부를 신경 쓰지 않는다. Blocking & Non Blocking: 처리해야 하는 작업의 전체적인 흐름을 막느냐 안 막느냐에 대한 관점, 제어권이 누구에게 있는지Blocking: ..
2024.08.20 -
Docker로 mosquitto 실행 및 설정
docker로 mosquitto 실행 및 설정해 보겠습니다. 1. docker로 mosquitto 이미지를 다운로드합니다. docker pull eclipse-mosuitto:latest 2. mosquitto 컨테이너를 실행합니다. 웹소켓 포트를 8083으로 설정하기 위하여, 8083번과 기본 mqtt 1883 포트 두 가지를 설정했습니다. docker run -d -p 8083:8083 -p 1883:1883 --hostname mosquitto --name mosquitto eclipse-mosquitto:latest 3. 실행한 mosquitto 설정을 변경합니다. 3-1. mosquitto/config로 이동하여 mosquitto.conf를 수정할 것입니다. $ docker exec -it mo..
2023.02.11 -
[오브젝트 : 코드로 이해하는 객체지향 설계] 6. 메시지와 인터페이스
1. 협력과 메시지 클라이언트-서버 모델 클라이언트 : 협력 안에서 메시지를 전송하는 객체 서버 : 협력 안에서 메시지를 수신하는 객체 클라이언트 ⇒ Screening / 서버 ⇒ Movie 클라이언트 ⇒ Movie / 서버 ⇒ DiscountPolicy 객체는 협력에 참여하는 동안 클라이언트와 서버의 역할을 동시에 수행한다. 다른 객체와 협력을 가능하게 해주는 매개체 ⇒ 메시지 협력과 관련된 용어 메시지 메시지 : 객체들이 협력하기 위해 사용할 수 있는 의사소통 수단. 메시지는 오퍼레이션명(operation name)과 인자(argument)로 구성된다. 메시지 전송 / 메시지 패싱 : 한 객체가 다른 객체에게 도움을 요청하는 것. 메시지 전송은 메시지에 메시지 수신자를 추가한 것 메시지 전송자 : 메..
2021.09.08 -
[오브젝트 : 코드로 이해하는 객체지향 설계] 5. 책임 할당하기
1. 책임 주도 설계 데이터보다 행동을 먼저 결정하라 협력이라는 문맥 안에서 책임을 결정하라 책임 주도 설계의 흐름 시스템이 사용자에게 제공해야 하는 기능인 시스템 책임을 파악한다. 시스템 책임을 더 작은 책임으로 분할한다. 분할 된 책임을 수행할 수 있는 적절한 객체 또는 역할을 찾아 책임을 할당한다. 객체가 책임을 수행하는 도중 다른 객체의 도움이 필요한 경우 이를 책임질 적절한 객체 또는 역할을 찾는다. 해당 객체 또는 역할에게 책임을 할당함으로써 두 객체가 협력하게 한다. 2. GRASP패턴 GRASP(General Responsibility Assignment Software Pattern)⇒ 일반적인 책임 할당을 위한 소프트웨어 패턴으로 객체에게 책임을 할당할 때 지침으로 삼을 수 있는 원칙들..
2021.09.02 -
PostgreSQL 컬럼 추가 / 변경 / 삭제 쿼리
1. 컬럼 추가 ALTER TABLE 테이블명 ADD COLUMN 컬럼명 데이터타입 제약조건; ex) TEST테이블에 null을 추가할 수 없는 tel컬럼을 추가한다. ALTER TABLE TEST ADD COLUMN tel varchar(11) NOT NULL; 2. 컬럼 변경 ALTER TABLE 테이블명 RENAME COLUMN 컬럼명 TO 변경할컬럼명; //컬럼명 변경 ALTER TABLE 테이블명 RENAME COLUMN 컬럼명 TYPE 변경할데이터타입; //컬럼 데이터 타입 변경 ex) TEST tel컬럼을 address로 변경한다. ALTER TABLE TEST RENAME COLUMN tel TO address; ex) TEST address컬럼의 데이터타입을 varchar(120)으로 변..
2021.08.31 -
PostgreSQL 테이블 생성/삭제 쿼리
1. 테이블 생성 CREATE TABLE 테이블명 ( 컬럼명 타입 제약조건 ); ex) name, age컬럼을 가진 TEST라는 테이블이 생성된다. CREATE TABLE TEST ( name varchar(10) primary key, age integer not null ) 2. 테이블 삭제 DROP TABLE 테이블명; ex) TEST라는 테이블이 삭제된다. DROP TABLE TEST;
2021.08.29