외우기 쉽게 대비되는 개념은 싸움 붙여봤습니다.
💡 동기 synchronous
시간이 얼마가 걸리든 요청 시 응답이 바로 보장되어야 함
💡 비동기 Asynchronous
요청과 응답 순서가 보장되지 않음
vector
동기식으로 한 스레드가 벡터 작업중이면 다른 스레드는 벡터 보유하지 못함
array list
비동기식 여러 스레드에서 동시에 작업이 가능함
💡 Serialization
직렬화라는 의미
데이터를 저장할 때 데이터의 구조나 객체의 상태 등을 다른 (혹은 같은) 컴퓨터로 보낼수 있게 어떤 포맷 형태로 변환하는 과정
자바에서는 자바 객체를 json으로 변환하거나 json을 자바 객체로 변환하는 라이브러리를 뜻함
hash
데이터를 삽입 / 삭제 할 때 기존 데이터를 밀어내지 않고 데이터와 관련된 고유 번호를 생성해 인덱스로 사용하는 방식임. 처리 속도가 빠름
손교수님이 자바기초때 열 번은 말하셨던거 같다. 콜바이밸류 얘기만 들으면 손교수님 얼굴이 떠오른다.
값에 의한 호출 call by value
함수에 인자를 전달할 때 인자의 값만을 복사하여 전달하는 방식. 이 방식으로 전달하면 함수 내에서 어떤 처리가 있어도 원본 값은 변경되지 않음
참조에 의한 호출 call by reference
함수에 인자를 전달할 때 주소를 전달하는 방식. 이 방식으로 전달하면 함수 내에서 어떤 처리가 있을 때 원본 값이 변경됨
배열
미리 연속된 공간을 할당받고 데이터를 저장하는 방식. 인덱스를 사용하기 때문에 접근이 빠르지만 데이터를 삭제해도 공간은 남아있기 때문에 메모리 사용은 덜 효율적임
연결리스트
인덱스로 값을 찾는다는 개념보다는 노드간의 연결로 데이터를 저장하는 방식. 데이터 삭제할 때 논리 주소만 수정하면 되므로 공간 낭비가 없음. 대신 인덱스 사용하는 배열보다는 접근 속도가 느린 편
컴파일 과정이다
난 여태까지 c-구조체 cpp-클래스 라고 이해하고 살았는데... 차이점이 있었다.
구조체
하나의 구조로 묶일 수 있는 변수들의 집합
클래스
변수에다 메소드까지 묶을 수 있다.
=> 함수포인터 이용하면 구조체도 클래스처럼 메소드 묶을 수 있긴 함
변수의 주소값을 저장한 변수
cpp에서 사용할 때는 가리키는 변수가 어떤 주소를 가리키는 상태(즉 초기화 된 상태)여야 사용 가능함