본문 바로가기

CS/개발자필수지식9

[CS] 추상화의 의미 추상화란 무엇인가? 추상화의 의미 프로그래밍에서의 추상화는 복잡한 데이터, 구조, 시스템 등으로부터 핵심만을 가려내 덜 자세하게 만드는 것 또는 세부사항, 절차 등을 감추고 인터페이스 등을 만드는 것으로 복잡도를 낮추는 방법 추상화는 데이터, 프로세스 추상화 크게 2가지로 나눠짐 데이터 추상화 어떠한 데이터들의 공통점을 모으고 차이점은 버림. 예를 들어 고양이, 강아지, 원숭이 등의 객체들의 공통적인 특징을 묶어 동물이라는 카테고리로 카테고리화 시킴 프로세스 추상화 어떠한 내부 프로세스를 숨기는 것. 예를 들어 데이터베이스가 어떻게 데이터를 저장하는지는 모르지만 단순하게 insert, upsert 등의 쿼리로 데이터를 저장할 수 있음 ex1) abstract class Animal { public abs.. 2023. 8. 27.
[CS] 오버로딩과 오버라이딩 오버로딩과 오버라이딩 오버로딩(Overloading) 오버로딩은 이름이 같아도 매개변수 개수, 타입, 순서를 다르게 해서 같은 이름으로도 여러 개의 함수를 정의할 수 있는 것. 이는 프로그램의 유연성을 높이고 결과적으로 코드를 깔끔하게 하는 효과가 있으며 같은 클래스 내에서 사용 ex1) class Calculator { void multiply(int a, int b){ System.out.println("결과는 : "+(a * b) + "입니다."); } void multiply(int a, int b,int c) { System.out.println("결과는 : "+(a * b * c) + "입니다."); } void multiply(double a, double b){ System.out.prin.. 2023. 8. 26.
[CS] 클래스와 객체와 인스턴스의 차이, static 키워드 사용하는 이유 및 단점 클래스와 객체와 인스턴스의 차이 클래스 클래스(class)란 객체(object)를 만들어 내기 위한 틀이며 만들어 낼 객체의 속성과 메서드의 집합을 담아놓은 것 객체 객체(object)란 클래스로부터 만들어지는 실체, 클래스로 선언된 변수 인스턴스 인스턴스(instance)란 객체가 메모리에 할당이 된 상태이며 런타임에 구동되는 객체. 객체와 같은 의미로 쓰이기도 함. 인스턴스는 AWS의 클라우드의 가상서버라는 말로도 쓰임 예시 class Person { constructor(name = "alanwalker", IQ = 100, str = 100) { this.name = name; this.IQ = IQ; this.str = str; } levelup() { this.IQ++; this.str++; .. 2023. 8. 25.
[CS] CI/CD(Continuous Integration/Delivery & Deployment) CI/CD(Continuous Integration/Delivery & Deployment) 개발자들이 소스 코드를 지속적으로 통합하고, 테스트하며, 배포하는 것을 의미 필요한 이유 혼자가 아닌 수 많은 개발자가 코드를 합치고 배포를 계속해서 시스템 없이 수동으로 한다면 여러 명의 개발자가 동시에 개발을 하게 될 것이고 서로 다른 환경에서 안되는 문제, 에러등이 발생. 이러한 문제를 해결하기 위해 CI/CD라는 개념이 도래했고 이를 쉽게 해주는 툴 등이 나옴 파이프라인 코드구축부터 시작해서 배포까지의 일련의 과정들을 CI/CD 파이프라인이라고 함. 총 3가지의 단계로 구성 continuous integration : 코드를 빌드하고 테스트하고 통합 continuous delivery : 해당 레퍼지토리에.. 2023. 8. 24.
[CS] 클라우드 - 컨테이너와 도커 클라우드 - 컨테이너와 도커 컨테이너 컨테이너는 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 실행되도록 코드와 모든 종속성을 패키징하는 소프트웨어의 표준 단위 컨테이너는 OS를 공유하기 때문에 빠르고, 경량화되어있으며 격리성도 훌륭함. 그러나 OS에 문제가 생기면 다른 앱에도 영향을 미칠 수 있음 도커 도커는 컨테이너 필요한 기능을 거의 모두 제공하는 플랫폼 애플리케이션 구동에 필요한 환경설정관련 절차를 도커파일에 작성하고 그 후 빌드를 하면 도커이미지가 생성이 되고 도커이미지를 실행시키면 도커컨테이너가 만들어짐 그 후 도커컨테이너에 설정된 프로그램, 데이터 등이 실제 컴퓨팅자원 위에서 돌아가게 됨 도커 컨테이너 만드는 과정 1. 도커파일 : 패키지, 환경변수설정 등을 기록한.. 2023. 8. 23.
[CS] 클라우드 - 가상머신 클라우드 - 가상머신 전통적 배포방식 물리적인 컴퓨터 한 대에 하나의 OS를 깔고 여러 가지 프로그램을 설치하는 방식. 계정을 나눠 여러명의 사용자가 이용할 수 있도록 할 수 있지만 어떤 프로그램을 설치했을 때 다른 앱에 영향을 미침 → 독립적이지 않은 문제점이 있음 전통적 배포방식 가상머신을 기반으로 배포하는 것. 가상머신이란 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것 계정을 나누는 것이 아니라 한대의 컴퓨터를 가지고 여러개의 OS를 구동할 수 있게 되며 CPU, RAM을 물리적으로 갈아끼는 것이 아니라 설정만으로 이를 수행할 수 있음 중간에 있는 하이퍼바이저는 하나의 시스템 상에서 가상 컴퓨터를 여러 개 구동할 수 있도록 해 주는 중간 계층을 의미하며 이 위에 여러개의 가상머신을 구축할 수 있고 .. 2023. 8. 20.