728x90

Computer Science/Common 7

CI/CD

CI/CD 개념 CI (Continuous Integration) 지속적인 통합과 CD (Continuous Delivery | Continuous Deployment) 지속적인 배포 를 합친 용어입니다. CI 는 코드의 변경 사항이 정기적으로 빌드 및 테스트되어 작업중인 레포지토리 혹은 환경에 통합되는 것을 뜻하고 CD 는 Continuous Delivery 의 경우 공유 레포지토리 혹은 환경으로 자동으로 Release 하는 것, Continuous Deployment는 자동으로 배포까지 되는 것을 의미합니다. CI 가 중요한 이유는 자동화와 테스트에 있습니다. 새로운 기능을 추가하거나 업데이트시에 매번 커밋과 머지를 해야하는 상황이 오는데, 이를 하루에 수십번씩 할 때도 있다는 점이 문제입니다. 모든..

동기 Vs 비동기

동기 동기 방식은 서버에 요청을 보내고 요청이 끝나면 다음 동작을 실행하는 방식입니다. 순서에 맞추어 진행되어 코드를 구성하거나 제어하기 쉽습니다. 하지만 여러가지 요청을 동시에 처리할 수 없어 효율이 떨어집니다. 비동기 비동기 방식은 서버에 요청을 보낸 뒤 요청이 끝나기 기다리지 않고 다음 요청을 바로 실행하는 방식입니다. 작업을 기다릴 필요없이 동작하기 때문에 자원을 효율적으로 사용할 수 있습니다. 하지만 작업이 완료된 결과를 제어하기 어렵습니다. 예를 들어 A 의 결과를 B 에서 사용하는 경우 A 와 B 가 동시에 실행되면 B 에서 오류가 날 수 밖에 없습니다. 또 비동기 요청의 응답을 처리할 콜백 함수를 함께 설정하게 되는데, 여러 개의 콜백함수가 중첩되어 콜백 헬이 발생하는 단점이 있습니다. 또..

아스키 코드 Vs 유니코드 Vs UTF-8

아스키 코드 아스키코드(ASCII)는 128개의 문자로 이루어진 7비트 부호입니다. 알파벳, 숫자, 특수기호와 컴퓨터에 필요한 몇 가지 문자만 정의되어 있습니다. 출처 - https://velog.io/@exploit017/%EC%95%84%EC%8A%A4%ED%82%A4-%EC%BD%94%EB%93%9C%ED%91%9C 유니코드 점점 여러 나라에서 컴퓨터를 사용하다 보니 아스키코드만으로는 문자들을 표현하기 부족해져서 만들어진 코드 체계입니다. 숫자와 글자가 1:1 로 매핑되는 형태를 가지고 있습니다. 16비트를 표현해 최대 65536자를 표현 가능하며 영문, 숫자, 한글, 한자 등 모든 글자는 이론적으로 2 바이트를 띄고 있습니다. 다만 일부 문자는 2바이트를 초과할수도 있습니다. UTF-8 유니코드를..

Call By Value Vs Call By Reference

Call By Value 개념 함수에서 변수를 호출할 때 값을 직접 호출하는 방식입니다. 호출되는 순간 메모리 공간에 이를 위한 임시 공간이 생성되고 변수의 값을 복사하여 바로 전달합니다. 복사된 값은 함수 안에서 로컬 변수의 특성을 가지게 되며 함수 안에서 값이 변경되어도 외부 변수의 값은 변경되지 않습니다. def add_int(a, b): a += b return a a = 10 b = 15 sum_ab = add_int(a, b) 위와 같은 방식으로 함수를 정의했다고 생각하겠습니다. a 의 값에 b 를 더한 뒤 a 를 리턴해주는 방식으로 구성되어있는데, 단순히 a 와 b 의 값을 불러와서 함수에 사용했으므로 함수 안에서 a 가 변경되어도 변경사항이 외부의 a 에 적용되지 않습니다. Call By ..

메모리 구조

메모리 구조 개념 프로그램이 실행되기 위해서는 프로그램이 메모리에 로드되어야 합니다. 또 프로그램에서 사용되는 변수들을 저장할 메모리도 필요합니다. 이를 위해 컴퓨터의 운영체제는 프로그램의 실행을 위해 다양한 메모리 공간을 제공합니다. 대표적인 메모리 공간은 네 영역으로 나눌 수 있습니다. 코드(code) 영역 데이터(data) 영역 스택(stack) 영역 힙(heap) 영역 이 영역을 그림으로 표현하면 오른쪽과 같습니다. 코드 영역 코드 영역은 실행할 프로그램의 코드가 저장되는 영역입니다. 또 텍스트 영역이라고도 부릅니다. 코드 역역에 저장된 명령어는 CPU 에 의해 하나씩 처리됩니다. 데이터 영역 데이터 영역은 프로그램의 전역 변수와 정적 변수가 저장되는 영역입니다. 프로그램의 시작시 할당되며, 프로..

RESTful api

RESTful api 개념 RE presentational S tate T ransfer 의 약자로 api 작동 방식에 대한 소프트웨어 아키텍쳐입니다. 즉 네트워크 상태의 전이에 대한 표현입니다. 일반적으로 Resource(URI), Method(GET, POST 등), Representation of Resource(데이터의 표현 방식, JSON, XML 등) 을 통해 상태를 표현한다면 우리는 RESTful 한 api 를 작성했다고 말 합니다. 규칙 REST 아키텍쳐는 몇 가지 규칙이 있습니다. 균일한 인터페이스 서버가 표준 형식으로 정보를 전송하는가 에 관한 문제입니다. 예를 들어 서버는 데이터를 텍스트로 저장하고 HTML 형식으로 전송할 수 있습니다. 요청은 리소스를 식별해야 합니다. 이를 위해 균..

프레임워크 Vs 라이브러리

프레임 워크 개념 프레임 워크는 이름에서 볼 수 있듯 개발을 하기 위한 프레임, 뼈대를 제공해줍니다. 전체 동작 방식은 프레임워크가 제공하고 우리는 프레임워크의 일정 부분만 개발하는 것으로 프로그램을 만들 수 있습니다. 굳이 표현하자면 독립을 해서 집을 구했는데 매매가 아닌 전세로 들어가는 것과 비슷하다고 보면 됩니다. 통제권은 집주인이 쥐고 있어 집에 소파를 놓거나 티비를 놓는 작업은 마음대로 할 수 있지만, 베란다를 터서 방을 넓힌다거나 벽을 허물고 창문을 설치하는 등의 행위는 할 수 없는 느낌입니다. 즉 통제권은 프레임워크가 쥐고 있고 우리는 허용범위 내에서만 코드를 작성할 수 있습니다. 원래는 프로그래머가 가지고 있던 객체의 제어를 프레임 워크가 대신 해준다는 의미로 제어역전 이라는 용어를 사용하..

728x90