본문 바로가기
반응형

개발상식16

[개발상식] 멀티 프로세스와 멀티 스레드(파이썬은 멀티스레드 언어일까?) 프로세스와 스레드 프로세스 운영체제에서 생성(fork)되며 메모리에 적재되어 실행되는 프로그램을 말합니다. 운영체제는 PCB를 생성, 레지스터와 물리메모리에 있는 값을 이용해 디스크에 있는 정보를 읽어 실행합니다. 프로세스 하나가 죽더라도 다른 프로세스에는 영향이 가지 않습니다. 자원 공유를 하려면 IPC(Inter Process Comunication; 커널 메시지 큐, 공유메모리, 세마포어 등)를 사용해야합니다. 시분할으로 프로세스가 돌아가며 Context switching 이 느립니다.(프로세스는 공유하는 영역이 없어서 캐시데이터를 다 버리고 다시 캐시를 만드는 과정이 일어나 속도가 느립니다.) 스레드 유저레벨 스레드가있고 커널레벨 스레드가 있지만 보통 프로그래밍 언어의 라이브러리를 사용해 만드는 .. 2021. 8. 17.
[개발상식] 인코딩과 binary 이번게시글에서는 인코딩과 바이너리에 대해 정리합니다. 인코딩이란 바이너리를 사람이 이해할수 있는 문자열로 바꾸는 과정을 말합니다. 01000001를 컴퓨터는 문자 'A'로 인식하지만 사람은 인식하지 못합니다. 이를 A로 바꿔주는 작업을 문자 인코딩이라고 합니다.(아스키 인코딩방식을 이용) 인코딩의 방식에는 아스키만 있는것은 아닙니다. 010000001010000001010000001010000001010000001 위와같은 숫자가 있을때 아스키 인코딩방식으로는 AAAA이지만 다른 인코딩방식을 사용하면 또 다른 문자가 나오게 됩니다. 2진수와 16진수 컴퓨터는 반도체소자들의 집합체이며 각 소자들은 전류가 흐르면 1 흐르지 않으면 0을 표현합니다.(2진법사용) 즉 컴퓨터는 0과1을 모든것을 처리해야 하며 파.. 2021. 8. 16.
[개발상식] 정규표현식이란(with python) 정규표현식이란 문자열을 처리하는 방법중 하나로 특정한 조건의 문자를 검색하거나 추출, 치환 하는데 사용됩니다. 클라이언트단에서 validation을 하기위해 사용하기 하지만 무수히 많은 문자열에서 주민등록번호, email 형식의 포맷팅을 뽑아야할때 사용합니다. 기본 메타 문자 기호 설명 . 모든 문자 | or [] 구성원중 하나와 일치 ^ []안에 사용된경우 제외(위치지정자와 같음) - 범위 정의 \ 다음에 오는 문자를 이스케이프 수량자 기호 설명 * 앞의 문자를 0개 이상 탐욕적으로 찾기 *? *를 lazy 수량자로 찾기 + 하나이상 반복 +? +를 lazy 수량자로 찾기 ? 앞의 문자를 0개나 1개 찾기 {n} 정확히 n번 일치하는 경우 찾기 {n,m} n번에서 m번 일치하는 경우 찾기 위치 관련(\.. 2021. 8. 16.
[개발상식] HTTP란 1. HTTP란? HTTP란 HyperText Transfer Protocol의 약자로 html파일을 전송하기 위해 만들어진 프로토콜입니다. 기본 목적은 osi7계층의 가장 위의 계층인 응용계층에서 단순히 html파일을 전송하기 위한 프로토콜이었지만, 지금은 이미지, 영상, 음성, JSON, XML 등 모든 것을 전송하는데 사용하고 있습니다. 2. HTTP의 버전 (1) HTTP/1.1 1997년에 등장하였습니다. 2014년까지 계속 최신버전으로 유지되었으며 가장 보편화된 버전입니다. (2) HTTP/2 2015년에 등장하여 성능이 개선되었습니다. (3) HTTP/3 전송계층에서 TCP 대신 UDP를 사용하는 방식으로 진화한 버전입니다. 그동안은 신뢰성이 중요시하여 TCP를 사용하였지만 HTTP3 버전부.. 2021. 1. 21.
[개발상식] URI URL 차이점 이번 게시글에서는 URL과 URI의 차이를 간단하게 정리합니다. 1. URI(Uniform Resource Identifier) 소스를 식별하기 위해 통합된 방식으로 URI로 식별 할 수 있는 모든 정보를 말합니다. URI는 URN과 URL을 포함하는 단어로 URL은 URI 안에 있는 정보입니다. 2. URN(Uniform Resource Name) URL의 이름을 부여 한 것입니다. 위치(URL)는 변할 수 있지만 URN는 변하지 않는다는 특징으로 URI에 포함되는 하나의 식별자입니다. 2. URL(Uniform Resource Locator) 리소스가 있는 위치를 말하며 웹브라우저에 입력하면 리소스를 내려받을 수 있습니다. 프로토콜://host:port 가 기본 형식이며 '/'로 path를 ?로 qu.. 2021. 1. 21.
[개발상식] REST API 설계방법과 HTTP Method 1. REST API REST(Representational State Transfer) API(Application Programming Interface) 의 약자로 HTTP URI를 통해 자원을 명시하고, HTTP Method(POST, GET ,PUT ,DELETE)를 통해 CRUD를 구현하여 Resource를 조작하도록 돕는 API입니다. 주로 웹 개발에 주로 사용되는 REST API는 HTML, XML, 일반 텍스트, JSON과 같은 다양한 형식으로 메시지를 반환, 수신 할 수 있어 보다 유연하게 사용 가능합니다. 2. HTTP Method http Method는 GET, POST, PATCH, PUT 4가지로 구분됩니다. 1) GET 방식(READ) GET방식은 서버의 정보를 조회할때 사용하.. 2020. 11. 3.
[개발상식] 참조복사, 얕은복사, 깊은복사(얕은복사와 참조복사는 같은말일까?) 이번게시글에서는 참조복사, 얕은복사, 깊은복사에 대해 포스팅 하겠습니다. 세가지 키워드들은 프로그래밍 언어별로 조금은 다르게 해석합니다. (객체에 메모리 주소를 공유하는걸 얕은복사라고하는사람도 있고 참조복사라고 하는사람도 있습니다.) 이유도 나름대로 정리해보겠습니다. 언어는 python을 사용하여 예제를 만들어봤습니다. 1. 참조복사 a = [1,2,3] b = a b[0] = 4 print(a) // [4, 2, 3] 출력 print(b) // [4, 2, 3] 출력 리스트 a를 선언 내부에는 1,2,3을 넣어주었습니다. b에 a를 복사하고 b의 첫번째값을 4로 변경한 예제입니다. mutable한 특징을 가지고있는 객체들은 단순히 b = a로 복사할경우 참조해야할 주소의 값이 복사되어 주소를 공유하게되.. 2020. 9. 22.
반응형