반응형

CS 공부 33

# static 키워드

🌟 Static 키워드 - 클래스의 공통 속성을 공유하기오늘은 static 키워드에 대해 공부했다. static 키워드는 클래스의 인스턴스(객체)마다 따로 존재하는 것이 아니라, 클래스 자체에 속하는 변수나 메서드를 만들 때 사용한다고 한다. 객체를 여러 개 만들어도 static으로 선언한 변수나 메서드는 공유되기 때문에, 중복되는 속성을 효율적으로 관리할 수 있다. 📌 Static 키워드의 역할클래스 내에서 공통으로 사용하는 변수가 있다면, 그 변수를 static으로 선언하면 객체를 생성하지 않고도 사용할 수 있다. 예를 들어, 은행 계좌를 관리하는 BankAccount 클래스가 있다고 하자. class BankAccount { static double interestRate = 0.0..

CS 공부 2025.02.16

# 클래스와 객체, 인스턴스

클래스와 객체, 인스턴스 🤔프로그래밍을 하면서 자주 마주치는 개념 중 하나가 바로 클래스(class), 객체(object), 인스턴스(instance) 이다. 하지만 이 개념들이 헷갈릴 때가 많다. 그래서 오늘은 이를 정리해보려고 한다.클래스(Class) 🏗️클래스는 객체를 만들어 내기 위한 틀이다. 쉽게 말해, 객체를 만들기 위한 설계도라고 할 수 있다. 클래스 안에는 객체가 가질 속성(변수)과 동작(메서드) 들이 정의된다.class Person { String name; int level; int experience; Person() { this.name = "Unknown"; this.level = 1; this.experience = ..

CS 공부 2025.02.16

# CI/CD

CI/CD(Continuous Integration/Delivery & Deployment) 🚀🤔 왜 필요할까?혼자 개발을 한다면 CI/CD가 없어도 문제가 되지 않을 것 같다.그런데 여러 개발자들과 함께 개발을 진행한다면 이야기가 달라진다. CI/CD가 없으면 코드 통합이 어려워지고, 배포가 수동으로 진행되면서 실수가 발생할 가능성이 높아진다.그렇다면 CI/CD는 어떤 역할을 하는 걸까? 🔗 파이프라인이란?코드 구축부터 시작해서 배포까지의 일련의 과정을 CI/CD 파이프라인이라고 한다.이 과정은 총 3가지 단계로 구성된다. Continuous Integration (CI): 코드를 빌드하고, 테스트한 후, 저장소에 병합 Continuous Delivery (CD): 레포지토리에 릴리스 (m..

CS 공부 2025.02.15

# 컨테이너와 도커

🐳 컨테이너와 도커최근 들어 컨테이너 기술에 대해 공부하고 있다. 처음에는 가상 머신(VM)과 뭐가 다른 건지 헷갈렸는데, 이제 조금씩 감이 오는 것 같다. 컨테이너는 애플리케이션이 한 환경에서 다른 환경으로 이동할 때 필요한 모든 종속성을 함께 패키징하는 일종의 표준 단위라고 한다. 쉽게 말해, 내 코드가 어디서든 같은 환경에서 실행될 수 있도록 보장해주는 것이다.🎯 컨테이너의 장점은?컨테이너를 사용하면 애플리케이션 간의 종속성 충돌 문제를 해결할 수 있다. 예를 들어, 프로젝트 A는 Python 3.8을 필요로 하고, 프로젝트 B는 Python 3.10을 사용해야 하는 경우를 생각해보자. 만약 같은 환경에서 이 두 가지 프로젝트를 실행하려고 하면 충돌이 발생할 것이다. 하지만 컨테이너를 사용하면 ..

CS 공부 2025.02.15

# IaaS, PaaS, SaaS

☁️ IaaS, PaaS, SaaS - 클라우드 서비스의 차이점클라우드 서비스를 접하다 보면 IaaS, PaaS, SaaS라는 용어를 자주 듣게 된다. 처음엔 이게 무슨 암호인가 싶었는데, 알고 보니 클라우드가 제공하는 서비스의 범위에 따라 구분한 것이었다. 하나씩 살펴보면서 차이를 정리해보자.🏗️ IaaS(Infrastructure as a Service) - 인프라형 서비스IaaS는 말 그대로 "인프라"를 제공하는 클라우드 서비스다. 쉽게 말해 서버, 네트워크, 스토리지 같은 하드웨어 자원을 가상화된 형태로 빌려주는 것이다.특징클라우드가 하드웨어만 제공하고, OS나 애플리케이션 같은 소프트웨어는 직접 설치해야 한다.특정 서비스에 종속되지 않아 유연성이 높다.개발자가 Spring, MongoDB 같은..

CS 공부 2025.02.15

# 오프프레미스와 온프레미스

오프프레미스와 온프레미스클라우드 서비스는 내가 직접 서버를 운영하는 것이 아니라, 외부의 클라우드 공급자가 인프라, 플랫폼, 소프트웨어 등을 호스팅하고, 인터넷을 통해 제공하는 방식이다. 이 방식은 오프프레미스(Off-Premise)라고 부른다. 자체적으로 서버를 구축할 필요가 없고, 초기 비용이 적게 든다는 장점이 있다. 그렇다면 온프레미스(On-Premise)는 무엇일까? 온프레미스 방식은 네트워크 선을 직접 설치하고, 서버와 데이터베이스를 구축하여 운영하는 방식을 말한다. 즉, 기업이 자체적으로 IT 인프라를 관리하는 형태다. 그런데, 온프레미스 방식이 완전히 사라지는 걸까? 🤔클라우드가 대세이긴 하지만, 여전히 보안이 중요한 금융권이나 일부 기업에서는 온프레미스를 선호한다고 한다. 온프레미..

CS 공부 2025.02.15

# 클라우드와 가상머신

☁️ 클라우드와 가상머신🖥️ 전통적인 배포 방식의 한계예전에는 한 대의 물리적인 컴퓨터에 하나의 OS를 설치하고, 그 위에 여러 가지 프로그램을 깔아서 사용했다. 이렇게 하면 같은 OS를 공유하는 여러 계정이 하나의 환경을 나눠 쓰게 된다.그런데 이 방식에는 큰 문제가 있다. 계정을 나눴다고 해서 완전히 독립적인 환경이 보장되는 것이 아니라는 점이다. 예를 들어, user1이 금융 업무를 위해 보안 프로그램을 설치했다고 해보자. 그런데 user2가 업비트 같은 특정 앱을 실행하려고 하면, user1이 설치한 보안 프로그램 때문에 충돌이 발생할 수 있다. 결국, 하나의 OS에서 모든 것이 돌아가다 보니 서로 영향을 미치게 되는 것이다.이 문제를 해결할 방법이 없을까? 🤔🏗️ 가상화 배포 방식: 가상머..

CS 공부 2025.02.15

# 내부 변경에도 변하지 않는 API

API가 내부 프로세스 변경에도 영향을 받지 않는 것이 왜 중요한가?API를 설계할 때 내부 프로세스가 바뀌더라도 API 응답 형식이 유지되는 것이 중요하다고한다. API가 안정적으로 유지되면 클라이언트(웹, 모바일 앱 등)가 API의 변경을 신경 쓰지 않아도 되므로 유지보수가 쉬워지고, 서비스가 안정적으로 제공될 수 있다.내부 데이터가 변경되어도 API가 유지되는 이유예를 들어, 다음과 같이 JSON 파일을 읽어 API 응답을 반환하는 코드가 있다고 가정하자.const fs = require('fs');app.get('/taejung', (req, res) => { const f = JSON.parse(fs.readFileSync("a.json", { encoding: "utf-8" })); ..

CS 공부 2025.02.15

# 데이터 교환 형식 - XML

XMLXML이란?XML(Extensible Markup Language)은 마크업 형태를 사용하는 데이터 교환 방식이다.마크업이란?태그 등을 이용해서 문서나 데이터의 구조를 나타내는 방법이다. (속성 부여도 가능하다.)태그로 감싸져 있다.XML의 구성 요소프롤로그: XML 버전과 인코딩 정보를 포함한다.루트 요소: 단 하나만 존재해야 한다.하위 요소들: 루트 요소 아래에 여러 개의 요소가 올 수 있다.HTML vs XML구분HTMLXML태그정해진 태그만 사용 가능사용자가 직접 정의 가능용도데이터를 표시하는 용도데이터를 저장 및 전송하는 용도대소문자 구분구분하지 않음대소문자 구분HTML은 보다 느슨한 구조를 가지고 있으며, XML은 엄격한 규칙을 따른다.JSON vs XML구분XMLJSON크기무겁다가볍다구..

CS 공부 2025.02.15

# 데이터 교환 형식 - JSON과 직렬화, 역직렬화

JSON과 직렬화, 역직렬화JSON이 뭐냐고 질문이 들어온다면, JavaScript 객체 문법으로 구조화된 데이터 교환 방식이라고 답변해야 올바른 정의라고 한다.JSON의 특징JSON에서 키가 중복되는 경우, 마지막에 작성된 키의 값이 저장된다.JSON 배열에 대해 공부하고 있는데, 나는 처음에 JSON 배열이 단순히 값으로 배열을 포함하는 것이라고 생각했다. 하지만 실제로는 배열에 JSON 객체 형식이 들어가는 것이었다.[ { "name": "a", "age": "25" }, { "name": "b", "age": "23" }]또한 JSON의 값 안에 또 다른 JSON 형태의 데이터가 들어갈 수도 있다.{ "name": { "firstname": "park", ..

CS 공부 2025.02.15
반응형