본문 바로가기

CS

데이터 바인딩(정적 바인딩, 동적바인딩, 단방향, 양방향 바인딩) 바인딩 어떤 구성요소의 성격이나 값을 확정하는 것, 주로 변수의 자료형, 호출되는 함수의 이름의 타입이 결정되는 과정 정적바인딩과 동적바인딩 정적바인딩(static binding) 자료형이 있는 컴파일 언어(C 등)가 컴파일 되어 기계어로 처리 되기 전에 이루어지는 과정 어떤 변수의 자료형과 함수이름등이 존재 해야하고 이러한 변수, 함수의 정적 바인딩이 문제 없이 처리되면 컴파일 오류가 없이 컴파일이 되고, 실행 파일이 생성 동적바인딩(dynamic binding) 컴파일 타임이 아닌 런타임(실행중에)때 자료형이 결정되는 언어 즉, 인터프리터언어에서 주로 처리되는 방법 따로 컴파일이라는 과정이 없으므로 실행과정 중에 문법적인 오류가 발생할 수 있음 단방향과 양방향바인딩 데이터 바인딩 이란 두 데이터 혹은..
[DB] 데이터베이스 sharding, clustering, replication 공통점, 데이터 베이스를 여러개로 만드는 것 데이터베이스 서버 - 데이터베이스 스토리지 Clustering(클러스터링) 서버가 죽을 경우를 대비하여 서버를 여러개로 만드는 것 성능 향상, 하나가 죽어도 다른 하나로 운영하면 됨 하나의 스토리지를 공유해 병목현상이 생길 수 있음 Active, Active / Active, Stand by : 비용이 저렴하지만 standby -active 전환시 시간이 걸림 Replication Master db, Slave db : 스토리지까지 복제 Salve db를 read 용으로 써서 부하를 분산시키는 용도로 사용하기도 함 Sharding(샤딩) 데이터가 많아져 검색이 느려질 때 테이블을 로우 단위로 나눠 샤드로 나누어 저장 어떻게 분산할 것인지, 어떻게 읽을 것인지 ..
[운영체제]리눅스 파일시스템과 메모리관리 리눅스 파일시스템 파일이란? 컴퓨터에서 의미 있는 정보를 담은 논리적인 단위, 실행파일과 데이터파일로 나뉨 파일시스템 : 파일들을 관리하기 위한 시스템 파일의 할당 블록 : 하드디스크와 데이터를 주고받을 때 사용되는 논리적인 단위보통 4kb) 메타데이터(inod 블록으로 저장), 데이터 파일의 접근, 파일의 경로, 파일의 이름 디렉토리도 파일의 일종 링크 : 다른 디렉토리에서 같은 파일에 접근, 심볼릭 링크(원본파일 경로 저장, 윈도우 바로가기), 하드링크(원본과 구분이 어려움) 파일의 보호 : Access control List, 접근권한 비트(9비트로 관리)→소유자,그룹,기타, rwxr-xr—, 111101100, 754 파일의 일관성 fsck, file system checker- 복구가 불가능한 ..
[네트워크]HTTP 1.0, HTTP 2.0, QUIC HTTP 1.0 TCP 기반 연결 한 번에 요청 1, 응답 1 처리 ->서버 부하, 성능 저하 요청 헤더에 Connection: keep alive를 포함해 연결된 TCP 커넥션을 활용하려는 시도를 함(응답 헤더에 Connection: keep alive을 통해 유지) 하지만 Connection: keep alive는 dumb proxy 등의 문제가 있었음 HTTP 1.1 TCP 기반 peristent connection : 지정한 timeout 동안 connection을 닫지 않음(지속 커넥션이 기본 옵션, Connection: close를 보내야 종료) pipelining : 하나의 커넥션에서 순차적으로 여러 요청을 보내고 그 순서에 맞춰 한 번에 응답을 받는 것(지연 시간을 줄임) head of l..
[네트워크] 실시간 웹(real-time web)과 웹소켓(web socket) Real-time Web 이란? 인터넷에서 창작자가 정보를 만들어내는 즉시 수신할 수 있도록 하는 기술 Server Push: 서버가 클라이언트(브라우저)로 능동적으로 데이터를 전송해 주는 통신 방식 웹소켓이란? 두 프로그램간 메시지를 교환하기 위한 통신 방법 중 하나 과정 handshaking(https, http) → 프로토콜이 ws로 변경(데이터 전송) 별도의 포트는 없으며 기존 포트(80, 443) 사용 frame으로 구성된 메시지라는 논리적 단위로 통신, 메시지는 텍스트와 바이너리만 가능 특징 양방향 통신 :데이터 송수신을 동시에 처리, 클라이언트와 서버가 원할 때 데이터를 주고받을 수 있음(http는 단방향) 실시간 네크워킹, 연속된 데이터를 빠르게 노출(채팅, 주식, 비디오 등) 문자열을 주..
[CS]함수 호출 방식의 구분(call-by-reference) 함수 호출 방식의 구분 call-by-value 와 call-by-reference 공통점 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시 공간이 생성된 후 함수 종료시 해당 공간은 사라진다. (스택 프레임(Stack Frame) : 함수 호출시 할당되는 메모리 블록) 차이점 call-by-value 함수 호출시 전달되는 변수의 값을 복사하여 함수의 인자로 전달한다. 복사된 인자는 함수 안에서 지역적으로 사용되는 local value의 특성을 가진다. 따라서 함수 안에서 인자의 값이 변경되어도, 외부의 변수의 값은 변경되지 않는다. ex) void fuc(int a, int b) 로 함수 내에서 지역변수처럼 사용하는 경우 call-by-reference 함수 호출시 인자로 전달되는 변수..
좋은 코드란 무엇일까? 해당 포스팅의 내용은 바뀔 수 있으며 온전히 작성자 본인의 의견으로 작성되지 않았으나 개발에 대한 기준을 잡고 좋은 코드가 무엇인지에 대해 지속적으로 고민하기 위하여 작성되었습니다. 다양한 사람들의 의견을 참고하여 작성 중입니다. 좋은 코드란? 읽기 쉬운 코드 주석이 있으면 편할 수 있으나 코드와 함께 같이 업데이트되지 않는 경우가 있음, 문화적 배경이나 사용 언어에 따라 사용 변수 및 논리 흐름의 '읽기 쉬움'에 대한 기준이 다를 수 있음 테스트가 쉬운 코드 중복이 없는 코드 좋지 않은 코드가 발생하는 경우 쓰지 않게 된 코드(Dead code) 응급처치를 한 코드 : 억지로 특정 목적을 위해 수정한 코드(기술부채) 적절한 추상화가 이루어지지 않았을 경우 좋은 코드를 위해 고려해야할 점 ..
[CS]OAuth란? OAuth란? 사용자가 어떤 애플리케이션을 이용할 때, 외부 서비스의 API를 이용하여 로그인 하도록 해주는 것(네이버 아이디로 로그인 등) 배경 OAuth가 사용되기 전에는 보안이 취약한 구조 각 애플리케이션이나 웹 사이트마다 개별적인 인증 방식으로 아이디와 비밀번호를 사용하여 로그인(사용자 불안감) OAuth는 제각각인 인증방식을 표준화한 것으로 인증을 공유하는 애플리케이션끼리는 별도 인증과정 불필요 과정 Access Token : 임의의 문자열 값으로 이 토큰을 발급해준 서비스만 알 수 있다, 이 토큰값과 관련된 고객의 정보를 우리는 해당 서비스에 요청할 수 있다. 해당 서비스는 이 토큰을 검증하고, 발급된게 맞다면 해당 고객의 정보를 넘겨준다. 고객이 해당 서비스(네이버)에 로그인하면 네이버는 A..