반응형

개발공부 40

오버로딩(Overloading) vs. 오버라이딩(Overriding) 차이점

📌 오버로딩(Overloading) vs. 오버라이딩(Overriding) 차이점 오버로딩(Overloading)과 오버라이딩(Overriding)은 객체지향 프로그래밍(OOP)에서 자주 사용되는 개념하지만 둘은 완전히 다른 개념이니까 헷갈리지 않도록 정리해볼게! 😊 구분 오버로딩 (Overloading) 오버라이딩 (Overriding)정의 같은 이름의 메서드를 매개변수(파라미터)만 다르게 여러 개 정의하는 것 부모 클래스의 메서드를 자식 클래스에서 재정의하는 것적용 대상 같은 클래스 내에서 적용 상속 관계에서 부모 클래스의 메서드를 자식 클래스에서 변경메서드 이름 같아야 함 같아야 함매개변수(파라미터) 다르게 설정해야 함 (개수, 타입 등 변경) 부모 메서드와 완전히 동일해야 함반환 타입 다르게 ..

개발공부/CS 2025.02.16

가비지 컬렉터란?

📌 가비지 컬렉터(Garbage Collector, GC)란? **가비지 컬렉터(GC)**는 프로그래밍 언어에서 더 이상 사용되지 않는 메모리를 자동으로 정리해주는 기능.➡️ 불필요한 객체를 자동으로 감지하고 메모리를 해제하는 역할을 해! 💡 쉽게 말해?우리가 변수를 만들거나 객체를 생성하면 메모리가 할당돼.그런데, 이 변수가 더 이상 필요 없을 때 우리가 직접 해제하지 않아도,GC가 알아서 정리해 줌! 🧹✨ 📌 가비지 컬렉션이 필요한 이유 프로그래밍에서 메모리 관리는 매우 중요해!1️⃣ 메모리 누수 방지 → 사용되지 않는 객체가 계속 남아 있으면 메모리 부족 문제 발생!2️⃣ 개발자가 직접 메모리 해제할 필요 없음 → C 언어처럼 free()를 호출하지 않아도 됨.3️⃣ 코드 안정성 향상 → 잘..

개발공부/CS 2025.02.16

Docker란?

📌 Docker란? 🐳 **Docker(도커)**는 애플리케이션을 컨테이너(Container)로 패키징하여 실행할 수 있는 가상화 플랫폼.쉽게 말해, 어떤 환경에서도 동일하게 실행될 수 있도록 애플리케이션과 그 실행 환경을 한 번에 묶어 배포하는 도구야! 🚀 📌 Docker의 핵심 개념 ✅ 1. 컨테이너(Container) • 애플리케이션과 실행 환경(라이브러리, 설정 파일 등)을 격리된 공간에서 실행할 수 있도록 만든 것. • 컨테이너 덕분에 OS와 상관없이 동일한 환경을 유지하면서 실행 가능! ✅ 2. 이미지(Image) • 컨테이너를 실행하기 위한 설정 파일 및 애플리케이션 코드가 포함된 패키지 • 이미지를 기반으로 컨테이너를 생성함. • 예: nginx:latest, mysql:8.0, n..

개발공부/CS 2025.02.15

API란?

이종의 기기간 통신을 하는데 있는 인터페이스.📌 API란? **API (Application Programming Interface)**는➡️ **응용 프로그램(Application) 간 데이터를 주고받을 수 있도록 해주는 인터페이스(Interface)**를 의미해. 즉, 서로 다른 소프트웨어가 소통할 수 있도록 만들어진 규칙과 도구의 집합이야. 📌 API의 역할 • 서로 다른 프로그램이 데이터를 주고받도록 도와줌. • 복잡한 시스템의 내부 동작을 몰라도 필요한 기능만 사용할 수 있음. • 개발자가 특정 기능을 쉽게 사용할 수 있도록 미리 정의된 규칙을 제공. 예를 들어, 우리가 날씨 앱에서 실시간 기온을 확인할 때➡️ 날씨 데이터는 외부 API(기상청 API 등)에서 가져오는 거야. 📌 API 예..

개발공부/CS 2025.02.15

TDD: 테스트 주도 개발.

