2024/11/12 9

컴파일러 & 인터프리터

컴파일러와 인터프리터는 프로그래밍 언어로 작성된 코드를 컴퓨터가 이해할 수 있는 기계어로 변환하는 과정에 관여하는 프로그램.컴파일러- 전체 변환 : 소스 코드의 전체를 읽어 한번에 기계어로 변환함. 변환 과정을 거친 후, 생성된 기계어 코드를 실행함.- 속도 : 컴파일 과정 자체는 시간이 걸리지만, 변환된 코드는 직접 실행되므로 실행 시간은 빠름- C, C++, Go, Rust등의 언어가 컴파일러를 사용함- 코드를 수정했을 때 컴파일 과정이 필요함인터프리터 - 한 줄씩 변환 : 소스 코드를 한 줄씩 읽어가며 바로 기계어로 변환하고 실행- 속도 : 컴파일 단계가 없으므로 초기 시작은 빠르지만, 전체 코드 실행 시간은 컴파일러를 사용할 때 보다 느릴 수 있음. 코드를 실행할 때마다 변환 과정을 거치기 때문-..

카테고리 없음 2024.11.12

추상화?

추상화의 의미프로그래밍에서의 추상화는 복잡한 데이터, 구조, 시스템 등으로부터 핵심만을 가려내 덜 자세하게 만드는 것 또는 세부사항, 절차 등을 감추고 인터페이스 등을 만드는 것으로 복잡도를 낮추는 방법을 말함.데이터, 프로세스 추상화 두가지로 나뉨데이터 추상화어떠한 데이터들의 공통점을 모으고 차이점은 버림프로세스 추상화어떠한 내부 프로세스를 숨기는 것. 데이터베이스가 어떻게 데이터를 저장하는지는 모르지만 Inser, upsert등의 쿼리로 데이터를 저장할 수 있음. 출처 인프런 CS 지식의 정석

카테고리 없음 2024.11.12

오버로딩 & 오버라이딩

오버로딩(overloading)이름이 같아도 매개변수 개수, 타입, 순서를 다르게 해서 같은 이름으로도 여러개의 함수를 정의할 수 있는 것을 말함. 이는 프로그램의 유연성을 높이고 결과적으로 코드를 깔끔하게 하는 효과가 있으며 같은 클래서 내에서 사용됨.오버라이딩(overriding)상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의하는 것. 상속 관계 클래스에서 사용되며 static, final로 선언한 메서드는 오버라이딩이 불가능함. 출처 인프런 CS지식의 정석

카테고리 없음 2024.11.12

static?

클래스의 인스턴스가 아닌 클래스에 속하며 클래스의 변수, 메서드 등을 공유하는데 사용됨. 이를 통해 해당 클래스로 만들어지는 객체 사이에서 중복되는 메서드, 속성을 효율적으로 정의할 때 쓰이며 단순히 전역변수가 아니라 클래스 내의 static키워드로 선언하여 이 클래스의 객체들끼리 사용되는 메서드 또는 속성이라는 것을 나타내주는 명시성이라는 장점이 생기므로 쓰임.public class Person {             // 멤버변수(속성)             String name;             int IQ;             int str;             private static final String GUDOC = "큰돌의 터전";             // construct..

카테고리 없음 2024.11.12

클래스 & 객체 & 인스턴스

클래스객체Object를 만들어 내기 위한 틀이며 만들어 낼 객체의 속성과 메서드의 집합을 담아놓은 것객체클래스로부터 만들어지는 실체, 클래스로 선언된 변수인스턴스객체가 메모리에 할당이 된 상태이며 런타임에 구동되는 객체. 객체와 같은 의미로 쓰이기도 함.aws에서는 클라우드의 가상서버라는 뜻  public class Person {         // 멤버변수(속성)        String name;        int IQ;        int str;        // constructor        public Person(String name, int IQ, int str){                  this.name = name;                   this.IQ = IQ;..

Etc... 2024.11.12

CI/CD(Continuous Integration/Delivery & Deployment)

파이프라인코드 구축 ~ 배포까지 일련의 과정들을 CI/CD 파이프라인이라 함총 3가지 단계로 구성됨continuous integration : 코드를 빌드하고 테스트하고 합침. continuous delivery : 해당 레퍼지토리에 릴리즈.continuous deployment : 이를 프로덕션, 즉 실제 서비스에 배포. 테스트함수 등 작은 단위를 테스팅하는 단위테스트, 모듈을 통합할 때 테스트하는 통합테스트, 사용자가 서비스를 사용하는 상황을 가정해서 테스트하는 엔드투엔드 테스트가 대표적, 이외에 코드 보안 테스트도 포함됨머지git이나 svn을 이용해 머지함. 충돌 - 조금 더 작은 단위로 충돌이 일어나게 하는것이 중요함, 작은 이슈 기반으로배포사용자를 위한 서비스 뿐 아닌 내부적으로 QA엔지니어나 ..

카테고리 없음 2024.11.12

클라우드

#1. 가상머신전통적 배포방식물리적 컴퓨터 한 대에 하나의 OS를 깔고 여러 가지 프로그램을 설치하는 방식. 계정을 나눠 여러명의 사용자가 이용할 수 있음. 어떤 프로그램을 설치했을 때 다른 앱에 영향을 미침가상화 배포방식가상머신을 기반으로 배포하는 것을 말함. 가상머신이란 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것을 말함. 계정을 나누는 것이 아니라 한대의 컴퓨터를 가지고 여러개의 OS를 구동할 수 있게 되며 CPU, RAM을 물리적으로 갈아끼는 것이 아니라 설정만으로 이를 수행할 수 있게 됨중간의 하이퍼바이저는 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 해주는 중간계층을 의미하며 이 위에 여러개의 가상머신을 구축할 수 있고 가상머신 위에 OS 그리고 그 위에 앱이 올라가는 형태..

카테고리 없음 2024.11.12

API

API(Application Programming Interface)는 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자 컴퓨터 사이에 있는 중계 계층을 의미함예를 들어 A라는 컴퓨터가 요청을 하고 B라는 컴퓨터가 응답을 했을 때 어떻게 통신할 것인지, 어떠한 데이터를 주고 받을것인지에 대한 방법(HTTP or HTTPS, GET POST,,,)이 정의된 중계 계층을 의미API는 과거로부터 발전되어온 용어로 라이브러리 및 프레임워크를 설명하는 명세서, 웹상에서 WEB API, WEB Socket API등을 가리키는데 현재를 기준으로 API라고 할 때 보통 WEB API를 기준으로 설명함인터페이스인터페이스는 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고받는 경우의 접점이나 경계면.이를 통..

카테고리 없음 2024.11.12

JSON과 XML

#데이터 포맷#1. JSON(JavaSript Object Nitation): Javascript 객체 문법으로 구조화된 데이터 교환형식. python, javascript, java 등 여러 언어에서 데이터 교환형식으로 쓰이며 객체 문법 말고도 단순 배열, 문자도 표현 가능.1. javascript 객체 문법키 : 값 으로 구성됨, 이미 존재하는 키를 중복 선언하면 나중에 선언한 해당 키에 대응한 값이 덮어씌워짐{         "Name" : "hangyeol",         "age" : "30"}const fs = require('fs')const path = require('path')const a = fs.readFileSync(path.join(__dirname,"a.json")) cons..

Etc... 2024.11.12