본문 바로가기

공부 기록/영상 후기

(184)
제대로 이해하는 REST API https://youtu.be/7LbylTMlj8M?si=w1AGt3jfRwc6yRmv REST API - RESTful한 API를 말하며 일련의 특징과 규칙 등을 지키는 API를 일컫는다. REST API의 특징 1. Uniform-Interface : API에서 자원들은 각각의 독립적인(서로 종속적이지 않은) 인터페이스를 가지며 각각의 자원들이 url 자원 식별, 표현을 통한 자원 조작, Self-descriptive messages, HATEOAS 구조를 가지는 것을 말한다. * url 자원 식별 : 자원은 url로 식별되어야 한다. * 표현을 통한 자원 조작 : url과 GET, DELETE 등 HTTP 표준 메서드 등을 통해 자원을 조회, 삭제 등 작업을 설명할 수 있는 정보가 담겨야 한다. *..
[NHN FORWARD 22] DDD 뭣이 중헌디? https://youtu.be/6w7SQ_1aJ0A?si=fAUjOr_9__NadgRP DDD에 대한 오해 - DDD는 전술적 패턴이다. => DDD에서 전략적 설계가 중요하다. - DDD는 은탄환이다, MSA로 귀결된다, 방법론이다, 기술이나 구현 영역이다 ... 등등 DDD(Domain Driven Design) - 패턴 사용법이나 구체적 방법론이 아닌, 오히려 추상적인 철학이나 접근법이라고 할 수 있다. - 전략적 설계에 근간을 두고 있다! 전략적 설계 - 비즈니스 도메인 : 회사가 고객에게 제공하는 서비스 영역 - 문제 도메인 : 비즈니스 영역 중 일부(또는 전체) 영역을 소프트웨어를 통해 해결하고자 할 때, 해당 영역(문제 해결을 통한 가치 창출) 전략적 설계 과정 1. 비즈니스 도메인에서 문제..
제대로 이해하는 API | 개발자필수지식 https://youtu.be/9MEnZKjw9H4?si=3-xTaeua2Sk15wVy API(Applicatoin Programming Interface) - 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중계 계층 - 예) 프로토콜, 메서드, 데이터타입 등이 정의된 중계 계층 Interface - 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면. 이를 통해 해당 컴퓨터의 내부 서버가 어떻게 구현되어 있는지는 상관 없이 인터페이스를 통해 통신 등이 가능 API의 장점 1. 제공자는 서비스의 중요한 부분을 드러내지 않아도 된다. 예를 들어 DB 설계 구조나 드러내고 싶지 않은 DB의 테이블 정보, 서버의 상수값 등을 드러내지 않고, 드러내..
kafka 조금 아는 척하기 3 (개발자용)- 컨슈머 https://youtu.be/xqrIDHbGjOY?si=yvPFI6gIrgZF68JM 컨슈머 - 토픽 파티션에서 레코드 조회 토픽 파티션은 그룹 단위 할당 - 컨슈머 그룹 단위로 파티션 할당 - 컨슈머 개수가 파티션 개수보다 커지면 X 커밋된 오프셋이 없는 경우 - 처음 접근이거나 커밋한 오프셋이 없는 경우 - auto.offset.reset 설정 사용 => earliest : 맨 처음 오프셋 사용 => latest : 가장 마지막 오프셋 사용(기본값) => none : 컨슈머 그룹에 대한 이전 커밋이 없으면 익셉션 발생 컨슈머 설정 - 조회에 영향을 주는 주요 설정 - fetch.min.bytes : 조회 시 브로커가 전송할 최소 데이터 크기 => 기본값 1 => 이 값이 크면 대기 시간은 늘지만 처..
kafka 조금 아는 척하기 2 (개발자용) - 프로듀서 https://youtu.be/geMtm17ofPY?si=aDYPrpk_JttKW-ii 프로듀서 - 토픽에 메시지 전송(토픽, 키, 값) Sender와 send()는 서로 다른 쓰레드로 동작 전송 결과 확인 안 함 producer.send(new ProducerRecord("simple", "value")); - 전송 실패를 알 수 없음 - 실패에 대한 별도 처리가 필요 없는 메시지 전송에 사용 전송 결과 확인함 - Future 사용 Future f = producer.send(new ProducerRecord("topic", "value")); try { RecordMetadata meta = f.get(); // 블로킹 } catch (ExecutionException e) { } - 배치 효과 떨어..
kafka 조금 아는 척하기 1 (개발자용) https://youtu.be/0Ssx7jJJADI?si=_phzVmPI-on5Aj81 카프카란? - 분산 이벤트 스트리밍 플랫폼 - 고성능 1. 카프카 클러스터 : 메시지를 저장하는 저장소, 데이터를 이동하는 데 필요한 핵심 역할 수행 2. 브로커 : 각각의 서버라고 보면 됨 3. 주키퍼 클러스터(앙상블) : 카프카 클러스터와 관련된 정보가 기록 및 관리됨 4. 프로듀서 : 메시지를 카프카에 넣음 5. 컨슈머 : 메시지를 카프카에서 읽어옴 토픽 - 메시지를 저장 및 구분하는 단위 - 파일 시스템의 폴더와 유사함 - 한 개의 토픽은 한 개 이상의 파티션으로 구성 파티션 - 메시지를 저장하는 물리적인 파일 - (기본적으로) 추가만 가능한(append-only) 파일 - 오프셋 : 각 메시지의 저장 위치 -..
TwoSum 문제를 풀면서 배우는 내가 짠 코드의 성능을 개선하는 과정!! (feat. 코딩 테스트) https://youtu.be/cxhbgAbAiXI?si=Bj2dDUU__RCQ2Ews 문제 : 리스트에 있는 서로 다른 두 정수의 합이 target number와 같다면 true를 반환하는 함수를 구현하시오. 풀이1) 시간 복잡도는 n^2 def twoSum(nums, target); for i in range(len(nums)): for j in range(len(nums)): if i == j: continue if nums[i] + nums[j] == target: return True return False 풀이2) 시간 복잡도는 n^2 -> 풀이1과 동일하지만 성능이 향상됨 def twoSum(nums, target); for i in range(len(nums)): for j in range..
1장 데이터베이스와 NoSQL - 1. 데이터베이스 기본 https://youtu.be/p9ZL47M8Ygk?si=IDQCwTC2EDNQM079 - 데이터베이스 : 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체, 검색과 갱신의 효율화를 추구함 데이터베이스의 장점 - 데이터 중복 제거 - 권한 없는 접근을 제한 - 지속적인 저장 공간과 질의 처리 공간 제공 - 백업과 복구 지원 - 여러 사용자 인터페이스 제공 - 데이터 사이에 다양한 관계를 효율적으로 표현 - 데이터 무결성 보장 - 규칙을 사용하여 추론하고 수행 - 표준 정의 - 응용 프로그램 개발이 용이하고 요구사항이 변경될 때 대처가 쉬움