📌 테스트 주도 개발 (TDD: Test-Driven Development) **테스트 주도 개발(TDD, Test-Driven Development)**은 **“테스트를 먼저 작성하고, 이후에 실제 코드를 작성하는 개발 방법론”**이야. 즉, **“실패하는 테스트를 먼저 만들고, 그 테스트를 통과하도록 최소한의 코드를 작성한 후, 리팩토링을 통해 개선하는 방식”**이야.이 과정이 “Red → Green → Refactor” 라는 반복적인 순환 구조로 진행돼. 📌 TDD의 핵심 사이클 (Red → Green → Refactor) 1️⃣ Red (실패하는 테스트 작성) • 새로운 기능을 개발할 때, 먼저 테스트 코드를 작성하고 실행. • 당연히 아직 기능이 구현되지 않았으므로 테스트는 실패(Red) 함..

개발공부/CS 2025.02.15

RESTful API?

RESTful API는 REST (Representational State Transfer) 원칙을 따르는 API를 의미.즉, 클라이언트와 서버가 HTTP를 사용하여 데이터를 주고받는 방식을 정의하는 것! 🚀 📌 REST의 기본 원칙 (6가지) 1️⃣ 클라이언트-서버 구조 (Client-Server Architecture) • 클라이언트(프론트엔드)와 서버(백엔드)를 분리하여 독립적으로 개발 가능하도록 함. • 예: React (클라이언트) ↔️ Node.js API (서버) 2️⃣ 무상태성 (Stateless) • 서버는 클라이언트의 상태를 저장하지 않음 → 요청(Request)만 보고 처리해야 함. • 예: 로그인 정보를 서버에서 기억하는 것이 아니라, 매 요청마다 토큰(JWT)을 포함해야 함. ..

개발공부/CS 2025.02.15

OOP의 5가지 설계 원칙

SOLID  SRP(Single Responsibility Principle): 단일 책임 원칙OCP(Open Closed Priciple): 개방 폐쇄 원칙LSP(Listov Substitution Priciple): 리스코프 치환 원칙ISP(Interface Segregation Principle): 인터페이스 분리 원칙DIP(Dependency Inversion Principle): 의존 역전 원칙 SRP(Single Responsibility Principle): 단일 책임 원칙클래스는 단 하나의 목적을 가지고, 하나의 기능에 하나의 책임을 가져야한다.위반 :문제점: 리포트 생성과 출력이 하나의 클래스에서 처리됨.class Report { public void generateReport() ..

개발공부/CS 2025.02.15

[알고리즘] 알고리즘 공부 2일차

힙(Heap)과 이진 트리(Binary Tree)는 둘 다 트리 구조를 기반으로 하지만, 그 목적과 특징에서 차이가 있습니다. 아래에 주요 차이점을 정리해 보았습니다. 1. 구조적인 차이 • 힙(Heap) • 완전 이진 트리(Complete Binary Tree)로 구성됩니다. • 즉, 마지막 레벨을 제외한 모든 레벨이 꽉 차 있으며, 마지막 레벨도 가능한 왼쪽부터 노드가 채워져 있습니다. • 부모와 자식 간의 우선순위 조건을 만족해야 합니다. • 최대 힙(Max Heap): 부모 노드의 값이 자식 노드의 값보다 크거나 같다. • 최소 힙(Min Heap): 부모 노드의 값이 자식 노드의 값보다 작거나 같다. • 이진 트리(Binary Tree) • 노드당 자식 노드가 최대 2개인 트리입니다. • 구조적..

[알고리즘] 알고리즘 공부 1일차

알고리즘의 정의.1. 컴퓨터에서 실행하도록 컴퓨터가 이해할 수 있는 게 프로그램2. 위의 내용을 작성하기전에 사람이 이해할 수 있도록 작성한 것. 정렬 알고리즘 숫자를 한번 움직여서 고정시키는 것을 "라운드"라고 한다.  완전 탐색 알고리즘n! 선택정렬 알고리즘n2 데이터 구조란?데이터의 순서와 위치 관계를 결정한다. - 데이터를 메모리에 저장할 때, 데이터의 순서나 위치 관계를 규정한 것이 데이터 구조  리스트 데이터를 일직선으로 정렬산 데이터 구조

1 2 3 4
728x90